D3DHAL_DP2TRIANGLEFAN_IMM 構造体 (d3dhal.h)

D3DHAL_DP2COMMAND構造体の bCommand メンバーが D3DDP2OP_TRIANGLEFAN_IMM に設定され、三角形ファンのレンダリングに使用される場合、1 つのD3DHAL_DP2TRIANGLEFAN_IMM構造体が D3dDrawPrimitives2 コールバックによってコマンド バッファーから解析されます。

構文

typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM {
  DWORD dwEdgeFlags;
} D3DHAL_DP2TRIANGLEFAN_IMM;

メンバー

dwEdgeFlags

フィル モードがD3DFILL_WIREFRAMEされたときにレンダリングする必要があるファンの外側のエッジを識別するビットマスクを指定します。 セット ビットは、対応するエッジをレンダリングする必要があることを示します。 このビットマスクの詳細については、「解説」セクションを参照してください。

注釈

1 つのD3DHAL_DP2TRIANGLEFAN_IMM構造体は、コマンド バッファー内の D3DHAL_DP2COMMAND 構造体の直後にあります。 三角形ファンの頂点データは、コマンド バッファー内のD3DHAL_DP2TRIANGLEFAN_IMM構造の直後に DWORD で整列されます。

D3dDrawPrimitives2 は、コマンド バッファーから wPrimitiveCount+ 2 頂点の合計を処理し、三角形ごとに 3 つの頂点を処理し、 wPrimitiveCount 三角形をレンダリングする必要があります。 レンダリングされる三角形のシーケンスは (V[1], V[2], V[0]), (V[2], V[3], V[0]), (V[3], V[4], V[0]), ..., (V[wPrimitiveCount], V[wPrimitiveCount] + 1 ], V[0]) です。 wPrimitiveCount の値は、D3DHAL_DP2COMMAND構造体で指定されます。

ドライバーは、フィル モードがD3DFILL_WIREFRAMEされている場合、ファンの外側の各エッジのエッジ フラグをチェックする必要があります。 dwEdgeFlags の最下位ビットから開始します。 ビット 0 は V[0]-V[1] エッジに適用され、ビット 1 は V[1]V[2]- エッジに適用され、ビット wPrimitiveCountV[wPrimitiveCount]-V[[wPrimitiveCount]+1] エッジに適用され、ビット (wPrimitiveCount + 1) は V[[wPrimitiveCount]+1]V[0]- に適用されます。 エッジ。

次の図は、D3DDP2OP_TRIANGLEFAN_IMM コマンド、D3DHAL_DP2TRIANGLEFAN_IMM構造体、頂点データを含むサンプル コマンド バッファーの一部を示しています。 ドライバーはコマンド バッファーから 5 つの頂点を処理し、(v[1], v[2], v[0]), (v[2], v[3], v[0]), (v[3], v[4], v[0]) で定義された 3 つの三角形を持つファンをレンダリングする必要があります。

D3DDP2OP_TRIANGLEFAN_IMM コマンド、D3DHAL_DP2TRIANGLEFAN_IMM構造体、頂点データを含むコマンド バッファーを示す図

要件

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

こちらもご覧ください

D3DDP2OP_TRIANGLEFAN_IMM

D3DHAL_DP2COMMAND

D3dDrawPrimitives2