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 requiert quelques étapes. Tout d’abord, vous devez définir la source du flux en appelant la méthode IDirect3DDevice9 :: SetStreamSource , comme indiqué 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 du vertex, en octets. Le quatrième paramètre correspond au Stride du composant, en octets. Dans l’exemple de code ci-dessus, la taille d’un CUSTOMVERTEX est utilisée pour le Stride du composant.
L’étape suivante consiste à informer Direct3D du nuanceur de sommets à utiliser en appelant la méthode IDirect3DDevice9 :: SetVertexShader . L’exemple de code suivant définit un code de Commission sur le prix final pour le nuanceur de sommets. Cela informe Direct3D des types de vertex qu’il traite.
d3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
Après la définition de la source de flux et du nuanceur de sommets, toute méthode de dessin utilisera la mémoire tampon de vertex. L’exemple de code ci-dessous montre comment restituer des vertex à 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 que IDirect3DDevice9 ::D rawprimitive accepte est l’index du premier vecteur dans la mémoire tampon de vertex à charger.