4 Initialiser les VAO

En fait tout se passe comme avec les GLLists :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
glGenVertexArrays(1, &vaoID);
	// Verrouillage du VAO
	glBindVertexArray(vaoID);
		// Verrouillage du VBO
		glBindBuffer(GL_ARRAY_BUFFER, vboID);
			// Accès aux vertices dans la mémoire vidéo
			glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(0));
			glEnableVertexAttribArray(0);
			// Accès aux couleurs dans la mémoire vidéo
			glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET(m_tailleVerticesBytes));
			glEnableVertexAttribArray(1);
		// Déverrouillage du VBO
		glBindBuffer(GL_ARRAY_BUFFER, 0);
	// Déverrouillage du VAO
	glBindVertexArray(0);

Où, vaoID est un GLuint. Et vboID est un identifiant de VBO bien initialise comme vous l'avez vu dans le chapitre précédent.

Petit détail, je vous conseille d'indenter le code qui se trouve dans le VAO tout comme les shaders et les VBO.

Attention cependant, n'appelez pas d'autres fonctions à l'intérieur pour tenter de les enregistrer sur la carte graphique. Il n'y a que celles qui concernent les tableaux Vertex Attrib qui le peuvent, le reste ne fonctionnera pas.