структура 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.

Требования

Требование Значение
Заголовок
D3D9Types.h

См. также раздел

Структуры Direct3D

DrawRectPatch

D3DXTessellateRectPatch