SetScissorRects 函式會標記轉譯目標受限的部分。
語法
PFND3D10DDI_SETSCISSORRECTS Pfnd3d10ddiSetscissorrects;
void Pfnd3d10ddiSetscissorrects(
D3D10DDI_HDEVICE unnamedParam1,
[in] UINT NumRects,
[in] UINT ClearRects,
const D3D10_DDI_RECT *unnamedParam4
)
{...}
參數
unnamedParam1
hDevice [in]
顯示裝置的句柄(圖形內容)。
[in] NumRects
pRects 參數指定的轉譯目標部分總數。
[in] ClearRects
NumScissorRects 的轉譯目標部分數目之後的轉譯目標部分數目,指定要設定為 NULL。 這個數位代表先前的轉譯目標部分數目之間的差異(也就是說,Microsoft Direct3D 運行時間先前稱為 SetScissorRects),以及新的轉譯目標部分數目。
請注意,ClearScissorRects 指定的數位只是優化輔助,因為使用者模式顯示驅動程式可以計算這個數位。
unnamedParam4
pRects [in]
要標記的轉譯目標部分 RECT 結構的陣列。
傳回值
沒有
言論
驅動程式可以使用 pfnSetErrorCb 回呼函式來設定錯誤碼。
D3D10_DDI_RECT結構定義為 reCT 結構。
typedef RECT D3D10_DDI_RECT;
使用者模式顯示驅動程式必須以不可部分完成的方式將所有轉譯目標部分設定為一項作業。
雖然 NumScissorRects 參數指定陣列中 pRects 參數所指定的轉譯目標部分數目,但陣列中的某些值可以 NULL。
指定之數位 NumScisorRects 之間的轉譯目標部分範圍,以及允許的轉譯目標部分數目上限,必須包含所有 NULL 或未系結值。 ClearScissorRects 參數指定的數位會通知驅動程式驅動程式目前不可部分完成的轉譯目標部分。
如果先前呼叫 SetScissorRects 傳遞了 NumScissorRects 參數中的 2 值,且目前 呼叫 setScissorRects 傳遞 NumScissorRects中的值 4,SetScissorRects 目前的呼叫也會在 ClearScissorRects 參數中傳遞 0 的值。 如果下一個連續呼叫 SetScissorRects 傳遞 1 的值,NumScisorRects,後續呼叫也會在 ClearScisorRects 中傳遞值 3 (4 - 1)。
當使用者模式查詢作業期間要求清除轉譯目標部分的值時,此值是轉譯目標部分數目上限和轉譯目標部分值之間的差異。
除了D3DDDIERR_DEVICEREMOVED以外,驅動程式不應該發生任何錯誤。 因此,如果驅動程式傳遞任何錯誤,除了 D3DDDIERR_DEVICEREMOVED 以外,在呼叫 pfnSetErrorCb 函式時,Microsoft Direct3D 運行時間會判斷錯誤很重要。 即使移除裝置,驅動程式也不需要傳回D3DDDIERR_DEVICEREMOVED;不過,如果裝置移除干擾了 SetScissorRects 的作業(通常不應該發生),驅動程式可以傳回D3DDDIERR_DEVICEREMOVED。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 可在 Windows Vista 和更新版本的 Windows作系統中使用。 |
目標平臺 | 桌面 |
標頭 | d3d10umddi.h (包括 D3d10umddi.h) |