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 之後的轉譯目標位置數目。 此數位代表先前稱為 SetRenderTargets的轉譯目標檢視物件數目與新的轉譯目標檢視物件數目之間的差異。也就是說,Microsoft Direct3D 運行時間。
請注意,ClearTargets 指定的數位只是優化輔助,因為使用者模式顯示驅動程式可以計算這個數位。
[in] unnamedParam5
hDepthStencilView:處理深度樣板檢視。
傳回值
沒有
言論
驅動程式可以使用 pfnSetErrorCb 回呼函式來設定錯誤碼。
使用者模式顯示驅動程式必須將所有轉譯目標表面和深度樣板緩衝區以不可部分完成的方式設定為一項作業。
雖然 NumViews 參數會指定陣列中 phRenderTargetView 參數指定的句柄數目,但是陣列中的某些句柄值可以 NULL。
NumViews 指定之數位之間的轉譯目標表面範圍,以及允許的轉譯目標介面數目上限,必須包含所有 NULL 或未系結值。 ClearTargets 參數指定的數位會通知驅動程式目前不可部分完成作業的系結點數目。
如果先前對 setRenderTargets 的呼叫 在 NumViews 參數中傳遞了 2 的值,且目前對 setRenderTargets 傳遞 呼叫 NumViews中的值為 4,SetRenderTargets 目前的呼叫也會在 ClearTargets 參數 中傳遞值 0。 如果下一次呼叫 setRenderTargets 傳遞 1 的值,NumViews,後續呼叫也會在 ClearTargets 中傳遞值 3 (4 - 1)。
當使用者模式查詢作業期間要求清除目標的值時,此值是轉譯目標介面數目上限與轉譯目標值之間的差異。
除了D3DDDIERR_DEVICEREMOVED以外,驅動程式不應該發生任何錯誤。 因此,如果驅動程式通過D3DDDIERR_DEVICEREMOVED以外的任何錯誤,在呼叫 pfnSetErrorCb 函式時,Microsoft Direct3D 運行時間會判斷錯誤很重要。 即使移除裝置,驅動程式也不需要傳回D3DDDIERR_DEVICEREMOVED;不過,如果裝置移除干擾了 SetRenderTargets 的作業(通常不應該發生),驅動程式可以傳回D3DDDIERR_DEVICEREMOVED。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 可在 Windows Vista 和更新版本的 Windows作系統中使用。 |
目標平臺 | 桌面 |
標頭 | d3d10umddi.h (包括 D3d10umddi.h) |