D3DHAL_DP2INDEXEDTRIANGLELIST struttura (d3dhal.h)
Una o più strutture D3DHAL_DP2INDEXEDTRIANGLELIST vengono analizzate dal buffer dei comandi dal callback D3dDrawPrimitives2quando il membrobCommand della struttura D3DHAL_DP2COMMAND viene impostato su D3DDP2OP_INDEXEDTRIANGLELIST e viene usato per eseguire il rendering di una sequenza di triangoli non connessi usando indici vertex.
Sintassi
typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST {
WORD wV1;
WORD wV2;
WORD wV3;
WORD wFlags;
} D3DHAL_DP2INDEXEDTRIANGLELIST, *LPD3DHAL_DP2INDEXEDTRIANGLELIST;
Members
wV1
Specifica l'indice nella posizione del buffer del vertice contenente i dati delle coordinate per il primo vertice del triangolo.
wV2
Specifica l'indice nella posizione del buffer del vertice contenente i dati delle coordinate per il secondo vertice del triangolo.
wV3
Specifica l'indice nella posizione del buffer del vertice contenente i dati delle coordinate per il terzo vertice del triangolo.
wFlags
Specifica i flag che descrivono come il driver deve eseguire il rendering del triangolo. Questo membro può essere un OR bit per bit dei valori seguenti:
Bandiera | Significato |
---|---|
D3DTRIFLAG_EDGEENABLE1 | Il driver deve eseguire il rendering del bordo del triangolo tra wV1 e wV2 quando la modalità di riempimento è D3DFILL_WIREFRAME. |
D3DTRIFLAG_EDGEENABLE2 | Il driver deve eseguire il rendering del bordo del triangolo tra wV2 e wV3 quando la modalità di riempimento è D3DFILL_WIREFRAME. |
D3DTRIFLAG_EDGEENABLE3 | Il driver deve eseguire il rendering del bordo del triangolo tra wV3 e wV1 quando la modalità di riempimento è D3DFILL_WIREFRAME. |
D3DTRIFLAG_EDGEENABLETRIANGLE | Il driver deve eseguire il rendering di tutti i bordi del triangolo quando la modalità di riempimento è D3DFILL_WIREFRAME. |
Commenti
D3dDrawPrimitives2 deve elaborare wPrimitiveCount * 3 indici dal buffer dei comandi, elaborazione di strutture wPrimitiveCount D3DHAL_DP2INDEXEDTRIANGLELIST. Il valore di wPrimitiveCount viene specificato nella struttura D3DHAL_DP2COMMAND.
Il driver deve elaborare un totale di vertici wPrimitiveCount*3 dal buffer del vertice, tre vertici per triangolo, per il comando corrente. La sequenza di triangoli sottoposti a rendering è (wV1₀, wV2₀, wV3₀), (wV1₁, wV2₁, wV3₁), ..., (wV1n, wV2 n, wV3n), dove n equals (wPrimitiveCount- 1). Il driver deve calcolare le posizioni del vertice in base al comando corrente come indicato di seguito:
Quando il comando è D3DDP2OP_INDEXEDTRIANGLELIST, gli indici nel buffer del vertice sono relativi all'offset del buffer del vertice specificato dal membro dwVertexOffset della struttura D3DHAL_DRAWPRIMITIVES2DATA .
Quando il comando è D3DDP2OP_INDEXEDTRIANGLELIST2, esiste una struttura D3DHAL_DP2STARTVERTEX che segue immediatamente il comando nel buffer dei comandi. Gli indici nel buffer del vertice sono relativi all'offset del buffer del vertice specificato da dwVertexOffset e l'offset di base ottenuto dal membro wVStart della struttura D3DHAL_DP2STARTVERTEX.
La figura seguente mostra una parte di un buffer di comando di esempio contenente un comando D3DDP2OP_INDEXEDTRIANGLELIST e due strutture D3DHAL_DP2INDEXEDTRIANGLELIST. Il driver deve disegnare due triangoli âˆ' con tutti i bordi abilitati âˆ' usando i sei vertici seguenti dal buffer del vertice: (v[3], v[4], v[5]), (v[0], v[1], v[2], v[2]).
Analogamente, la figura seguente mostra una parte di un buffer di comando di esempio contenente un comando D3DDP2OP_INDEXEDTRIANGLELIST2, un offset D3DHAL_DP2STARTVERTEX e due strutture D3DHAL_DP2INDEXEDTRIANGLELIST. Il driver deve elaborare sei vertici dal buffer del vertice, rendering di due triangoli definiti da (v[5], v[6], v[7]), (v[2], v[3], v[4]).Requisiti
Requisito | Valore |
---|---|
Intestazione | d3dhal.h (include D3dhal.h) |
Vedi anche
D3DDP2OP_INDEXEDTRIANGLELIST