次の方法で共有


D3DHAL_DP2INDEXEDTRIANGLESTRIP 構造体 (d3dhal.h)

D3DHAL_DP2COMMAND構造体の bCommand メンバーが D3DDP2OP_INDEXEDTRIANGLESTRIP に設定されている場合、1 つ以上のD3DHAL_DP2INDEXEDTRIANGLESTRIP構造体が D3dDrawPrimitives2 コールバックによってコマンド バッファーから解析され、頂点インデックスを使用して接続された三角形のストリップをレンダリングするために使用されます。

構文

typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP {
  WORD wV[3];
} D3DHAL_DP2INDEXEDTRIANGLESTRIP, *LPD3DHAL_DP2INDEXEDTRIANGLESTRIP;

メンバー

wV[3]

三角形ストリップの最初の頂点の座標データを含む頂点バッファーへのインデックスを指定します。

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

注釈

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

三角形ストリップの三角形エッジは、次の順序でレンダリングされます:(wV[0], wV[1], wV[2]), (wV[1], wV[3], wV[2]), (wV[2], wV[3], wV[4]), (wV[3], wV[5], wV[4]),...

ただし、三角形ストリップの最後の三角形の場合、 wPrimitiveCountt が奇数で偶数の場合、エッジは異なる順序でレンダリングされます。

  • wPrimitiveCount が奇数の場合、最後の三角形のエッジは次の順序でレンダリングされます (wV[wPrimitiveCount - 1]wV[wPrimitiveCount]wV[wPrimitiveCount+ 1])。
  • wPrimitiveCount が偶数の場合、最後の三角形のエッジは次の順序でレンダリングされます(wV[wPrimitiveCount- 1], wV[wPrimitiveCount+1], wV[wPrimitiveCount]
D3DHAL_DP2STARTVERTEX構造体は、コマンド バッファー内の コマンドの直後にあります。 頂点バッファー インデックスは、D3DHAL_DRAWPRIMITIVES2DATA 構造体の dwVertexOffset メンバーによって指定された頂点バッファー オフセットと 、D3DHAL_DP2STARTVERTEX 構造体の wVStart メンバーから取得されたベース オフセットに対する相対位置です。

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

D3DDP2OP_INDEXEDTRIANGLESTRIP コマンド、D3DHAL_DP2STARTVERTEX オフセット 0、およびD3DHAL_DP2INDEXEDTRIANGLESTRIP構造体の論理リストを含むバッファーを示す図

要件

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

こちらもご覧ください

D3DDP2OP_INDEXEDTRIANGLESTRIP

D3DHAL_DP2COMMAND

D3DHAL_DP2STARTVERTEX

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2