D3DHAL_DP2INDEXEDTRIANGLELIST 構造体 (d3dhal.h)
D3DHAL_DP2COMMAND構造体の bCommand メンバーがD3DDP2OP_INDEXEDTRIANGLELISTに設定され、頂点インデックスを使用して接続されていない三角形のシーケンスをレンダリングするために使用される場合、1 つ以上のD3DHAL_DP2INDEXEDTRIANGLELIST構造体が D3dDrawPrimitives2 コールバックによってコマンド バッファーから解析されます。
構文
typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST {
WORD wV1;
WORD wV2;
WORD wV3;
WORD wFlags;
} D3DHAL_DP2INDEXEDTRIANGLELIST, *LPD3DHAL_DP2INDEXEDTRIANGLELIST;
メンバー
wV1
三角形の最初の頂点の座標データを含む頂点バッファーの位置へのインデックスを指定します。
wV2
三角形の 2 番目の頂点の座標データを含む頂点バッファーの位置へのインデックスを指定します。
wV3
三角形の 3 番目の頂点の座標データを含む頂点バッファーの位置へのインデックスを指定します。
wFlags
ドライバーが三角形をレンダリングする方法を説明するフラグを指定します。 このメンバーには、次の値のビットごとの OR を指定できます。
フラグ | 意味 |
---|---|
D3DTRIFLAG_EDGEENABLE1 | フィル モードがD3DFILL_WIREFRAMEされている場合、ドライバーは wV1 と wV2 の間に三角形の端をレンダリングする必要があります。 |
D3DTRIFLAG_EDGEENABLE2 | フィル モードがD3DFILL_WIREFRAMEの場合、ドライバーは wV2 と wV3 の間に三角形の端をレンダリングする必要があります。 |
D3DTRIFLAG_EDGEENABLE3 | フィル モードがD3DFILL_WIREFRAMEの場合、ドライバーは wV3 と wV1 の間に三角形の端をレンダリングする必要があります。 |
D3DTRIFLAG_EDGEENABLETRIANGLE | フィル モードがD3DFILL_WIREFRAMEされると、ドライバーはすべての三角形エッジをレンダリングする必要があります。 |
注釈
D3dDrawPrimitives2 では、コマンド バッファーから wPrimitiveCount * 3 個のインデックスを処理し、 wPrimitiveCount D3DHAL_DP2INDEXEDTRIANGLELIST構造体を処理する必要があります。 wPrimitiveCount の値は、D3DHAL_DP2COMMAND構造体で指定します。
ドライバーは、現在のコマンドに対して、頂点バッファーから 合計 wPrimitiveCount*3 頂点 (三角形ごとに 3 つの頂点) を処理する必要があります。 レンダリングされる三角形のシーケンスは (wV1₀、wV2₀、wV3₀)、(wV1₁、wV2₁、wV3₁)、...、(wV1 n、wV2n、wV3n)、n は (wPrimitiveCount- 1) です。 ドライバーは、次のように現在のコマンドに基づいて頂点の位置を計算する必要があります。
コマンドをD3DDP2OP_INDEXEDTRIANGLELISTすると、頂点バッファーへのインデックスは、 D3DHAL_DRAWPRIMITIVES2DATA 構造体の dwVertexOffset メンバーによって指定された頂点バッファー オフセットに対して相対的になります。
コマンドがD3DDP2OP_INDEXEDTRIANGLELIST2されると、コマンド バッファー内のコマンドの直後に D3DHAL_DP2STARTVERTEX 構造があります。 頂点バッファーへのインデックスは、dwVertexOffset で指定された頂点バッファー オフセットと、D3DHAL_DP2STARTVERTEX構造体の wVStart メンバーから取得されたベース オフセットに対して相対的です。
次の図は、D3DDP2OP_INDEXEDTRIANGLELIST コマンドと 2 つのD3DHAL_DP2INDEXEDTRIANGLELIST構造体を含むサンプル コマンド バッファーの一部を示しています。 ドライバーは、頂点バッファーから次の 6 つの頂点 (v[3]、v[4]、v[5])、(v[0]、v[1]、v[2]) を使用して、すべてのエッジが有効になっている 2 つの三角形 âˆ' を描画する必要があります。
同様に、次の図は、D3DDP2OP_INDEXEDTRIANGLELIST2 コマンド、D3DHAL_DP2STARTVERTEX オフセット、および 2 つのD3DHAL_DP2INDEXEDTRIANGLELIST構造体を含むサンプル コマンド バッファーの一部を示しています。 ドライバーは頂点バッファーから 6 つの頂点を処理し、(v[5], v[6], v[7]), (v[2], v[3], v[4]) で定義された 2 つの三角形をレンダリングする必要があります。要件
要件 | 値 |
---|---|
Header | d3dhal.h (D3dhal.h を含む) |
こちらもご覧ください
D3DDP2OP_INDEXEDTRIANGLELIST