我遇到了一个非常奇怪的OpenGL错误,其中调用glCreateShader
多次,然后在稍后我尝试调用它失败,返回0.调用{{1}之后立即返回0,表示没有错误。搜索周围,我看到questions about glCreateShader
never working,这里不是这种情况,有些人提到如果在glGetError
和glBegin
之间调用它可以返回0,我没有使用。环顾四周,我在调用堆栈中看不到任何明显的东西,这些东西应该表明我对OpenGL做了一些奇怪的事情。
glEnd
返回" 4.3.0 - 构建10.18.10.3977",以防有帮助。
任何人都知道这里发生了什么?
答案 0 :(得分:6)
没有OpenGL上下文绑定到调用线程。您没有指定您使用的操作系统,但您可以在Windows上使用wglGetCurrentContext
,在X11(最有可能是Linux)上使用glXGetCurrentContext
来查询当前绑定的上下文(或根本不绑定)。
如果任一函数返回NULL
,那么就没有OpenGL上下文,你会得到你描述的行为。