Freigeben über


D3DRECTPATCH_INFO Struktur

Beschreibt einen rechteckigen Patch mit hoher Ordnung.

Syntax

typedef struct D3DRECTPATCH_INFO {
  UINT          StartVertexOffsetWidth;
  UINT          StartVertexOffsetHeight;
  UINT          Width;
  UINT          Height;
  UINT          Stride;
  D3DBASISTYPE  Basis;
  D3DDEGREETYPE Degree;
} D3DRECTPATCH_INFO, *LPD3DRECTPATCH_INFO;

Member

StartVertexOffsetWidth

Typ: UINT

Startversatzbreite in Anzahl der Scheitelpunkte.

StartVertexOffsetHeight

Typ: UINT

Startversatzhöhe in Anzahl der Scheitelpunkte.

Width

Typ: UINT

Breite jedes Scheitelpunkts in Anzahl der Scheitelpunkte.

Height

Typ: UINT

Höhe jedes Scheitelpunkts in Anzahl der Scheitelpunkte.

Schritt

Typ: UINT

Breite des imaginären zweidimensionalen Vertexarrays, das den gleichen Raum wie der Vertexpuffer einnimmt. Ein Beispiel finden Sie im diagramm unten.

Basis

Typ: D3DBASISTYPE

Mitglied des aufgezählten D3DBASISTYPE-Typs , der den Basistyp für den rechteckigen Patch mit hoher Ordnung definiert.

Wert Bestellung wird unterstützt Breite und Höhe
D3DBASIS_BEZIER Linear, kubisch und quintisch Width = height = (DWORD)order + 1
D3DBASIS_BSPLINE Linear, kubisch und quintisch Width = height > (DWORD)order
D3DBASIS_INTERPOLATE Kubische Width = height > (DWORD)order

 

Grad

Typ: D3DDEGREETYPE

Mitglied des aufgezählten D3DDEGREETYPE-Typs , der den Grad für den rechteckigen Patch definiert.

Bemerkungen

Im folgenden Diagramm werden die Parameter identifiziert, die einen Rechteckpatch angeben.

Diagramm eines rechteckigen High-Order-Patches und der Parameter, die ihn angeben

Jeder Scheitelpunkt im Scheitelpunktpuffer wird als schwarzer Punkt angezeigt. In diesem Fall hat der Scheitelpunktpuffer 20 Scheitelpunkte, von denen sich 16 im Rechteckpatch befinden. Der Schritt ist die Anzahl der Scheitelpunkte in der Breite des Scheitelpunktpuffers, in diesem Fall fünf. Der x-Offset zum ersten Scheitelpunkt wird StartIndexVertexWidth genannt und ist in diesem Fall 1. Der y-Offset zum ersten Patchvertex wird StartIndexVertexHeight genannt und ist in diesem Fall 0.

Um einen Strom einzelner rechteckiger Patches (nicht Mosaik) zu rendern, sollten Sie Ihre Geometrie als einen langen schmalen (1 x N) rechteckigen Patch interpretieren. Die D3DRECTPATCH_INFO Struktur für einen solchen Streifen (kubischer Bézier) würde wie folgt eingerichtet.

    
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.

Anforderungen

Anforderung Wert
Header
D3D9Types.h

Siehe auch

Direct3D-Strukturen

DrawRectPatch

D3DXTessellateRectPatch