1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
//////////////////////
// Bind
// définition de la taille mémoire pour les vertices
glBindBuffer(GL_ARRAY_BUFFER, m_vboIds[ENUM_InfosVBO::VERTICES]);
glBufferData(GL_ARRAY_BUFFER, m_vertices.size() * sizeof(vector3f), &m_vertices[0], GL_DYNAMIC_READ);
// définition de la taille mémoire pour la texture du background (SpriteSheet)
glBindBuffer(GL_ARRAY_BUFFER, m_vboIds[ENUM_InfosVBO::TEXTURE_0]);
glBufferData(GL_ARRAY_BUFFER, m_textures.size() * sizeof(vector2f), &m_textures[0], GL_STREAM_DRAW);
// définition de la taille mémoire pour les index
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_vboIds[ENUM_InfosVBO::INDICES]);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, m_indices.size() * sizeof(unsigned int), &m_indices[0], GL_STREAM_DRAW);
// définition de la taille mémoire pour la texture de l'icon (SpriteSheet)
glBindBuffer(GL_ARRAY_BUFFER, m_vbo->getVboIdsById(C_GLVbo::ENUM_InfosVBO::TEXTURE_1));
glBufferData(GL_ARRAY_BUFFER, m_coordsIcon.size() * sizeof(vector2f), &m_coordsIcon[0], GL_STREAM_DRAW);
//////////////////////
// UnBind
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
glBindTexture(GL_TEXTURE_2D, 0);
//////////////////////
// Draw
// vertices
glEnableClientState(GL_VERTEX_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER, m_vboIds[ENUM_InfosVBO::VERTICES]);
glVertexPointer(3, GL_FLOAT, 0, 0);
// Texture background
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, m_idsTexture[0]);
glBindBuffer(GL_ARRAY_BUFFER, m_vboIds[ENUM_InfosVBO::TEXTURE_0]);
glTexCoordPointer(2, GL_FLOAT, 0, 0);
glEnable(GL_TEXTURE_2D);
// Texture icon
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER, m_vbo->getVboIdsById(C_GLVbo::ENUM_InfosVBO::TEXTURE_1));
glTexCoordPointer(2, GL_FLOAT, 0, 0);
glEnable(GL_TEXTURE_2D);
// Dessine
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_vbo->getVboIdsById(C_GLVbo::ENUM_InfosVBO::INDICES));
glDrawElements(GL_QUADS, m_vbo->getIndices().size(), GL_UNSIGNED_INT, 0);
//////////////////////
// End Dranw
// End icon
glBindTexture(GL_TEXTURE_2D, 0);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
// End Vertex
glDisableClientState(GL_VERTEX_ARRAY);
// End Texture Background
glBindTexture(GL_TEXTURE_2D, 0);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisable(GL_TEXTURE_2D);
// End Buffer
glBindBuffer(GL_ARRAY_BUFFER, 0); |
Partager