D3DHAL_DP2INDEXEDTRIANGLELIST構造体 (d3dhal.h)
D3DHAL_DP2COMMAND 構造体の bCommand メンバーがD3DDP2OP_INDEXEDTRIANGLELISTに設定され、頂点インデックスを使用して接続されていない三角形のシーケンスをレンダリングするときに、D3dDrawPrimitives2 コールバックによって 1 つ以上のD3DHAL_DP2INDEXEDTRIANGLELIST構造体がコマンド バッファーから解析されます。
構文
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構造体で指定されます。
ドライバーは、現在のコマンドに対 して、頂点バッファーから *3 個の頂点 (三角形あたり 3 つの頂点)wPrimitiveCount の合計を処理する必要があります。 レンダリングされる三角形のシーケンスは(wV1₀, wV2₀, wV3₀), (wV1₁, wV2₁,wV3₁), ..., (wV1n, 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_INDEXEDTRIANGLELIST コマンドと 2 つのD3DHAL_DP2INDEXEDTRIANGLELIST構造体を含むコマンド バッファーを示す図同様に、次の図は、D3DDP2OP_INDEXEDTRIANGLELIST2 コマンド、D3DHAL_DP2STARTVERTEX オフセット、および 2 つのD3DHAL_DP2INDEXEDTRIANGLELIST構造体を含むサンプル コマンド バッファーの一部を示しています。 ドライバーは、頂点バッファーから 6 つの頂点を処理し、(v[5]、v[6]、v[7])、(v[2]、v[3]、v[4]) で定義された 2 つの三角形をレンダリングする必要があります。![D3DDP2OP_INDEXEDTRIANGLELIST2 コマンド、D3DHAL_DP2STARTVERTEX オフセット、および 2 つのD3DHAL_DP2INDEXEDTRIANGLELIST構造体を含むバッファーを示す図](images/dp2tls2i.png)
必要条件
要件 | 価値 |
---|---|
ヘッダー | d3dhal.h (D3dhal.h を含む) |
関連項目
D3DDP2OP_INDEXEDTRIANGLELIST
D3dDrawPrimitives2 の