D3DHAL_DP2INDEXEDTRIANGLESTRIP 結構 (d3dhal.h)
當 D3DHAL_DP2COMMAND 結構的 bCommand 成員設定為 D3DDP2OP_INDEXEDTRIANGLESTRIP 時,D3dDrawPrimitives2 回呼會從命令緩衝區剖析一或多個D3DHAL_DP2INDEXEDTRIANGLESTRIP結構,並使用頂點索引來轉譯連接三角形的等量。
語法
typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP {
WORD wV[3];
} D3DHAL_DP2INDEXEDTRIANGLESTRIP, *LPD3DHAL_DP2INDEXEDTRIANGLESTRIP;
成員
wV[3]
指定頂點緩衝區中的索引,其中包含三角形帶狀結構第一個頂點的座標數據。
雖然此成員只有足夠空間可包含三個索引,但此索引數位應該視為具有 wPrimitiveCount + 2) 元素 (可變大小的陣列。 (wPrimitiveCount 是 D3DHAL_DP2COMMAND structure.) 的成員
備註
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) 。
下圖顯示範例命令緩衝區的一部分,其中包含D3DDP2OP_INDEXEDTRIANGLESTRIP命令、零的D3DHAL_DP2STARTVERTEX位移,以及D3DHAL_DP2INDEXEDTRIANGLESTRIP結構的邏輯清單。 驅動程式應該從頂點緩衝區處理五個頂點,轉譯由 (v[1]、 v[3]、 v[3]、 v[6]) 、 (v[3]、 v[4]、 v[6]) 、 (v[6]、 v[4]、 v[5]) 所定義的三角形。
規格需求
需求 | 值 |
---|---|
標頭 | d3dhal.h (包含 D3dhal.h) |
另請參閱
D3DDP2OP_INDEXEDTRIANGLESTRIP