次の方法で共有


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 として解釈する必要があります。 この点で、ドライバーは、指定されたサンプル ドライバーの動作を模倣しないでください。

要件

要件
Header d3dhal.h (D3dhal.h を含む)

こちらもご覧ください

D3DDP2OP_RENDERSTATE

D3DHAL_DP2COMMAND

D3DHAL_DRAWPRIMITIVES2DATA

D3DRENDERSTATETYPE

D3dDrawPrimitives2