структура D3DRECTPATCH_INFO
Описывает прямоугольное исправление высокого порядка.
Синтаксис
typedef struct D3DRECTPATCH_INFO {
UINT StartVertexOffsetWidth;
UINT StartVertexOffsetHeight;
UINT Width;
UINT Height;
UINT Stride;
D3DBASISTYPE Basis;
D3DDEGREETYPE Degree;
} D3DRECTPATCH_INFO, *LPD3DRECTPATCH_INFO;
Члены
-
StartVertexOffsetWidth
-
Тип: UINT
-
Начальная ширина смещения вершин в количестве вершин.
-
StartVertexOffsetHeight
-
Тип: UINT
-
Начальная высота смещения вершин в количестве вершин.
-
Width
-
Тип: UINT
-
Ширина каждой вершины в количестве вершин.
-
Height
-
Тип: UINT
-
Высота каждой вершины в количестве вершин.
-
Шаг
-
Тип: UINT
-
Ширина воображаемого двумерного массива вершин, который занимает то же пространство, что и буфер вершин. Пример см. на схеме ниже.
-
База
-
Тип: D3DBASISTYPE
-
Член перечисленного типа D3DBASISTYPE , определяющий базовый тип для прямоугольного исправления высокого порядка.
Значение Поддерживается заказ Ширина и высота D3DBASIS_BEZIER Линейная, кубическая и квинтическая Ширина = высота = (DWORD)order + 1 D3DBASIS_BSPLINE Линейная, кубическая и квинтическая Ширина = высота > (DWORD)порядок D3DBASIS_INTERPOLATE Кубические Ширина = высота > (DWORD)порядок -
Градус
-
Тип: D3DDEGREETYPE
-
Член перечисленного типа D3DDEGREETYPE , определяющий степень для прямоугольного исправления.
Комментарии
На следующей схеме показаны параметры, определяющие исправление прямоугольника.
Каждая из вершин в буфере вершин отображается в виде черной точки. В этом случае буфер вершин содержит 20 вершин, 16 из которых находятся в прямоугольном патче. Шаг — это количество вершин в ширине буфера вершин, в данном случае пять. Смещение x к первой вершине называется StartIndexVertexWidth и в данном случае равно 1. Смещение y к первой вершине исправления называется StartIndexVertexHeight и в данном случае равно 0.
Чтобы отобразить поток отдельных прямоугольных патч (не мозаичных), необходимо интерпретировать геометрию как длинное узкое (1 x N) прямоугольное пятно. Структура D3DRECTPATCH_INFO для такой полосы (кубическая безье) будет создана следующим образом.
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.
Требования
Требование | Значение |
---|---|
Заголовок |
|
См. также раздел