DXGI1_1_DDI_BASE_FUNCTIONS結構 (dxgiddi.h)
DXGI1_1_DDI_BASE_FUNCTIONS結構包含使用者模式顯示驅動程式可以實作的函式指標,以執行低階工作,例如將轉譯的畫面呈現至輸出、控制伽瑪、取得有關共用和 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 結構 DXGIBaseDDIDXGI_DDI_BASE_ARGS 成員 pDXGIDDIBaseFunctions 中收到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 頭檔),以允許使用者模式顯示驅動程序判斷它是否在呼叫其 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 結構 DXGIBaseDDIDXGI_DDI_BASE_ARGS 成員 pDXGIDDIBaseFunctions 中收到DXGI1_1_DDI_BASE_FUNCTIONS結構的指標。 否則,如果IS_DXGI1_1_BASE_FUNCTIONS傳回 FALSE,驅動程式預期會收到DXGI_DDI_BASE_FUNCTIONS結構的指標。 Windows 7 提供IS_DXGI1_1_BASE_FUNCTIONS巨集,以允許較新版本驅動程式在舊版運行時間上運作。 然後,如果驅動程式嘗試將 pfnResolveSharedResource 成員填入 DXGI1_1_DDI_BASE_FUNCTIONS 的 pfnResolveSharedResource 函式 指標,則可以判斷它們是否會損毀記憶體。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 從 Windows 7作系統開始,支援DXGI1_1_DDI_BASE_FUNCTIONS。 |
標頭 | dxgiddi.h (include D3d10umddi.h) |