Compartilhar via


estrutura D3DRECTPATCH_INFO

Descreve um patch retangular de alta ordem.

Sintaxe

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

Membros

StartVertexOffsetWidth

Tipo: UINT

Largura de deslocamento de vértice inicial, em número de vértices.

StartVertexOffsetHeight

Tipo: UINT

Iniciando a altura de deslocamento de vértice, em número de vértices.

Largura

Tipo: UINT

Largura de cada vértice, em número de vértices.

Altura

Tipo: UINT

Altura de cada vértice, em número de vértices.

Passo

Tipo: UINT

Largura da matriz de vértice bidimensional imaginária, que ocupa o mesmo espaço que o buffer de vértice. Para obter um exemplo, consulte o diagrama abaixo.

Base

Tipo: D3DBASISTYPE

Membro do tipo enumerado D3DBASISTYPE , definindo o tipo de base para o patch de alta ordem retangular.

Valor Pedido com suporte Largura e altura
D3DBASIS_BEZIER Linear, cúbico e quintic Width = height = (DWORD)order + 1
D3DBASIS_BSPLINE Linear, cúbico e quintic Width = height > (DWORD)order
D3DBASIS_INTERPOLATE Cúbicos Width = height > (DWORD)order

 

Grau

Tipo: D3DDEGREETYPE

Membro do tipo enumerado D3DDEGREETYPE , definindo o grau para o patch retangular.

Comentários

O diagrama a seguir identifica os parâmetros que especificam um patch de retângulo.

diagrama de um patch retangular de alta ordem e os parâmetros que o especificam

Cada um dos vértices no buffer de vértice é mostrado como um ponto preto. Nesse caso, o buffer de vértice tem 20 vértices, dos quais 16 estão no patch do retângulo. O passo a passo é o número de vértices na largura do buffer de vértice, neste caso, cinco. O deslocamento x para o primeiro vértice é chamado de StartIndexVertexWidth e, nesse caso, é 1. O deslocamento y para o primeiro vértice de patch é chamado de StartIndexVertexHeight e, nesse caso, é 0.

Para renderizar um fluxo de patches retangulares individuais (não mosaico), você deve interpretar sua geometria como um patch retangular longo estreito (1 x N). A estrutura D3DRECTPATCH_INFO para tal faixa (Bézier cúbica) seria configurada da maneira a seguir.

    
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.

Requisitos

Requisito Valor
parâmetro
D3D9Types.h

Confira também

Estruturas Direct3D

DrawRectPatch

D3DXTessellateRectPatch