structure D3DRECTPATCH_INFO
Décrit un correctif rectangulaire d’ordre élevé.
Syntaxe
typedef struct D3DRECTPATCH_INFO {
UINT StartVertexOffsetWidth;
UINT StartVertexOffsetHeight;
UINT Width;
UINT Height;
UINT Stride;
D3DBASISTYPE Basis;
D3DDEGREETYPE Degree;
} D3DRECTPATCH_INFO, *LPD3DRECTPATCH_INFO;
Membres
-
StartVertexOffsetWidth
-
Type : UINT
-
Largeur de décalage de vertex de départ, en nombre de sommets.
-
StartVertexOffsetHeight
-
Type : UINT
-
Hauteur de décalage de vertex de départ, en nombre de sommets.
-
Width
-
Type : UINT
-
Largeur de chaque sommet, en nombre de sommets.
-
Height
-
Type : UINT
-
Hauteur de chaque sommet, en nombre de sommets.
-
Foulée
-
Type : UINT
-
Largeur du tableau de vertex à deux dimensions imaginaire, qui occupe le même espace que la mémoire tampon de vertex. Pour obtenir un exemple, consultez le diagramme ci-dessous.
-
Base
-
Type : D3DBASISTYPE
-
Membre du type énuméré D3DBASISTYPE , définissant le type de base pour le correctif rectangulaire d’ordre élevé.
Valeur Commande prise en charge Largeur et hauteur D3DBASIS_BEZIER Linéaire, cubique et quintique Width = height = (DWORD)order + 1 D3DBASIS_BSPLINE Linéaire, cubique et quintique Width = height > (DWORD)order D3DBASIS_INTERPOLATE Cubes Width = height > (DWORD)order -
Degré
-
Type : D3DDEGREETYPE
-
Membre du type énuméré D3DDEGREETYPE , définissant le degré du patch rectangulaire.
Notes
Le diagramme suivant identifie les paramètres qui spécifient un correctif rectangle.
Chacun des sommets dans la mémoire tampon de vertex s’affiche sous la forme d’un point noir. Dans ce cas, la mémoire tampon de vertex contient 20 sommets, dont 16 se trouvent dans le correctif rectangle. La foulée correspond au nombre de sommets dans la largeur de la mémoire tampon de vertex, dans ce cas cinq. Le décalage x par rapport au premier sommet est appelé StartIndexVertexWidth et est dans ce cas 1. Le décalage y par rapport au premier vertex de correctif est appelé StartIndexVertexHeight et est dans ce cas 0.
Pour restituer un flux de correctifs rectangulaires individuels (non mosaïques), vous devez interpréter votre géométrie comme un patch rectangulaire long et étroit (1 x N). La structure D3DRECTPATCH_INFO d’une telle bande (Bézier cubique) serait mise en place de la manière suivante.
D3DRECTPATCH_INFO RectInfo;
RectInfo.Width = 4;
RectInfo.Height = 4;
RectInfo.Stride = 4;
RectInfo.Basis = D3DBASIS_BEZIER;
RectInfo.Order = D3DORDER_CUBIC;
RectInfo.StartVertexOffsetWidth = 0;
RectInfo.StartVertexOffsetHeight = 4*i; // The variable i is the index of the
// patch you want to render.
Spécifications
Condition requise | Valeur |
---|---|
En-tête |
|
Voir aussi