D3DHAL_DP2INDEXEDTRIANGLELIST 結構 (d3dhal.h)

D3DHAL_DP2COMMAND 結構的 bCommand 成員設定為 D3DDP2OP_INDEXEDTRIANGLELIST 時,D3dDrawPrimitives2 回呼會從命令緩衝區剖析一或多個D3DHAL_DP2INDEXEDTRIANGLELIST結構,並用來使用頂點索引轉譯未連接三角形的序列。

語法

typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST {
  WORD wV1;
  WORD wV2;
  WORD wV3;
  WORD wFlags;
} D3DHAL_DP2INDEXEDTRIANGLELIST, *LPD3DHAL_DP2INDEXEDTRIANGLELIST;

成員

wV1

指定頂點緩衝區位置中的索引,其中包含三角形第一個頂點的座標數據。

wV2

指定頂點緩衝區位置的索引,其中包含三角形第二個頂點的座標數據。

wV3

指定頂點緩衝區位置的索引,其中包含三角形第三個頂點的座標數據。

wFlags

指定旗標,描述驅動程式應該如何呈現三角形。 這個成員可以是下列值的位 OR:

國旗 意義
D3DTRIFLAG_EDGEENABLE1 當填滿模式D3DFILL_WIREFRAME時,驅動程式應該呈現 wV1wV2 之間的三角形邊緣。
D3DTRIFLAG_EDGEENABLE2 當填滿模式D3DFILL_WIREFRAME時,驅動程式應該呈現 wV2wV3 之間的三角形邊緣。
D3DTRIFLAG_EDGEENABLE3 當填滿模式D3DFILL_WIREFRAME時,驅動程式應該呈現 wV3wV1 之間的三角形邊緣。
D3DTRIFLAG_EDGEENABLETRIANGLE 當填滿模式D3DFILL_WIREFRAME時,驅動程式應該轉譯所有三角形邊緣。

備註

D3dDrawPrimitives2 應該處理命令緩衝區 中的 wPrimitiveCount * 3 個索引,處理 wPrimitiveCount D3DHAL_DP2INDEXEDTRIANGLELIST 結構。 wPrimitiveCount 的值是在 D3DHAL_DP2COMMAND 結構中指定。

驅動程式應該針對目前的命令,處理頂點緩衝區中的 wPrimitiveCount*3 頂點總計,每個三角形有三個頂點。 轉譯的三角形順序 (wV1₀, wV2₀, wV3₀) , (wV1₁, wV2₁, wV3₁) , ..., (wV1n, wV2 n, wV3n) , where n equals (wPrimitiveCount- 1) . 驅動程式應該根據目前的命令計算頂點位置,如下所示:

  • 當命令D3DDP2OP_INDEXEDTRIANGLELIST時,頂點緩衝區中的索引會相對於 D3DHAL_DRAWPRIMITIVES2DATA 結構的 dwVertexOffset 成員所指定的頂點緩衝區位移。

  • 當命令D3DDP2OP_INDEXEDTRIANGLELIST2時,有 一個D3DHAL_DP2STARTVERTEX 結構會緊接在命令緩衝區中的命令後面。 頂點緩衝區中的索引相對於 dwVertexOffset 所指定的頂點緩衝區位移,加上從 D3DHAL_DP2STARTVERTEX 結構的 wVStart 成員取得的基底位移。

下圖顯示範例命令緩衝區的一部分,其中包含D3DDP2OP_INDEXEDTRIANGLELIST命令和兩個D3DHAL_DP2INDEXEDTRIANGLELIST結構。 驅動程式應該從頂點緩衝區使用下列六個頂點繪製兩個三角形,其中已啟用所有邊緣的 ˆ': (v[3]、v[4]、v[5]) 、 (v[0]、v[1]、v[2]) 。

顯示具有D3DDP2OP_INDEXEDTRIANGLELIST命令和兩個D3DHAL_DP2INDEXEDTRIANGLELIST結構的命令緩衝區圖 同樣地,下圖顯示範例命令緩衝區的一部分,其中包含D3DDP2OP_INDEXEDTRIANGLELIST2命令、D3DHAL_DP2STARTVERTEX位移,以及兩個D3DHAL_DP2INDEXEDTRIANGLELIST結構。 驅動程式應該從頂點緩衝區處理六個頂點,轉譯由 (v[5]、v[6]、v[7]) 、 (v[2]、v[3]、v[4]) 定義的兩個三角形。 顯示具有D3DDP2OP_INDEXEDTRIANGLELIST2命令、D3DHAL_DP2STARTVERTEX位移和兩個D3DHAL_DP2INDEXEDTRIANGLELIST結構的緩衝區圖

規格需求

需求
標頭 d3dhal.h (包含 D3dhal.h)

另請參閱

D3DDP2OP_INDEXEDTRIANGLELIST

D3DHAL_DP2COMMAND

D3DHAL_DP2STARTVERTEX

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2