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 結構的陣列,指出驅動程式應該清除的緩衝區矩形區域。
傳回值
如果 未順利執行硬體輔助清除作業,清除會傳回S_OK或適當的錯誤結果。
備註
驅動程式執行清除作業的方式取決於 NumRect 參數中指定的矩形區域數目,以及D3DDDIARG_CLEARFlags 成員中設定的值。 D3DCLEAR_TARGET、D3DCLEAR_STENCIL和D3DCLEAR_ZBUFFER值 (定義於 D3d8types.h) 表示要清除的緩衝區類型。 D3DCLEAR_COMPUTERECTS值 (定義於 D3dhal.h) 指出如何清除緩衝區。 下列設定指出驅動程式應如何清除指定的緩衝區類型:
- 如果 NumRect 設定為 0 (NumRect== 0) ,且未在 Flags 中設定D3DCLEAR_COMPUTERECTS,驅動程式會清除 0 像素 (也就是無作業) 。
- 如果 NumRect 設定為 0,並在 Flags 中設定D3DCLEAR_COMPUTERECTS,則驅動程式會清除整個檢視區 (不是整個表面) 。
- 如果 NumRect 設定為大於 0 的值, (NumRect!= 0) ,且D3DCLEAR_COMPUTERECTS是在 Flags 中設定,則驅動程式會裁剪 pRect 針對目前檢視區指定的矩形區域。
如果 NumRect 設定為大於 0 的值, (NumRect> 0) 且D3DCLEAR_COMPUTERECTS設定在 Flags 中,則驅動程式會將指定的矩形區域裁剪為目前的檢視區,如果應用程式先前設定D3DRS_SCISSORTESTENABLE,則會將指定的矩形區域裁剪為剪下矩形。 如果未設定 NumRect> 0 和 D3DCLEAR_COMPUTERECTS,則驅動程式會判斷 Direct3D 執行時間已將指定的矩形區域裁剪為目前的檢視區,如果應用程式先前設定D3DRS_SCISSORTESTENABLE,則為 scissor 矩形。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | d3dumddi.h (include D3dumddi.h) |