Condividi tramite


Metodo IDirect3DDevice9::D rawRectPatch (d3d9.h)

Disegna una patch rettangolare utilizzando i flussi attualmente impostati.

Sintassi

HRESULT DrawRectPatch(
  [in] UINT                    Handle,
  [in] const float             *pNumSegs,
  [in] const D3DRECTPATCH_INFO *pRectPatchInfo
);

Parametri

[in] Handle

Tipo: UINT

Handle per la patch rettangolare da disegnare.

[in] pNumSegs

Tipo: const float*

Puntatore a una matrice di quattro valori a virgola mobile che identificano il numero di segmenti in cui ogni bordo della patch rettangolo deve essere diviso in quando viene tassellato. Vedere D3DRECTPATCH_INFO.

[in] pRectPatchInfo

Tipo: const D3DRECTPATCH_INFO*

Puntatore a una struttura D3DRECTPATCH_INFO , che descrive la patch rettangolare da disegnare.

Valore restituito

Tipo: HRESULT

Se il metodo ha esito positivo, il valore restituito viene D3D_OK. Se il metodo ha esito negativo, il valore restituito può essere D3DERR_INVALIDCALL.

Commenti

Per le patch statiche: impostare il vertex shader, impostare i flussi appropriati, specificare le informazioni sulle patch nel parametro pRectPatchInfo e specificare un handle in modo che Direct3D possa acquisire e memorizzare nella cache le informazioni. Chiamare IDirect3DDevice9::D rawRectPatch successivamente con pRectPatchInfo impostato su NULL per disegnare in modo efficiente la patch. Quando si disegna una patch memorizzata nella cache, i flussi attualmente impostati vengono ignorati. Eseguire l'override dei pNumSegs memorizzati nella cache specificando un nuovo valore per pNumSegs. Quando si esegue il rendering di una patch memorizzata nella cache, è necessario impostare lo stesso vertex shader impostato durante l'acquisizione.

La chiamata a IDirect3DDevice9::D rawRectPatch con un handle invalida lo stesso handle memorizzato nella cache da una precedente chiamata IDirect3DDevice9::D rawTriPatch .

Per le patch dinamiche, i dati delle patch cambiano per ogni rendering della patch, quindi non è efficiente memorizzare nella cache le informazioni. L'applicazione può trasmettere questo valore a Direct3D impostando Handle su 0. In questo caso, Direct3D disegna la patch usando i flussi attualmente impostati e i valori pNumSegs e non memorizza nella cache alcuna informazione. Non è valido impostare contemporaneamente Handle su 0 e pRectPatchInfo su NULL.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione d3d9.h (include D3D9.h)
Libreria D3D9.lib

Vedi anche

IDirect3DDevice9

IDirect3DDevice9::D eletePatch

Uso di primitive Higher-Order (Direct3D 9)