为什么函数glewInit()应该在initializeGL()中写入

时间:2014-09-25 03:07:57

标签: qt opengl glew

我写下面的代码

glewInit();
glGenBuffers(2,buffers);

在initializeGL()之前调用此代码。它会导致访问冲突错误。但是当我把它放入时 函数glewInit()在initializeGl()中。 glGenBuffers()工作正常。

1 个答案:

答案 0 :(得分:0)

glewInit()需要绑定有效的OpenGL上下文并准备好运行。

glGenBuffers(以及其他函数)由glewInit()初始化。如果GLEW无法成功初始化,例如因为周围没有有效的OpenGL上下文,那么glGenBuffers包含一个NULL指针,任何试图使用它的程序都会崩溃程序。

在Qt中,只有在调用initializeGL时才会提供OpenGL上下文(实际上也只有以…GL结尾的其他成员方法,在上下文中可能没有绑定)。

相关问题