Рисование VBO с помощью glDrawArrays работает в OpenGL 2.1, но не в OpenGL 3.x

Ядро кода (отображается красный прямоугольник):

//bind program, set uniforms, bind vbo
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0,0);
glDrawArrays(GL_TRIANGLES, 0, 6);
glDisableVertexAttribArray(0);
//unbind vbo, unbind program

Когда я переключаю контекст на OpenGL 3.x, этот код перестает работать (я вижу только цвет фона) , но когда я инициализирую VAO таким же образом, как и в приведенном выше коде, а затем привязываю VAO и вызываю glDrawArrays, он работает.

В чем может быть проблема? Как я могу рисовать VBO без использования VAO?

(шейдеры действительно просты, vs только множит матрицы, а ps выводит красный цвет)

8
задан chris 20 June 2011 в 16:00
поделиться