PFND3D10DDI_SETRENDERTARGETS回呼函式 (d3d10umddi.h)
SetRenderTargets 回呼函式會設定轉譯目標介面。
語法
PFND3D10DDI_SETRENDERTARGETS Pfnd3d10ddiSetrendertargets;
void Pfnd3d10ddiSetrendertargets(
[in] D3D10DDI_HDEVICE unnamedParam1,
[in] const D3D10DDI_HRENDERTARGETVIEW *unnamedParam2,
[in] UINT NumViews,
[in] UINT ClearSlots,
[in] D3D10DDI_HDEPTHSTENCILVIEW unnamedParam5
)
{...}
參數
[in] unnamedParam1
hDevice:顯示裝置的句柄 (圖形內容) 。
[in] unnamedParam2
phRenderTargetView:要設定之轉譯目標檢視物件的句柄數位。 請注意,某些句柄值可以是 NULL。
[in] NumViews
: phRenderTargetView 指定之陣列中的元素數目。
[in] ClearSlots
NumViews 指定要設定為 NULL 的插槽數目之後的轉譯目標位置數目。 這個數位代表先前 (轉譯目標檢視對象數目之間的差異,也就是 Microsoft Direct3D 運行時間先前稱為 SetRenderTargets) 和新的轉譯目標檢視物件數目。
請注意 ,ClearTargets 指定的數位只是優化輔助,因為使用者模式顯示驅動程式可以計算此數位。
[in] unnamedParam5
hDepthStencilView:深度樣板檢視的句柄。
傳回值
無
備註
驅動程式可以使用 pfnSetErrorCb 回呼函式來設定錯誤碼。
使用者模式顯示驅動程序必須以不可部分完成的方式設定所有轉譯目標表面和深度樣板緩衝區作為一個作業。
雖然 NumViews 參數會指定 phRenderTargetView 參數所指定陣列中的句柄數目,但陣列中的某些句柄值可以是 NULL。
NumViews 指定的數位與允許的轉譯目標表面數目上限之間,必須包含所有 NULL 或未系結值之間的轉譯目標表面範圍。 ClearTargets 參數所指定的數位會通知驅動程序必須清除目前不可部分完成作業的系結點數目。
如果先前對 SetRenderTargets 的呼叫在 NumViews 參數中傳遞了 2 的值,而 對 SetRenderTargets 的目前呼叫會在 NumViews 中傳遞 4 的值,則 SetRenderTargets 目前的呼叫也會在 ClearTargets 參數中傳遞 0 的值。 如果下一次對 SetRenderTargets 的呼叫在 NumViews 中傳遞 1 的值,後續呼叫也會在 ClearTargets 中傳遞值 3 (4 - 1) 。
在使用者模式查詢作業期間要求清除目標的值時,此值是轉譯目標介面數目上限與轉譯目標值之間的差異。
除了D3DDDIERR_DEVICEREMOVED之外,驅動程式不應該發生任何錯誤。 因此,如果驅動程式通過任何錯誤,但除了D3DDDIERR_DEVICEREMOVED之外,在 pfnSetErrorCb 函式的呼叫中,Microsoft Direct3D 運行時間會判斷錯誤很重要。 即使裝置已移除,驅動程式也不需要傳回D3DDDIERR_DEVICEREMOVED;不過,如果裝置移除干擾 SetRenderTargets 的作業 (通常不應該發生) ,驅動程式就可以傳回D3DDDIERR_DEVICEREMOVED。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。 |
目標平台 | 桌面 |
標頭 | d3d10umddi.h (include D3d10umddi.h) |