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