Я работаю над графическим приложением и получил GL_INVALID_OPERATION
после glPopAttrib()
.Прогнозирование ответа "Кажется, вы звоните 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 запятую для фильтрации журнала).
Ошибка появляется только один раз, такая (или другие) ошибка не возникает снова во время выполнения кода.У меня есть подозрение, что я должен вызвать какую-то функцию до glPushAttrib(GL_VIEWPORT_BIT)
или еще чего-нибудь.