D3DRECTPATCH_INFO struttura

Descrive una patch ad alto ordine rettangolare.

Sintassi

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

Members

StartVertexOffsetWidth

Tipo: UINT

A partire dalla larghezza dell'offset dei vertici, in numero di vertici.

StartVertexOffsetHeight

Tipo: UINT

Avvio dell'altezza dell'offset dei vertici, in numero di vertici.

Width

Tipo: UINT

Larghezza di ogni vertice, in numero di vertici.

Altezza

Tipo: UINT

Altezza di ogni vertice, in numero di vertici.

Passo

Tipo: UINT

Larghezza della matrice vertice bidimensionale immaginaria, che occupa lo stesso spazio del buffer del vertice. Per un esempio, vedere il diagramma seguente.

Basis

Tipo: D3DBASISTYPE

Membro del tipo enumerato D3DBASISTYPE , definendo il tipo di base per la patch ad ordine elevato rettangolare.

Valore Ordine supportato Larghezza e altezza
D3DBASIS_BEZIER Lineare, cubico e quintico Width = height = (DWORD)order + 1
D3DBASIS_BSPLINE Lineare, cubico e quintico Width = height > (DWORD)order
D3DBASIS_INTERPOLATE Cubi Width = height > (DWORD)order

 

Gradi

Tipo: D3DDEGREETYPE

Membro del tipo enumerato D3DDEGREETYPE , definendo il grado per la patch rettangolare.

Commenti

Il diagramma seguente identifica i parametri che specificano una patch rettangolo.

diagramma di una patch ad alto ordine rettangolare e dei parametri che lo specificano

Ognuno dei vertici nel buffer del vertice viene visualizzato come punto nero. In questo caso, il buffer del vertice ha 20 vertici in esso, 16 di cui si trovano nella patch rettangolo. Lo stride è il numero di vertici nella larghezza del buffer del vertice, in questo caso cinque. L'offset x al primo vertice viene chiamato StartIndexVertexWidth ed è in questo caso 1. L'offset y al primo vertice della patch è denominato StartIndexVertexHeight ed è in questo caso 0.

Per eseguire il rendering di un flusso di singole patch rettangolari (non mosaico), è necessario interpretare la geometria come una patch rettangolare lunga (1 x N). La D3DRECTPATCH_INFO struttura per tale striscia (cubica Bézier) verrà configurata in modo seguente.

    
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.

Requisiti

Requisito Valore
Intestazione
D3D9Types.h

Vedi anche

Strutture Direct3D

DrawRectPatch

D3DXTessellateRectPatch