我正在研究一些圖形應用程序,並在glPopAttrib()
之後得到GL_INVALID_OPERATION
。預測答案「看起來您在glBegin/glEnd
區塊內撥打glPopAttrib()
」請參閱我使用GLIntercept製作的日誌。glPopAttrib&GL_INVALID_OPERATION
/* 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
召喚錯誤causeing glPopAttrib()
之前進行。 (我用findstr commad來過濾日誌)。
錯誤只出現一次,在代碼執行過程中再次出現錯誤(或其他錯誤)。我懷疑我應該在glPushAttrib(GL_VIEWPORT_BIT)
之前撥打一些功能。
這意味着在調用glPopAttrib之前發生錯誤 – 2011-12-14 14:15:24