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 |