D3DHAL_DP2INDEXEDTRIANGLEFAN 構造体 (d3dhal.h)

D3DHAL_DP2INDEXEDTRIANGLEFANは、D3DHAL_DP2COMMAND構造体のbCommand メンバーが D3DDP2OP_INDEXEDTRIANGLEFAN に設定されているときに、D3dDrawPrimitives2 コールバックによってコマンド バッファーから解析され、頂点インデックスを使用して一連の接続された三角形をレンダリングするために使用されます。 すべての三角形は共通の頂点を共有します。

構文

typedef struct _D3DHAL_DP2INDEXEDTRIANGLEFAN {
  WORD wV[3];
} D3DHAL_DP2INDEXEDTRIANGLEFAN, *LPD3DHAL_DP2INDEXEDTRIANGLEFAN;

メンバー

wV[3]

ドライバーが三角形ファンを構成する頂点の座標データを取得する頂点バッファーへのインデックスを指定します。

このメンバーには 3 つのインデックスを格納するのに十分な領域しかありませんが、このインデックスの配列は、(wPrimitiveCount + 2) 要素を持つ可変サイズの配列として扱う必要があります。 (wPrimitiveCount は、D3DHAL_DP2COMMAND構造体のメンバーです)。

注釈

D3dDrawPrimitives2 は、コマンド バッファーから (wPrimitiveCount+2) インデックスを処理し、実際には wPrimitiveCount D3DHAL_DP2INDEXEDTRIANGLEFAN構造体を処理する必要があります。 wPrimitiveCount の値は、D3DHAL_DP2COMMAND構造体で指定されます。

ドライバーは、頂点バッファーから (wPrimitiveCount + 2) 頂点の合計を処理する必要があります。三角形ごとに 3 つの頂点。 レンダリングされる三角形のシーケンスは次のとおりです(wV[1], wV[2], wV[0]), (wV[2], wV[3], wV[0]), (wV[3], wV[4], wV[0]), ..., (wV[wPrimitiveCount], wV[wPrimitiveCount]+1], wV[0])。 すべての三角形には、一般的に wV[0]で指定された頂点があることに注意してください。

D3DHAL_DP2STARTVERTEX構造体は、コマンド バッファー内の コマンドの直後にあります。 頂点バッファー インデックスは、D3DHAL_DRAWPRIMITIVES2DATA 構造体の dwVertexOffset メンバーによって指定された頂点バッファー オフセットと 、D3DHAL_DP2STARTVERTEX 構造体の wVStart メンバーから取得されたベース オフセットに対する相対位置です。

次の図は、D3DDP2OP_INDEXEDTRIANGLEFAN コマンド、D3DHAL_DP2STARTVERTEX オフセット、およびD3DHAL_DP2INDEXEDTRIANGLEFAN構造体の論理リストを含むサンプル コマンド バッファーの一部を示しています。 ドライバーは頂点バッファーから 5 つの頂点を処理し、(v[4], v[5], v[7]), (v[5], v[6], v[7]), (v[6], v[9], v[7]) で定義された 3 つの三角形を持つファンをレンダリングする必要があります。

D3DDP2OP_INDEXEDTRIANGLEFAN コマンド、D3DHAL_DP2STARTVERTEX オフセット、およびD3DHAL_DP2INDEXEDTRIANGLEFAN構造体の一覧を含むバッファーを示す図

要件

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

こちらもご覧ください

D3DDP2OP_INDEXEDTRIANGLEFAN

D3DHAL_DP2COMMAND

D3DHAL_DP2STARTVERTEX

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2