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]).
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]).Configuration requise
Condition requise | Valeur |
---|---|
En-tête | d3dhal.h (inclure D3dhal.h) |
Voir aussi
D3DDP2OP_INDEXEDTRIANGLELIST