Metodo IDirect3DDevice9::D rawRectPatch (d3d9helper.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 | d3d9helper.h (include D3D9.h) |
Libreria | D3D9.lib |