【发布时间】:2019-05-29 08:48:51
【问题描述】:
我目前正在连接一个 OpenGL 应用程序并收到 GL_INVALID_OPERATION。整个 GL 分散在几个文件中,很难从中创建一个示例,但我使用 apitrace 创建了一个 OpenGL 跟踪。这是造成错误的一大块:
glMatrixMode(mode = GL_PROJECTION)
glLoadIdentity()
glViewport(x = 0, y = 0, width = 1190, height = 746)
glOrtho(left = 0, right = 1190, bottom = 0, top = 746, zNear = 0, zFar = 128)
glBegin(mode = GL_QUADS)
glColor4f(red = 0.5, green = 0.5, blue = 0.5, alpha = 1)
glVertex3f(x = 1190, y = 746, z = 0)
glColor4f(red = 0.5, green = 0.5, blue = 0.5, alpha = 1)
glVertex3f(x = 0, y = 746, z = 0)
glColor4f(red = 0.5, green = 0.5, blue = 0.5, alpha = 1)
glVertex3f(x = 0, y = 100, z = 0)
glColor4f(red = 0.5, green = 0.5, blue = 0.5, alpha = 1)
glVertex3f(x = 1190, y = 100, z = 0)
glEnd()
glGetError() = GL_INVALID_OPERATION
有人对此有任何想法吗?
【问题讨论】:
-
如果 glGetError() 在此块之前和 glBegin() 之后添加以确定错误是否来自其他地方以及是否支持
glBegin/glEnd可能是最好的。 -
好吧,
apitrace可以使用调试上下文重播文件(iirc,qapitrace甚至默认情况下也是如此),因此错误的来源和原因都应该很容易发现.
标签: c opengl opengl-compat