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]).

Figura che mostra un buffer dei comandi con un comando D3DDP2OP_INDEXEDTRIANGLELIST e due strutture D3DHAL_DP2INDEXEDTRIANGLELIST 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]). Figura che mostra un buffer con un comando D3DDP2OP_INDEXEDTRIANGLELIST2, un offset D3DHAL_DP2STARTVERTEX e due strutture D3DHAL_DP2INDEXEDTRIANGLELIST

Requisiti

Requisito Valore
Intestazione d3dhal.h (include D3dhal.h)

Vedi anche

D3DDP2OP_INDEXEDTRIANGLELIST

D3DHAL_DP2COMMAND

D3DHAL_DP2STARTVERTEX

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2