D3DHAL_DP2RENDERSTATE構造体 (d3dhal.h)
D3DHAL_DP2COMMAND構造体の bCommand メンバーがD3DDP2OP_RENDERSTATEに設定され、適切なレンダリング状態を設定するために使用されると、1 つ以上のD3DHAL_DP2RENDERSTATE構造体が D3dDrawPrimitives2 コールバックによってコマンド バッファーから解析されます。
構文
typedef struct _D3DHAL_DP2RENDERSTATE {
D3DRENDERSTATETYPE RenderState;
union {
D3DVALUE dvState;
DWORD dwState;
};
} D3DHAL_DP2RENDERSTATE;
メンバー
RenderState
更新するレンダリング状態を示すD3DRENDERSTATETYPE列挙型を指定します。 アプリケーション レベルで要求されるレンダリング状態については、DirectX SDK ドキュメントを参照してください。 ドライバーによって排他的に使用されるレンダリング状態については、「 D3DRENDERSTATETYPE」を参照してください。
dvState
RenderState メンバーによって識別されるレンダリング状態をドライバーが更新する必要がある値を指定します。 このメンバーは、 RenderState にD3DVALUEが必要な場合に有効です。
dwState
RenderState で識別されるレンダリング状態をドライバーが更新する必要がある値を指定します。 このメンバーは、 RenderState に DWORD が必要な場合に有効です。
注釈
D3dDrawPrimitives2 は、コマンド バッファーから wStateCount D3DHAL_DP2RENDERSTATE構造体を処理する必要があります。 wStateCount の値は、D3DHAL_DP2COMMAND構造体で指定されます。
D3DHAL_DP2RENDERSTATE構造体ごとに、 D3dDrawPrimitives2 はドライバーのプライベート レンダリング状態と、D3DHAL_DRAWPRIMITIVES2DATA の lpdwRStates メンバーが指すレンダリング状態配列 を 更新する必要があります。 パブリック レンダリング状態配列で更新される要素は lpdwRStates[RenderState]です。
次の図は、D3DDP2OP_RENDERSTATE コマンドと 2 つのD3DHAL_DP2RENDERSTATE構造体を含むサンプル コマンド バッファーの一部を示しています。 ドライバーは lpdwRStates[D3DRENDERSTATE_FILLMODE] をD3DFILL_SOLIDに更新し、 lpdwRStates[D3DRENDERSTATE_SHADEMODE] をD3DSHADE_GOURAUDする必要があります。 ドライバーは、それに応じてプライベート状態も更新する必要があります。
型の値がブール値であるレンダリング状態は TRUE(1) と FALSE(0) のみを受け入れるものとして文書化されていますが、ランタイムはこれを検証せず、サブゼロ値を true として受け入れます。 サンプル ドライバーはこれを厳密に解釈し、1 以外の値を TRUE として解釈 します。 ただし、ランタイムでは検証が提供されないため、ドライバーは 0 を FALSE 、その他のサブゼロ値を TRUE として解釈する必要があります。 この点で、ドライバーは、指定されたサンプル ドライバーの動作を模倣しないでください。要件
要件 | 値 |
---|---|
Header | d3dhal.h (D3dhal.h を含む) |
こちらもご覧ください
D3DDP2OP_RENDERSTATE