天天看點

DirectX9函數:IDirect3DDevice9::Clear 方法

清除視口或設定視口矩形, 對指定的RGBA顔色, 清除深度緩沖, 并抹掉模闆緩沖區.

文法

HRESULT Clear(      

    DWORD Count,
    const D3DRECT *pRects,
    DWORD Flags,
    D3DCOLOR Color,
    float Z,
    DWORD Stencil
);      

參數

Count
[in]  pRects中矩形的數量. 如果你設定 pRects 為NULL, 此參數必須設定為0.
pRects
[in] 描述所有要清除的矩形的 D3DRECT 結構指針. 設定一個定義要清除的目标的矩形,以清除整個表面. 每個矩形使用螢幕坐标,坐标對應要渲染的目标表面的點. 坐标被視口矩形的邊緣所裁剪. 此參數也可以設定為NULL指出視口所有矩形都要清除.
Flags
[in] 指明要清除的表面. 至少取下面的一個或幾個結合.
D3DCLEAR_STENCIL
清除模闆緩沖區為 Stencil 參數指定的值.
D3DCLEAR_TARGET
清除要渲染目标的顔色為 Color 參數的值.
D3DCLEAR_ZBUFFER
清除深度緩沖的值為 Z 參數的值.
Color
[in] 一個32為ARGB 顔色值.
Z
[in] 要設定深度緩沖區的值. 此參數取值從0.0到 1.0 (for z-based or w-based depth buffers). 值為 0.0 代表視點最近的距離,而 1.0 代表最遠距離.
Stencil
[in] 長整型,在每個模闆緩沖區入口中. 參數取值應從 0到 2 n–1,  n 是模闆緩沖區的位深度.

傳回值

如果執行成功,傳回值是D3D_OK.

如果執行失敗, 傳回值是D3DERR_INVALIDCALL.

備注

This method fails if you specify the D3DCLEAR_ZBUFFER or D3DCLEAR_STENCIL flags when the render target does not have an attached depth buffer. Similarly, if you specify the D3DCLEAR_STENCIL flag when the depth-buffer format does not contain stencil buffer information, this method fails.

繼續閱讀