Rendu à partir d’une mémoire tampon de vertex (Direct3D 9)

Le rendu des données de vertex à partir d’une mémoire tampon de vertex nécessite quelques étapes. Tout d’abord, vous devez définir la source du flux en appelant la méthode IDirect3DDevice9::SetStreamSource , comme illustré dans l’exemple suivant.

d3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) );

Le premier paramètre de IDirect3DDevice9::SetStreamSource indique à Direct3D la source du flux de données de l’appareil. Le deuxième paramètre est la mémoire tampon de vertex à lier au flux de données. Le troisième paramètre est le décalage entre le début du flux et le début des données de vertex, en octets. Le quatrième paramètre est la foulée du composant, en octets. Dans l’exemple de code ci-dessus, la taille d’un CUSTOMVERTEX est utilisée pour la foulée du composant.

L’étape suivante consiste à informer Direct3D du nuanceur de vertex à utiliser en appelant la méthode IDirect3DDevice9::SetVertexShader . L’exemple de code suivant définit un code FVF pour le nuanceur de vertex. Cela informe Direct3D des types de sommets qu’il traite.

d3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );

Après avoir défini la source de flux et le nuanceur de vertex, toutes les méthodes de dessin utilisent la mémoire tampon de vertex. L’exemple de code ci-dessous montre comment afficher des sommets à partir d’une mémoire tampon de vertex avec la méthode IDirect3DDevice9::D rawPrimitive .

d3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 1 );

Le deuxième paramètre accepté par IDirect3DDevice9::D rawPrimitive est l’index du premier vecteur dans la mémoire tampon de vertex à charger.

Mémoires tampons de vertex

Rendu à partir de tampons de vertex et d’index (Direct3D 9)