2014-12-23 7 views
-1

Я пытаюсь отобразить некоторые объекты в OpenGL, но даже если я звоню glDrawElements с правильным режимом, он все равно дает мне GL_INVALID_ENUM. Это журнал вызовов, зафиксированный CodeXL AMD, от установки до рендеринга:glDraw * return GL_INVALID_ENUM

glBindVertexArray(1) 

... creating shaders/programs and getting uniform locations ... 

# the vertex buffer 
glGenBuffers(1, 0x008A945C) 
glBindBuffer(GL_ARRAY_BUFFER, 1) 
glBufferData(GL_ARRAY_BUFFER, 96, 0x008A94A0, GL_STATIC_DRAW) 

# the element index buffer 
glGenBuffers(1, 0x008A9460) 
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 2) 
glBufferData(GL_ELEMENT_ARRAY_BUFFER, 96, 0x008A9508, GL_STATIC_DRAW) 

glClearColor(0.12, 0.63999999, 0.55000001, 1) 
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) 


glEnableVertexAttribArray(0) 
glUseProgram(1) 

glUniformMatrix4fv(0, 1, FALSE, ... MVP Matrix ...) 
glBindBuffer(GL_ARRAY_BUFFER, 1) 
glVertexAttribPointer(0, 3, GL_FLOAT, FALSE, 0, 0x00000000) 
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 2) 


glDrawElements(GL_QUADS, 24, GL_UNSIGNED_INT, 0x00000000) # GL_INVALID_ENUM here <---- 


glUseProgram(0) 
glDisableVertexAttribArray(0) 
wglSwapBuffers(0x09011214) 

Я уже пробовал замены glDrawElements на glDrawArrays(GL_QUADS, 0, 4) (с нужными параметрами) и по-прежнему дает мне ту же ошибку. Что может быть причиной этого? CodeXL кажется довольно уверенным, что ошибка возникает точно при вызове розыгрыша, а не раньше.

+2

, потому что ваша версия OpenGL не поддерживает GL_QUADS, изменения в треугольники –

+0

Как вы создавая контекст? Использование основного профиля? –

+0

Да, это был основной профиль. –

ответ

5

Это потому, что GL_QUADS устарел в OpenGL 3, см. Документацию для glDrawArrays.

Вы можете:

  1. тиражная треугольники (рекомендуется).
  2. Создайте контекст opengl, используя compatiblity profile. (Как это сделать точно зависит от того, что вы используете, чтобы создать контекст, в первую очередь, КДС, glfw и т.д.)
+0

Действительно. https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElements.xml – djgandy

Смежные вопросы