Partager via


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.

diagramme d’un correctif rectangulaire d’ordre élevé et les paramètres qui le spécifient

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
D3D9Types.h

Voir aussi

Direct3D Structures

DrawRectPatch

D3DXTessellateRectPatch