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 配列内の四角形の数。 四角形の数が 0 に設定されている場合は、[クリア] レンダー ターゲット、深度バッファー、ステンシル バッファー全体をクリアする必要があります。 この状況では、pRect 配列の内容は未定義であり、ドライバーはそれらを読み取ろうとしないでください。
unnamedParam4
pRect [in]
ドライバーがクリアする必要があるバッファーの四角形領域を示す RECT 構造体の配列。
戻り値
クリア は、ハードウェア支援のクリア操作が正常に実行されなかった場合に、S_OKまたは適切なエラー結果を返します。
備考
ドライバーがクリア操作を実行する方法は、NumRect パラメーターで指定されている四角形領域の数と、D3DDDIARG_CLEARの Flags メンバーに設定されている値によって異なります。 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) より大きい値に設定され、FlagsでD3DCLEAR_COMPUTERECTSが設定されている場合、ドライバーは pRect が現在のビューポートに対して指定 四角形領域をクリップします。
NumRect が 0 (NumRect> 0) より大きい値に設定され、D3DCLEAR_COMPUTERECTSが Flagsで設定されている場合、ドライバーは、指定した四角形領域を現在のビューポートにクリップし、アプリケーションが以前にD3DRS_SCISSORTESTENABLEを設定した場合は、シザー四角形にクリップします。 NumRect> 0 と D3DCLEAR_COMPUTERECTS が設定されていない場合、ドライバーは、Direct3D ランタイムが指定した四角形領域を既に現在のビューポートにクリップし、アプリケーションが以前にD3DRS_SCISSORTESTENABLE設定した場合はシザー四角形にクリップしたと判断します。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | d3dumddi.h (D3dumddi.h を含む) |
関連項目
RECT の