PFND3D10DDI_SETSCISSORRECTS回呼函式 (d3d10umddi.h)

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

NumScissorRects 所指定數位之間的轉譯目標部分範圍,以及允許的轉譯目標部分數目上限,必須包含所有 NULL 或未系結值。 ClearScissorRects 參數指定的數位會通知驅動程式,驅動程式必須清除目前不可部分完成作業的轉譯目標部分。

如果先前對 SetScissorRects 的呼叫在 NumScissorRects 參數中傳遞了 2 的值,而對 SetScissorRects 的目前呼叫則會在 NumScissorRects 中傳遞 4 的值,則目前對 SetScissorRects 的 呼叫也會在 ClearScissorRects 參數中傳遞 0 的值。 如果下一個 對 SetScissorRects 的後續呼叫在 NumScissorRects 中傳遞 1 的值,後續呼叫也會在 ClearScissorRects 中傳遞值為 3 (4 - 1) 。

在使用者模式查詢作業期間要求清除轉譯目標部分的值時,此值是轉譯目標部分數目上限與轉譯目標部分值之間的差異。

除了D3DDDIERR_DEVICEREMOVED以外,驅動程式不應該發生任何錯誤。 因此,如果在呼叫 pfnSetErrorCb 函式時,驅動程式會傳遞任何錯誤,但除了 D3DDDIERR_DEVICEREMOVED 之外,Microsoft Direct3D 運行時間會判斷錯誤是重要的。 即使裝置已移除,驅動程式也不需要傳回D3DDDIERR_DEVICEREMOVED;不過,如果裝置移除干擾 SetScissorRects (通常不應該發生) ,驅動程式可以傳回D3DDDIERR_DEVICEREMOVED。

規格需求

需求
最低支援的用戶端 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。
目標平台 桌面
標頭 d3d10umddi.h (包含 D3d10umddi.h)

另請參閱

D3D10DDI_DEVICEFUNCS

矩形

pfnSetErrorCb