D3DHAL_DP2INDEXEDTRIANGLEFAN 結構 (d3dhal.h)

當 D3DHAL_DP2COMMAND 結構的 bCommand 成員設定為 D3DDP2OP_INDEXEDTRIANGLEFAN 時,D3dDrawPrimitives2 回呼會從命令緩衝區剖析D3DHAL_DP2INDEXEDTRIANGLEFAN,並用來使用頂點索引轉譯連接的三角形序列。 所有三角形都會共用通用頂點。

語法

typedef struct _D3DHAL_DP2INDEXEDTRIANGLEFAN {
  WORD wV[3];
} D3DHAL_DP2INDEXEDTRIANGLEFAN, *LPD3DHAL_DP2INDEXEDTRIANGLEFAN;

成員

wV[3]

指定索引到頂點緩衝區,驅動程式會從中取得組成三角形風扇之頂點的座標數據。

雖然此成員只有足夠空間可包含三個索引,但此索引數位應該視為具有 wPrimitiveCount + 2) 元素 (可變大小的陣列。 (wPrimitiveCount 是 D3DHAL_DP2COMMAND structure.) 的成員

備註

D3dDrawPrimitives2 應該處理命令緩衝區 (wPrimitiveCount+2) 索引,實際上,處理 wPrimitiveCount D3DHAL_DP2INDEXEDTRIANGLEFAN 結構。 wPrimitiveCount 的值是在 D3DHAL_DP2COMMAND 結構中指定。

驅動程式應該從頂點緩衝區處理總 (wPrimitiveCount + 2) 頂點,每個三角形有三個頂點。 轉譯的三角形序列為: (wV[1]wV[2]wV[0]) , (wV[2], wV[3]wV[0]) , (wV[3], wV[4], wV[0]) , ..., (wV[wPrimitiveCount], wV[wPrimitiveCount]+1]wV[0]) 。 請注意,所有三角形都有 一般 wV[0]中指定的頂點。

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

下圖顯示範例命令緩衝區的一部分,其中包含D3DDP2OP_INDEXEDTRIANGLEFAN命令、D3DHAL_DP2STARTVERTEX位移,以及D3DHAL_DP2INDEXEDTRIANGLEFAN結構的邏輯清單。 驅動程式應該從頂點緩衝區處理五個頂點,轉譯具有三個三角形的風扇,這些三角形是由 (v[4], v[5], v[7]) , (v[5], v[6], v[7]) , (v[6], v[9], v[7]) 。

顯示具有D3DDP2OP_INDEXEDTRIANGLEFAN命令、D3DHAL_DP2STARTVERTEX位移和D3DHAL_DP2INDEXEDTRIANGLEFAN結構清單的緩衝區圖

規格需求

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

另請參閱

D3DDP2OP_INDEXEDTRIANGLEFAN

D3DHAL_DP2COMMAND

D3DHAL_DP2STARTVERTEX

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2