什么可以导致glCreateShader在某些点返回0?

时间:2015-07-14 20:33:41

标签: opengl

我遇到了一个非常奇怪的OpenGL错误,其中调用glCreateShader多次,然后在稍后我尝试调用它失败,返回0.调用{{1}之后立即返回0,表示没有错误。搜索周围,我看到questions about glCreateShader never working,这里不是这种情况,有些人提到如果在glGetErrorglBegin之间调用它可以返回0,我没有使用。环顾四周,我在调用堆栈中看不到任何明显的东西,这些东西应该表明我对OpenGL做了一些奇怪的事情。

glEnd返回" 4.3.0 - 构建10.18.10.3977",以防有帮助。

任何人都知道这里发生了什么?

1 个答案:

答案 0 :(得分:6)

没有OpenGL上下文绑定到调用线程。您没有指定您使用的操作系统,但您可以在Windows上使用wglGetCurrentContext,在X11(最有可能是Linux)上使用glXGetCurrentContext来查询当前绑定的上下文(或根本不绑定)。

如果任一函数返回NULL,那么就没有OpenGL上下文,你会得到你描述的行为。