DXGI1_1_DDI_BASE_FUNCTIONS 結構 (dxgiddi.h)
DXGI1_1_DDI_BASE_FUNCTIONS 結構包含使用者模式顯示驅動程式可以實作的函式指標,以執行低階工作,例如將轉譯的畫面呈現至輸出、控制 Gamma、取得共用和 GDI 可互通表面的通知,以及管理全螢幕轉換。
語法
typedef struct DXGI1_1_DDI_BASE_FUNCTIONS {
HRESULT()(DXGI_DDI_ARG_PRESENT *) * pfnPresent;
HRESULT()(DXGI_DDI_ARG_GET_GAMMA_CONTROL_CAPS *) * pfnGetGammaCaps;
HRESULT()(DXGI_DDI_ARG_SETDISPLAYMODE *) * pfnSetDisplayMode;
HRESULT()(DXGI_DDI_ARG_SETRESOURCEPRIORITY *) * pfnSetResourcePriority;
HRESULT()(DXGI_DDI_ARG_QUERYRESOURCERESIDENCY *) * pfnQueryResourceResidency;
HRESULT()(DXGI_DDI_ARG_ROTATE_RESOURCE_IDENTITIES *) * pfnRotateResourceIdentities;
HRESULT()(DXGI_DDI_ARG_BLT *) * pfnBlt;
HRESULT()(DXGI_DDI_ARG_RESOLVESHAREDRESOURCE *) * pfnResolveSharedResource;
} DXGI1_1_DDI_BASE_FUNCTIONS;
成員
pfnPresent
驅動程式 PresentDXGI 函式的指標。
pfnGetGammaCaps
驅動程式 GetGammaCapsDXGI 函式的指標。
pfnSetDisplayMode
SetDisplayModeDXGI 函式會切換至 GDI 桌面不支持的顯示模式或主要複本。
Microsoft Direct3D 運行時間會呼叫 SetDisplayModeDXGI ,以切換至 GDI 桌面不支援的顯示模式或主要複本。 下列清單描述這類主要項目的範例:
- 以每個通道 10 位建立的主要專案, (10:10:10:10:2) 顯示和轉譯目標 (格式,例如,D3DFMT_A2R10G10B10)
- 在掃描時執行多重取樣的主要複本
- 全螢幕 Microsoft DirectX 第 10 版應用程式使用的持續性主要複本
使用者模式顯示驅動程式可以在呼叫 pfnSetDisplayModeCb 中設定 D3DDDICB_SETDISPLAYMODE 結構的 hPrimaryAllocation 成員,以掃描任何配置。 不過,配置必須標示為主要 (,也就是說,使用者模式顯示驅動程式必須在呼叫 pfnAllocateCb 函式的 Flags 成員中,設定D3DDDI_ALLOCATIONINFO結構的主要位字段旗標,以建立配置) 。
pDisplayModeData
DXGI_DDI_ARG_SETDISPLAYMODE 結構的指標,指定設定顯示模式的參數。
pfnSetResourcePriority
驅動程式 SetResourcePriorityDXGI 函式的指標。
pfnQueryResourceResidency
驅動程式 QueryResourceResidencyDXGI 函式的指標。
pfnRotateResourceIdentities
驅動程式 RotateResourceIdentitiesDXGI 函式的指標。
pfnBlt
驅動程式 BltDXGI 函式的指標。
pfnResolveSharedResource
ResolveSharedResourceDXGI 函式會通知使用者模式顯示驅動程式共用表面的擁有權已變更,或正用於 GDI 互操作的介面。
當應用程式呼叫下列其中一個函式時,Direct3D 運行時間會呼叫 ResolveSharedResourceDXGI :
- 已同步共用介面上的IDXGIKeyedMutex::ReleaseSynch
- 適用於 GDI 互通表面的 IDXGISurface1::GetDC
驅動程式會實作 ResolveSharedResourceDXGI ,以適當地管理多個 GPU 案例的資源。 每個資源可能會分割成記憶體,讓多個 GPU 轉譯為開啟。 驅動程式可以實作 ResolveSharedResourceDXGI 來重新合併每個資源,讓新的資源擁有者擁有合併的資源。 驅動程式必須排清任何可能修改資源的部分建置命令緩衝區。
Windows 7 提供IS_DXGI1_1_BASE_FUNCTIONS宏 (,其定義於 D3D10umddi.h 頭檔) ,以允許使用者模式顯示驅動程序判斷它是否在呼叫其 CreateDevice (D3D10) 函式時收到DXGI1_1_DDI_BASE_FUNCTIONS指標或DXGI_DDI_BASE_FUNCTIONS結構。 DXGI1_1_DDI_BASE_FUNCTIONS 結構包含 pfnResolveSharedResource 成員,驅動程式可以使用 其 ResolveSharedResourceDXGI 函式的指標填入該成員。 如果IS_DXGI1_1_BASE_FUNCTIONS傳回 TRUE,驅動程式預期會收到D3D10DDIARG_CREATEDEVICE結構指定之 DXGIBaseDDI 成員之 pDXGIDDIBaseFunctions 成員中 DXGI_DDI_BASE_ARGS DXGI1_1_DDI_BASE_FUNCTIONS結構的指標。 否則,如果IS_DXGI1_1_BASE_FUNCTIONS傳回 FALSE,驅動程式預期會收到DXGI_DDI_BASE_FUNCTIONS結構的指標。 Windows 7 提供IS_DXGI1_1_BASE_FUNCTIONS宏,以允許較新的版本驅動程式在舊版運行時間上運作。 然後,如果驅動程式嘗試使用 ResolveSharedResourceDXGI 函式的指標填滿 DXGI1_1_DDI_BASE_FUNCTIONS 的 pfnResolveSharedResource 成員,驅動程式就可以判斷它們是否會損毀記憶體。
pResourceData
DXGI_DDI_ARG_RESOLVESHAREDRESOURCE 結構的指標,指定顯示裝置的參數,以及與顯示裝置相關聯的表面。
備註
Windows 7 提供IS_DXGI1_1_BASE_FUNCTIONS宏 (,其定義於 D3D10umddi.h 頭檔) ,以允許使用者模式顯示驅動程式判斷它是否收到DXGI1_1_DDI_BASE_FUNCTIONS或 DXGI_DDI_BASE_FUNCTIONS 結構的指標,以呼叫其 CreateDevice (D3D10) 函式。 DXGI1_1_DDI_BASE_FUNCTIONS 結構包含 pfnResolveSharedResource 成員,驅動程式可以使用 其 ResolveSharedResourceDXGI 函式的指標填入該成員。 如果IS_DXGI1_1_BASE_FUNCTIONS傳回 TRUE,驅動程式預期會收到D3D10DDIARG_CREATEDEVICE結構指定之 DXGIBaseDDI 成員之 pDXGIDDIBaseFunctions 成員中 DXGI_DDI_BASE_ARGS DXGI1_1_DDI_BASE_FUNCTIONS結構的指標。 否則,如果IS_DXGI1_1_BASE_FUNCTIONS傳回 FALSE,驅動程式預期會收到DXGI_DDI_BASE_FUNCTIONS結構的指標。 Windows 7 提供IS_DXGI1_1_BASE_FUNCTIONS宏,以允許較新的版本驅動程式在舊版運行時間上運作。 然後,如果驅動程式嘗試以 ResolveSharedResourceDXGI 函式的指標填滿DXGI1_1_DDI_BASE_FUNCTIONS的 pfnResolveSharedResource 成員,驅動程式就可以判斷它們是否會損毀記憶體。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 7 操作系統開始支援DXGI1_1_DDI_BASE_FUNCTIONS。 |
標頭 | dxgiddi.h (包含 D3d10umddi.h) |