D3DHAL_DP2CLEARには、ドライバーがレンダリング ターゲット、深度バッファー、またはステンシル バッファーでハードウェア支援によるクリアを実行するために必要なすべての情報が含まれています。
構文
typedef struct _D3DHAL_DP2CLEAR {
DWORD dwFlags;
DWORD dwFillColor;
D3DVALUE dvFillDepth;
DWORD dwFillStencil;
RECT Rects[1];
} D3DHAL_DP2CLEAR;
メンバーズ
dwFlags
ドライバーがクリアするバッファーを指定します。 このメンバーには、次の値のビットごとの OR を指定できます。
| 値の | 意味 |
|---|---|
| D3DCLEAR_TARGET | ドライバーは、dwFillColor メンバーによって指定された色にコンテキストのレンダー ターゲットをクリアする必要があります。 |
| D3DCLEAR_STENCIL | ドライバーは、dwFillStencil メンバーによって指定された値にコンテキストのステンシル バッファーをクリアする必要があります。 |
| D3DCLEAR_ZBUFFER | ドライバーは、dwFillDepth メンバーによって指定された深さにコンテキストの深度バッファーをクリアする必要があります。 |
| D3DCLEAR_COMPUTERECTS | DirectX 8.0 以降のバージョンのみ。 このフラグが設定されている場合は、指定した四角形を現在のビューポートに対してクリップする必要があります。 さらに、D3DCLEAR_COMPUTERECTSが指定されている場合、クリアする四角形の数を 0 にできます (クリアする四角形の数は、clear の D3DHAL_DP2COMMAND 構造体の wStateCount/wPrimtiveCount 和集合にあります)。 この場合、ビューポート全体をクリアする必要があります。 |
dwFillColor
ドライバーがコンテキストのレンダー ターゲットをクリアする必要がある色を指定します。
dvFillDepth
ドライバーがコンテキストの深度バッファーの深度を設定するために使用する必要がある値を指定します。 このメンバーには、間隔 0.0 から 1.0 の値を指定できます。 ドライバーは、深度バッファーの DDPIXELFORMAT 構造体の dwZBitMask メンバーを使用して、この値を整数に変換する必要があります。
dwFillStencil
ドライバーがコンテキストのステンシル バッファーをクリアする必要がある値を指定します。 このメンバーには、間隔 0 から 2ⁿ-1 の整数を指定できます。ここで、n はステンシル バッファー内のビット数です。
Rects[1]
ドライバーがクリアするバッファーの四角形領域を指定します。 四角形は画面座標で指定されます。 構造体のこのメンバーには、blitted する最初の四角形領域が含まれています。 D3DHAL_DP2COMMAND の wStateCount メンバーには、blitted する四角形領域の合計数が含まれます。 もう 1 つの (wStateCount-1) RECT 構造体は、埋め込みなしでD3DHAL_DP2CLEAR構造体に従う必要があります。
備考
この構造体は、従来の D3dClear と D3dClear2 コールバックを置き換えるために、D3DDP2OP_CLEAR コマンド トークンと共に使用されます。
四角形の数が 0 の場合でも、D3DHAL_DP2CLEARデータ構造には 1 つの RECT の領域が含まれていることに注意してください。 したがって、この単一の RECT のサイズは、次の DP2 命令に進むときに含める必要があります。 ただし、この場合の RECT の内容は未定義であり、ドライバーはそれらを読み取ろうとしないでください。
ディスプレイ ドライバーは、色形式の ARGB クラスと YUV クラスの入力色値を変換する必要があります。 クリア操作の場合、dwFillColor メンバーで入力色の値が指定されます。 詳細については、「ピクセル形式の色値の処理」を参照してください。
必要条件
| 要件 | 価値 |
|---|---|
| ヘッダー | d3dhal.h (D3dhal.h を含む) |
関連項目
D3DDP2OP_CLEAR
DDPIXELFORMAT の