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.
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 |
|
Siehe auch