今天在实现《OpenGL编程指南》第三章的例子时,出现在调用glDrawElements
时崩溃的问题,试验后,发现原来是没有绑定EBO。
出现崩溃时的例子源码如下:
void init()
{
...
glGenVertexArrays(1, &g_VAO);
glBindVertexArray(g_VAO);
glGenBuffers(1, &g_VBO);
glBindBuffer(GL_ARRAY_BUFFER, g_VBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertex_positions) + sizeof(vertex_colors), NULL, GL_STATIC_DRAW);
glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(vertex_positions), vertex_positions);
glBufferSubData(GL_ARRAY_BUFFER, sizeof(vertex_positions), sizeof(vertex_colors), vertex_colors);
...
}