Condividi tramite


Metodo IDirect3DDevice9::D rawTriPatch (d3d9helper.h)

Disegna una patch triangolare utilizzando i flussi attualmente impostati.

Sintassi

HRESULT DrawTriPatch(
  [in] UINT                   Handle,
  [in] const float            *pNumSegs,
  [in] const D3DTRIPATCH_INFO *pTriPatchInfo
);

Parametri

[in] Handle

Tipo: UINT

Gestire la patch triangolare da disegnare.

[in] pNumSegs

Tipo: const float*

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

[in] pTriPatchInfo

Tipo: const D3DTRIPATCH_INFO*

Puntatore a una struttura D3DTRIPATCH_INFO , che descrive la patch triangolare di ordine elevato 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 pTriPatchInfo e specificare un handle in modo che Direct3D possa acquisire e memorizzare nella cache le informazioni. Per disegnare in modo efficiente la patch, chiamare IDirect3DDevice9::D rawTriPatch con pTriPatchInfo impostato su NULL. 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 rawTriPatch con un handle invalida lo stesso handle memorizzato nella cache da una precedente chiamata IDirect3DDevice9::D rawRectPatch .

Per le patch dinamiche, i dati delle patch cambiano per ogni rendering della patch in modo che non sia 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 pTriPatchInfo su NULL.

Requisiti

   
Piattaforma di destinazione Windows
Intestazione d3d9helper.h (include D3D9.h)
Libreria D3D9.lib

Vedi anche

IDirect3DDevice9

Uso di primitive Higher-Order (Direct3D 9)