D3DHAL_DP2TRIANGLEFAN_IMM 結構 (d3dhal.h)
當 D3DHAL_DP2COMMAND 結構的 bCommand 成員設定為 D3DDP2OP_TRIANGLEFAN_IMM 時,D3dDrawPrimitives2 回呼會從命令緩衝區剖析 D3DHAL_DP2TRIANGLEFAN_IMM一個D3DDP2OP_TRIANGLEFAN_IMM結構,並用來轉譯三角形風扇。
語法
typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM {
DWORD dwEdgeFlags;
} D3DHAL_DP2TRIANGLEFAN_IMM;
成員
dwEdgeFlags
指定位掩碼,識別當填滿模式D3DFILL_WIREFRAME時,應該轉譯哪一個風扇的外部邊緣。 設定位表示應該轉譯其對應的邊緣。 如需此位掩碼的詳細資訊,請參閱一節。
備註
一個D3DHAL_DP2TRIANGLEFAN_IMM結構緊接在命令緩衝區中的D3DHAL_DP2COMMAND結構後面。 三角形風扇的頂點數據會緊接在命令緩衝區中的D3DHAL_DP2TRIANGLEFAN_IMM結構後面對齊 DWORD。
D3dDrawPrimitives2 應該從命令緩衝區處理 wPrimitiveCount+2 頂點總計,每個三角形有三個頂點,轉譯 wPrimitiveCount 三角形。 轉譯的三角形順序 (V[1], V[2], V[0]) , (V[2], V[3], V[0]) , (V[3], V[4], V[0]) , ..., (V[wPrimitiveCount], V[wPrimitiveCount] + 1],V[0]) 。 wPrimitiveCount 的值是在 D3DHAL_DP2COMMAND 結構中指定。
當填滿模式D3DFILL_WIREFRAME時,驅動程式必須檢查每個風扇外部邊緣的邊緣旗標。 從 dwEdgeFlags 的最低有效位開始,位 0 會套用至 V[0]-V[1] 邊緣, bit 1 適用於 V[1]-V[2] 邊緣...,位 wPrimitiveCount 適用於 V[wPrimitiveCount]-V[[wPrimitiveCount]+1] 邊緣,而位 (wPrimitiveCount + 1) 適用於 V[[wPrimitiveCount]+1]-V[0] 邊緣。
下圖顯示範例命令緩衝區的一部分,其中包含D3DDP2OP_TRIANGLEFAN_IMM命令、D3DHAL_DP2TRIANGLEFAN_IMM結構和頂點數據。 驅動程式應該處理命令緩衝區中的五個頂點,轉譯具有三個三角形的風扇,該三角形是由 (v[1], v[2], v[0]) , (v[2], v[3], v[0], v[0]) , (v[3], v[4], v[0]) 。
規格需求
需求 | 值 |
---|---|
標頭 | d3dhal.h (包含 D3dhal.h) |
另請參閱
D3DDP2OP_TRIANGLEFAN_IMM