PFND3D10DDI_CREATERESOURCE回呼函式 (d3d10umddi.h)
建立資源。
語法
PFND3D10DDI_CREATERESOURCE Pfnd3d10ddiCreateresource;
void Pfnd3d10ddiCreateresource(
D3D10DDI_HDEVICE unnamedParam1,
const D3D10DDIARG_CREATERESOURCE *unnamedParam2,
D3D10DDI_HRESOURCE unnamedParam3,
D3D10DDI_HRTRESOURCE unnamedParam4
)
{...}
參數
unnamedParam1
hDevice [in]
顯示裝置的句柄 (圖形內容) 。
unnamedParam2
pCreateResource [in]
D3D10DDIARG_CREATERESOURCE結構的指標,描述使用者模式顯示驅動程式用來建立資源的參數。
unnamedParam3
hResource [in]
資源的驅動程式私人數據的句柄。
unnamedParam4
hRTResource [in]
驅動程式應該在呼叫 Direct3D 執行時間時使用的資源句柄。
傳回值
無
備註
驅動程式可以使用 pfnSetErrorCb 回呼函式來設定錯誤碼。
驅動程式可能會用盡記憶體。 因此,驅動程式可以在 對 pfnSetErrorCb 函式的呼叫中傳遞E_OUTOFMEMORY或D3DDDIERR_DEVICEREMOVED。 驅動程式也可以在 呼叫 pfnSetErrorCb 中傳遞DXGI_DDI_ERR_UNSUPPORTED。 如需傳遞DXGI_DDI_ERR_UNSUPPORTED的詳細資訊,請參閱 BltDXGI 參考頁面的一節。 Direct3D 運行時間會判斷任何其他錯誤都很重要。 如果驅動程式通過任何錯誤,包括 D3DDDIERR_DEVICEREMOVED,Direct3D 運行時間會判斷句柄無效;因此,運行時間不會呼叫 DestroyResource (D3D10) 函式來終結 hResource 參數指定的句柄。
運行時間會針對應用程式傳送來建立資源的參數驗證所有參數。 因此,驅動程式不應該收到無效的組合。
如果應用程式不需要在簡報之間保存資源的內容,運行時間會在 pCreateResource 參數指向的 MiscFlags 成員中,設定D3D10_DDI_RESOURCE_MISC_FLAG列舉D3D10_DDI_RESOURCE_MISC_FLAG的 D3D10DDIARG_CREATERESOURCE D3D10_DDI_RESOURCE_MISC_DISCARD_ON_PRESENT旗標。 呼叫DXGI_DDI_ARG_BLT_FLAGS結構) 函式中設定 Present 旗標的驅動程式 PresentDXGI 或 BltDXGI (時,就會發生簡報。 當應用程式使用DXGI_SWAP_EFFECT_DISCARD值來要求交換鏈結時,運行時間會使用 D3D10_DDI_RESOURCE_MISC_DISCARD_ON_PRESENT 旗標來建立交換鏈結後台緩衝區。
建立立體聲後台緩衝區
從 Windows 8 開始,如果驅動程式必須建立立體聲後台緩衝區,它應該設定 pCreateResource 所指向之D3D10DDIARG_CREATERESOURCE結構的成員,如下所示:- 將 ArraySize 成員設定為 2 的值。
- 在 BindFlags 成員中設定D3D10_DDI_BIND_PRESENT旗標值。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。 |
目標平台 | 桌面 |
標頭 | d3d10umddi.h (包含 D3d10umddi.h) |