Я работаю над некоторым графическим приложением, а после glPopAttrib()
получил GL_INVALID_OPERATION
. Предсказание ответа "Кажется, вы вызываете glPopAttrib()
в блоке glBegin/glEnd
", пожалуйста, посмотрите этот журнал, который я сделал с помощью GLIntercept.
/* tons of wglGetProcAddress* */
wglGetProcAddress("glEndOcclusionQueryNV")=087C9B10
wglGetProcAddress("glBeginTransformFeedbackN...")=087C9ED0
wglGetProcAddress("glEndTransformFeedbackNV")=087C9F00
glPushAttrib(GL_VIEWPORT_BIT)
glPushAttrib(GL_COLOR_BUFFER_BIT)
glPushAttrib(GL_COLOR_BUFFER_BIT)
glPopAttrib()
glPopAttrib() glGetError() = GL_INVALID_OPERATION # <---- THIS
glPopAttrib()
glPushAttrib(GL_VIEWPORT_BIT)
glPushAttrib(GL_COLOR_BUFFER_BIT)
glPushAttrib(GL_COLOR_BUFFER_BIT)
glPopAttrib()
glPushAttrib(GL_POINT_BIT | GL_LINE_BIT | GL_COLOR_BUFFER_BIT)
glPopAttrib()
glPopAttrib()
glPopAttrib()
glPushAttrib(GL_VIEWPORT_BIT)
glPushAttrib(GL_COLOR_BUFFER_BIT)
glPushAttrib(GL_COLOR_BUFFER_BIT)
glPopAttrib()
glPopAttrib()
glPopAttrib()
/* and so on */
Нет glBegin/glEnd
вызывается перед ошибкой glPopAttrib()
. (Я использовал findstr commad для фильтрации журнала).
Ошибка появляется только один раз, во время выполнения кода не появляется такая (или другая) ошибка. У меня есть подозрение, что я должен вызвать некоторую функцию до glPushAttrib(GL_VIEWPORT_BIT)
или что-то еще.