PFND3DDDI_CLEAR回呼函式 (d3dumddi.h)
Clear 函式會在轉譯目標、深度緩衝區或樣板緩衝區上執行硬體輔助清除。
語法
PFND3DDDI_CLEAR Pfnd3dddiClear;
HRESULT Pfnd3dddiClear(
[in] HANDLE hDevice,
const D3DDDIARG_CLEAR *unnamedParam2,
UINT unnamedParam3,
const RECT *unnamedParam4
)
{...}
參數
[in] hDevice
顯示裝置的句柄(圖形內容)。
unnamedParam2
pData [in]
描述硬體輔助清除作業參數之 D3DDDIARG_CLEAR 結構的指標。
unnamedParam3
NumRect [in]
要清除之 pRect 陣列中的矩形數目。 如果矩形數目設定為零,Clear 應該清除整個轉譯目標、深度緩衝區和樣板緩衝區。 在此情況下,pRect 的數位內容是未定義的,而且驅動程式不應該嘗試讀取它們。
unnamedParam4
pRect [in]
RECT 結構的陣列,表示驅動程式應該清除的緩衝區矩形區域。
傳回值
Clear 如果硬體輔助清除作業未成功執行,就會傳回S_OK或適當的錯誤結果。
言論
驅動程式執行清除作業的方式取決於 NumRect 參數中指定的矩形區域數目,以及 D3DDDIARG_CLEARFlags 成員中所設定的值。 D3DCLEAR_TARGET、D3DCLEAR_STENCIL和D3DCLEAR_ZBUFFER值(定義於 D3d8types.h中),表示要清除的緩衝區類型。 D3DCLEAR_COMPUTERECTS值(定義於 D3dhal.h中),表示如何清除緩衝區。 下列設定指出驅動程式應如何清除指定的緩衝區類型:
- 如果 NumRect 設定為 0(NumRect== 0),且D3DCLEAR_COMPUTERECTS未在 Flags中設定,則驅動程式會清除 0 像素 (也就是 no-op)。
- 如果 NumRect 設定為 0,且D3DCLEAR_COMPUTERECTS設定於 Flags中,驅動程式會清除整個檢視區(而非整個表面)。
- 如果 NumRect 設定為大於 0 的值(NumRect!= 0),且D3DCLEAR_COMPUTERECTS設定在 Flags中,驅動程式會裁剪 pRect 針對目前檢視區所指定的矩形 區域。
如果 NumRect 設定為大於 0 的值(NumRect> 0),且D3DCLEAR_COMPUTERECTS是在 Flags中設定,則驅動程式會將指定的矩形區域裁剪到目前的檢視區,如果應用程式先前設定D3DRS_SCISSORTESTENABLE,則會裁剪到剪刀矩形。 如果未設定 NumRect> 0 和 D3DCLEAR_COMPUTERECTS,驅動程式會判斷 Direct3D 執行時間已將指定的矩形區域裁剪到目前的檢視區,如果應用程式先前設定D3DRS_SCISSORTESTENABLE,則會將剪刀矩形剪裁。
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | d3dumddi.h (包括 D3dumddi.h) |