次の方法で共有


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する必要があります。 ドライバーは、それに応じてプライベート状態も更新する必要があります。

D3DDP2OP_RENDERSTATE コマンドと 2 つのD3DHAL_DP2RENDERSTATE構造体を持つコマンド バッファーを示す 図 値がブール型である状態は、TRUE (1) とFALSE(0) のみを受け入れるものとして文書化されていますが、ランタイムはこれを検証せず、サブゼロ値を true として受け入れます。 サンプル ドライバーはこれを厳密に解釈し、1 以外の値を TRUE と解釈します。 ただし、ランタイムでは検証が提供されないため、ドライバーは 0 FALSE として解釈し、その他のサブゼロ値を TRUE 解釈する必要があります。 この点で、ドライバーは、指定されたサンプル ドライバーの動作を模倣しないでください。

必要条件

要件 価値
ヘッダー d3dhal.h (D3dhal.h を含む)

関連項目

D3DDP2OP_RENDERSTATE

D3DHAL_DP2COMMAND

D3DHAL_DRAWPRIMITIVES2DATA

D3DRENDERSTATETYPE

D3dDrawPrimitives2