D3DHAL_DP2INDEXEDTRIANGLESTRIP structure (d3dhal.h)

Une ou plusieurs structures D3DHAL_DP2INDEXEDTRIANGLESTRIP sont analysées à partir de la mémoire tampon de commande par le rappel D3dDrawPrimitives2 lorsque le membre bCommand de la structure D3DHAL_DP2COMMAND est défini sur D3DDP2OP_INDEXEDTRIANGLESTRIP, et sont utilisées pour afficher des bandes de triangles connectés à l’aide d’index de vertex.

Syntaxe

typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP {
  WORD wV[3];
} D3DHAL_DP2INDEXEDTRIANGLESTRIP, *LPD3DHAL_DP2INDEXEDTRIANGLESTRIP;

Membres

wV[3]

Spécifie l’index dans la mémoire tampon de vertex contenant des données de coordonnées pour le premier sommet de la bande de triangle.

Bien que ce membre ne dispose que de suffisamment d’espace pour contenir trois index, ce tableau d’index doit être traité comme un tableau de taille variable avec des éléments (wPrimitiveCount + 2). (wPrimitiveCount est membre de la structure D3DHAL_DP2COMMAND.)

Remarques

D3dDrawPrimitives2 doit traiter (wPrimitiveCount+2) les index à partir de la mémoire tampon de commandes, en fait, traiter les structures wPrimitiveCount D3DHAL_DP2INDEXEDTRIANGLESTRIP.

Les bords de triangle dans une bande de triangles sont affichés dans cet ordre : (wV[0], wV[1], wV[2]), (wV[1], wV[3], wV[2]), (wV[2], wV[3], wV[4]), (wV[3], wV[5], wV[4]),...

Toutefois, pour le dernier triangle de la bande de triangle, les bords sont rendus dans des ordres différents lorsque wPrimitiveCountest impair et quand il est pair.

  • Lorsque wPrimitiveCount est un nombre impair, les bords du dernier triangle sont affichés dans l’ordre suivant : (wV[wPrimitiveCount - 1], wV[wPrimitiveCount], wV[wPrimitiveCount+ 1]).
  • Lorsque wPrimitiveCount est un nombre pair, les bords du dernier triangle sont affichés dans l’ordre suivant : (wV[wPrimitiveCount- 1], wV[wPrimitiveCount+1], wV[wPrimitiveCount).
Une structure D3DHAL_DP2STARTVERTEX suit immédiatement la commande dans la mémoire tampon de commande. Les index de mémoire tampon de vertex sont relatifs au décalage de la mémoire tampon de vertex spécifié par le membre dwVertexOffset de la structure D3DHAL_DRAWPRIMITIVES2DATA plus le décalage de base obtenu à partir du membre wVStart de la structure D3DHAL_DP2STARTVERTEX.

L’illustration suivante montre une partie d’un exemple de mémoire tampon de commandes contenant une commande D3DDP2OP_INDEXEDTRIANGLESTRIP, un décalage D3DHAL_DP2STARTVERTEX de zéro et une liste logique de structures D3DHAL_DP2INDEXEDTRIANGLESTRIP. Le pilote doit traiter cinq sommets à partir de la mémoire tampon de vertex, rendant une bande de trois triangles définis par (v[1], v[3], v[6]), (v[3], v[4], v[6]), (v[6], v[4], v[5]).

Figure montrant une mémoire tampon avec une commande D3DDP2OP_INDEXEDTRIANGLESTRIP, un décalage D3DHAL_DP2STARTVERTEX de zéro et une liste logique de structures D3DHAL_DP2INDEXEDTRIANGLESTRIP

Configuration requise

Condition requise Valeur
En-tête d3dhal.h (inclure D3dhal.h)

Voir aussi

D3DDP2OP_INDEXEDTRIANGLESTRIP

D3DHAL_DP2COMMAND

D3DHAL_DP2STARTVERTEX

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2