почему привязка GL_ELEMENT_ARRAY_BUFFER к 0 приводит к ошибке memmove?
У меня была ошибка, которая заняла у меня довольно много времени, чтобы исправить. Я продолжал получать EXC_BAD_ACCESS и ссылку на ошибку memmove без дальнейшего описания, пока не прокомментировал следующую строку:
[self loadShaders];
<code>glGenVertexArraysOES(1, &_vao); glBindVertexArrayOES(_vao); // Vertex Buffer 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)); // Index Buffer 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); ////////// COMMENTED THIS ONE ////////////// //glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,0);// //////////////////////////////////////////// glBindVertexArrayOES(0); </code>
Я думал, что привязка буфера к 0 означает отмену привязки, поэтому я действительно не могу понять, как это привело бы к сбою моего приложения.
Спасибо за информацию! Я просто не остаюсь с этим беспокойством ...
Мои структуры:
<code>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 }; </code>