I have two buffers I created like this:
GLuint vao;
GLuint vbo[2];
glGenVertexArrays(1, &vao);
glBindVertexArray(vao);
glGenBuffers(2, vbo);
// 1
glBindBuffer(GL_ARRAY_BUFFER, vbo[0]);
glBufferData(GL_ARRAY_BUFFER, sizeof(triangle), triangle, GL_STATIC_DRAW);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(GL_FLOAT), (void*)0);
glEnableVertexAttribArray(0);
// 2
glBindBuffer(GL_ARRAY_BUFFER, vbo[1]);
glBufferData(GL_ARRAY_BUFFER, sizeof(rectangle), rectangle, GL_STATIC_DRAW);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(GL_FLOAT), (void*)0);
glEnableVertexAttribArray(0);
The first one has to create a triangle and the second one a rectangle.
So I am calling glDrawArrays()
in the rendering loop like this:
glBindBuffer(GL_ARRAY_BUFFER, vbo[0]);
glDrawArrays(GL_POLYGON, 0, 3); // Triangle
glBindBuffer(GL_ARRAY_BUFFER, vbo[1]);
glDrawArrays(GL_POLYGON, 0, 4); // Rectangle
So why doesn't this work? (PS: I know GL_TRIANGLES is used nowdays, but for this project I have to use GL_POLYGON)