共用方式為


DXGI1_3_DDI_BASE_FUNCTIONS 結構 (dxgiddi.h)

包含 Windows 顯示驅動程式模型 (WDDM) 1.3 和更新版本的使用者模式顯示驅動程式可以實作的函式指標,以執行低階工作,例如將轉譯的畫面呈現至輸出、控制 gamma、取得共用和 Windows 圖形裝置介面 (GDI) 互通表面的通知,以及管理全螢幕轉換。

語法

typedef struct DXGI1_3_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;
  HRESULT()(DXGI_DDI_ARG_BLT1 *) * pfnBlt1;
  HRESULT()(DXGI_DDI_ARG_OFFERRESOURCES *) * pfnOfferResources;
  HRESULT()(DXGI_DDI_ARG_RECLAIMRESOURCES *) * pfnReclaimResources;
  HRESULT()(DXGI_DDI_ARG_GETMULTIPLANEOVERLAYCAPS *) * pfnGetMultiplaneOverlayCaps;
  HRESULT()(DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS *) * pfnGetMultiplaneOverlayGroupCaps;
  HRESULT()(void *) * pfnReserved1;
  HRESULT()(DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY *) * pfnPresentMultiplaneOverlay;
  HRESULT()(void *) * pfnReserved2;
  HRESULT()(DXGI_DDI_ARG_PRESENT1 *) * pfnPresent1;
  HRESULT()(DXGI_DDI_ARG_CHECKPRESENTDURATIONSUPPORT *) * pfnCheckPresentDurationSupport;
} DXGI1_3_DDI_BASE_FUNCTIONS;

成員

pfnPresent

驅動程式 PresentDXGI 函式的指標。

pfnGetGammaCaps

驅動程式 GetGammaCapsDXGI 函式的指標。

pfnSetDisplayMode

驅動程式 SetDisplayModeDXGI 函式的指標。

pfnSetResourcePriority

驅動程式 SetResourcePriorityDXGI 函式的指標。

pfnQueryResourceResidency

驅動程式 QueryResourceResidencyDXGI 函式的指標。

pfnRotateResourceIdentities

驅動程式 RotateResourceIdentitiesDXGI 函式的指標。

pfnBlt

驅動程式 BltDXGI 函式的指標。

pfnResolveSharedResource

驅動程式 ResolveSharedResourceDXGI 函式的指標。

pfnBlt1

驅動程式 Blt1DXGI 函式的指標。

pfnOfferResources

驅動程式 pfnOfferResources 函式的指標。

pfnReclaimResources

驅動程式 pfnReclaimResources 函式的指標。

pfnGetMultiplaneOverlayCaps

由 DXGI 執行時間呼叫,要求使用者模式顯示驅動程式取得基本重疊平面功能。 選擇性地由WDDM 1.3和更新版本的使用者模式顯示驅動程序實作。

pfnGetMultiplaneOverlayGroupCaps

由 DXGI 執行時間呼叫,要求使用者模式顯示驅動程式取得一組重疊平面功能。 選擇性地由WDDM 1.3和更新版本的使用者模式顯示驅動程序實作。

注意 此函式會針對驅動程式所報告的每個功能群組呼叫。
 

語法

pfnGetMultiplaneOverlayGroupCaps GetMultiplaneOverlayGroupCaps;

HRESULT __stdcall* GetMultiplaneOverlayGroupCaps(
   DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS *pGroupCaps
)
{ ... }

參數

pGroupCaps 指定重疊平面功能群組 之DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS 結構的指標。

傳回值

傳回下列其中一個值。

  • S_OK 驅動程式已成功提供重疊平面功能。
  • D3DDDIERR_DEVICEREMOVED 驅動程式偵測到顯示配接器已移除,因此驅動程式未完成作業。 如果驅動程式不知道適配卡移除,則不需要驅動程式才能傳回此錯誤碼。

pfnReserved1

保留供系統使用。

pfnPresentMultiplaneOverlay

由 Microsoft DirectX Graphics Infrastructure (DXGI) 運行時間呼叫,通知使用者模式顯示驅動程式應用程式已完成轉譯,並要求驅動程式藉由複製或翻轉或驅動程式執行色彩填滿作業來顯示來源介面。 必須由支援多平面重疊的 Windows 顯示驅動程式模型 (WDDM) 1.3 或更新版本的驅動程序實作。

