J'avais un bogue qui m'a pris beaucoup de temps à résoudre. J'ai continué à obtenir EXC_BAD_ACCESS et une référence à une erreur de memmove sans aucune description supplémentaire jusqu'à ce que je commente la ligne suivante :
[self loadShaders];
glGenVertexArraysOES(1, &_vao);
glBindVertexArrayOES(_vao);
// Tampon de vertex
glGenBuffers(1, &_vertexBuffer);
glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(Vertices), Vertices, GL_STATIC_DRAW);
glEnableVertexAttribArray(ATTRIB_VERTEX);
glVertexAttribPointer(ATTRIB_VERTEX, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), 0);
glEnableVertexAttribArray(ATTRIB_TEXTURE);
glVertexAttribPointer(ATTRIB_TEXTURE, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex), (GLvoid*) (sizeof(float) * 7));
// Tampon d'index
glGenBuffers(1, &_indexBuffer);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _indexBuffer);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(Indices), Indices, GL_STATIC_DRAW);
glBindBuffer(GL_ARRAY_BUFFER,0);
////////// CETTE LIGNE A ÉTÉ COMMENTÉE //////////////
//glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,0); //
//////////////////////////////////////////////////
glBindVertexArrayOES(0);
Je pensais que lier un tampon à 0 signifiait le délier, donc je ne comprends vraiment pas comment cela aurait pu faire planter mon application.
Merci pour l'information! Je ne reste juste pas avec cette préoccupation...
Mes structures:
const Vertex Vertices[4] = {
{{0.75, -1, 0}, {1, 0, 0, 1}, {0.125, 0.833496}},
{{0.75, 1, 0}, {0, 1, 0, 1}, {0.125, 1}},
{{-0.75, 1, 0}, {0, 0, 1, 1}, {0, 1}},
{{-0.75, -1, 0}, {0, 0, 0, 1}, {0, 0.833496}},
};
const GLushort Indices[6] =
{
0, 1, 2,
2, 3, 0
};