Partager via


D3DHAL_DP2INDEXEDTRIANGLELIST structure (d3dhal.h)

Une ou plusieurs structures D3DHAL_DP2INDEXEDTRIANGLELIST sont analysées à partir de la mémoire tampon de commandes par le rappel D3dDrawPrimitives2 lorsque le membre bCommand de la structure D3DHAL_DP2COMMAND est défini sur D3DDP2OP_INDEXEDTRIANGLELIST, et sont utilisées pour afficher une séquence de triangles non connectés à l’aide d’index de vertex.

Syntaxe

typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST {
  WORD wV1;
  WORD wV2;
  WORD wV3;
  WORD wFlags;
} D3DHAL_DP2INDEXEDTRIANGLELIST, *LPD3DHAL_DP2INDEXEDTRIANGLELIST;

Membres

wV1

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

wV2

Spécifie l’index de l’emplacement de la mémoire tampon de vertex contenant les données de coordonnées pour le deuxième sommet du triangle.

wV3

Spécifie l’index de l’emplacement de la mémoire tampon de vertex contenant les données de coordonnées du troisième sommet du triangle.

wFlags

Spécifie les indicateurs qui décrivent comment le pilote doit afficher le triangle. Ce membre peut être un or au niveau du bit des valeurs suivantes :

Indicateur Signification
D3DTRIFLAG_EDGEENABLE1 Le pilote doit afficher le bord du triangle entre wV1 et wV2 lorsque le mode de remplissage est D3DFILL_WIREFRAME.
D3DTRIFLAG_EDGEENABLE2 Le pilote doit afficher le bord du triangle entre wV2 et wV3 lorsque le mode de remplissage est D3DFILL_WIREFRAME.
D3DTRIFLAG_EDGEENABLE3 Le pilote doit afficher le bord du triangle entre wV3 et wV1 lorsque le mode de remplissage est D3DFILL_WIREFRAME.
D3DTRIFLAG_EDGEENABLETRIANGLE Le pilote doit afficher tous les bords triangles lorsque le mode de remplissage est D3DFILL_WIREFRAME.

Remarques

D3dDrawPrimitives2 doit traiter wPrimitiveCount * 3 index à partir de la mémoire tampon de commandes, en traitant les structures wPrimitiveCount D3DHAL_DP2INDEXEDTRIANGLELIST. La valeur de wPrimitiveCount est spécifiée dans la structure D3DHAL_DP2COMMAND.

Le pilote doit traiter un total de wPrimitiveCount*3 sommets à partir de la mémoire tampon de vertex, trois sommets par triangle, pour la commande actuelle. La séquence de triangles rendue est (wV1₀, wV2₀, wV3₀), (wV1₁, wV2₁, wV3₁), ..., (wV1n, wV2n, wV3n), où n est égal à (wPrimitiveCount- 1). Le pilote doit calculer les emplacements de vertex en fonction de la commande actuelle comme suit :

  • Lorsque la commande est D3DDP2OP_INDEXEDTRIANGLELIST, les index dans la 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 .

  • Lorsque la commande est D3DDP2OP_INDEXEDTRIANGLELIST2, il existe une structure D3DHAL_DP2STARTVERTEX qui suit immédiatement la commande dans la mémoire tampon de commandes. Les index dans la mémoire tampon de vertex sont relatifs au décalage de la mémoire tampon de vertex spécifié par dwVertexOffset plus le décalage de base obtenu à partir du membre wVStart de la structure D3DHAL_DP2STARTVERTEX.

La figure suivante montre une partie d’un exemple de mémoire tampon de commandes contenant une commande D3DDP2OP_INDEXEDTRIANGLELIST et deux structures D3DHAL_DP2INDEXEDTRIANGLELIST. Le pilote doit dessiner deux triangles « avec tous les bords activés » à l’aide des six sommets suivants à partir de la mémoire tampon de vertex : (v[3], v[4], v[5]), (v[0], v[1], v[2]).

Figure montrant une mémoire tampon de commandes avec une commande D3DDP2OP_INDEXEDTRIANGLELIST et deux structures D3DHAL_DP2INDEXEDTRIANGLELIST De même, la figure suivante montre une partie d’un exemple de mémoire tampon de commandes contenant une commande D3DDP2OP_INDEXEDTRIANGLELIST2, un décalage D3DHAL_DP2STARTVERTEX et deux structures D3DHAL_DP2INDEXEDTRIANGLELIST. Le pilote doit traiter six sommets à partir de la mémoire tampon de vertex, rendant deux triangles définis par (v[5], v[6], v[7]), (v[2], v[3], v[4]). Figure montrant une mémoire tampon avec une commande D3DDP2OP_INDEXEDTRIANGLELIST2, un décalage D3DHAL_DP2STARTVERTEX et deux structures D3DHAL_DP2INDEXEDTRIANGLELIST

Configuration requise

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

Voir aussi

D3DDP2OP_INDEXEDTRIANGLELIST

D3DHAL_DP2COMMAND

D3DHAL_DP2STARTVERTEX

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2