次の方法で共有


D3DHAL_DP2TRIANGLEFAN_IMM構造体 (d3dhal.h)

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

構文

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] エッジに適用されます。.., ビット wPrimitiveCount は、V[wPrimitiveCount]-V[wPrimitiveCount]+1] エッジに適用されます。 および bit (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構造体、頂点データ を使用したコマンド バッファーを示す図

必要条件

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

関連項目

D3DDP2OP_TRIANGLEFAN_IMM

D3DHAL_DP2COMMAND

D3dDrawPrimitives2