fog*_*bit 10 c++ windows opengl
我正在研究一些图形应用程序,我得到了一个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 */
Run Code Online (Sandbox Code Playgroud)
glBegin/glEnd
在导致错误之前不会进行任何调用glPopAttrib()
.(我使用findstr commad来过滤日志).
该错误仅出现一次,在代码执行期间不再出现此类(或其他)错误.我有一种怀疑,我应该先调用一些函数glPushAttrib(GL_VIEWPORT_BIT)
或之前的东西.
有趣的问题。让我想到..
COLOR_BUFFER_BIT
可能发生的情况是,当从窗口系统获取 OpenGL 上下文时,与 相关的一些状态变量没有用正确的值进行初始化。当您执行 a 时glPushAttrib
,那些(可能)不正确的值被保存,当属性被弹出时,不正确的值被恢复 - 导致无效操作?这听起来符合逻辑吗?
归档时间: |
|
查看次数: |
870 次 |
最近记录: |