當使用者模式顯示驅動程式順利完成呼叫此函式的處理時,它會藉由呼叫 pfnPresentMultiPlaneOverlayCb (DXGI) 函式,將來源介面呈現給顯示器。

PFND3DDDI_PRESENTMULTIPLANEOVERLAY pfnPresentMultiPlaneOverlay;

HRESULT __stdcall* pfnPresentMultiPlaneOverlay(
   DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY *pPresentDXGI
)
{ ... }

參數

pPresentDXGI 描述如何顯示至目的地介面之 DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY 結構的指標。

傳回值

如果此回呼函式成功,則會傳回S_OK。 否則會傳回 HRESULT 錯誤碼。

pfnReserved2

保留供系統使用。

pfnPresent1

通知使用者模式顯示驅動程式應用程式已完成轉譯,且已釋放共用資源的所有擁有權,並要求驅動程序顯示至目的地介面。

語法

pfnPresent1 Present1DXGI;

HRESULT __stdcall* Present1DXGI(
   DXGI_DDI_ARG_PRESENT1 *pPresentData
)
{ ... }

參數

pPresentData [in] 描述如何顯示至目的地介面之 DXGI_DDI_ARG_PRESENT1 結構的指標。

備註

pPresentData 參數指向之DXGI_DDI_ARG_PRESENT1結構的 hDevice 成員,與驅動程式的 CreateDevice (D3D10) 函式傳回D3D10DDIARG_CREATEDEVICE 結構 hDrvDevice 成員中的運行時間相同。 因此,驅動程式寫入器必須仔細定義此句柄的類型。 此外,驅動程式可以提供 pfnPresent1 (DXGI) 函式的不同實作,而 DDI 實作會根據 DDI 實作處理 CreateDevice (D3D10) 的呼叫。 運行時間永遠不會在 DDI 實作之間混合驅動程式句柄。

DXGI_DDI_ARG_PRESENT1pDXGIContext 成員是不透明的通訊機制。 運行時間會將這個 DXGI 內容傳遞至驅動程式。 當驅動程式呼叫 pfnPresentCbDXGIGI 函式時,驅動程式應該將此 DXGI 內容未變更複製到 DXGIDDICB_PRESENT 結構的 pDXGIContext 成員。

驅動程式必須提交所有部分建置的轉譯數據 (命令緩衝區,) 使用 pfnRenderCb 函式,而且驅動程式必須對 pfnPresentCbDXGI 進行單一呼叫。 呼叫上述任一回呼時,驅動程式必須遵循 PresentDXGI 函式的線程規則。

注意 當驅動程式的 pfnPresent1 (DXGI) 函式將 sRGB 格式的內容從來源介面複製到非 sRGB 目的地介面時,驅動程式應該將 sRGB 內容未變更複製 (,也就是驅動程式不應該執行 sRGB 到線性轉換) 。

線程規則

這些規則適用於驅動程式是否支援免費線程:

  • 驅動程式會藉由將 D3D11DDI_THREADING_CAPS 結構的 Caps 成員設定為 D3D11DDICAPS_FREETHREADED,以指出支援免費線程。 在此案例中:
    • 一次只能對 HCONTEXT 內容句柄使用單一線程。
    • 只有在呼叫驅動程式的 pfnPresent1 (DXGI) 函式時,驅動程式才必須呼叫 pfnPresentCbDXGI,而且呼叫 pfnPresent1 的相同線程 (DXGI)
  • 當驅動程式未指出支援自由線程時,它只能在線程呼叫驅動程式時呼叫回呼函式。 驅動程式也必須在 pfnPresent1 的內容中呼叫 pfnPresentCbDXGI 回呼 , (DXGI)
如需線程處理的詳細資訊,請參閱 Direct3D 10 的變更

pfnCheckPresentDurationSupport

驅動程式 pfnCheckPresentDurationSupport (DXGI) 函式的指標。

備註

如需如何使用這個結構的詳細資訊,請參閱 支援 DXGI DDI

規格需求

需求
最低支援的用戶端 Windows 8.1,WDDM 1.3 和更新版本
最低支援的伺服器 Windows Server 2012 R2
標頭 dxgiddi.h (包含 D3d10umddi.h)

另請參閱

CreateDevice (D3D10)

D3D10DDIARG_CREATEDEVICE

DXGI1_2_DDI_BASE_FUNCTIONS

DXGI_DDI_BASE_ARGS

DXGI_DDI_BASE_FUNCTIONS