我写下面的代码
glewInit();
glGenBuffers(2,buffers);
在initializeGL()之前调用此代码。它会导致访问冲突错误。但是当我把它放入时 函数glewInit()在initializeGl()中。 glGenBuffers()工作正常。
答案 0 :(得分:0)
glewInit()
需要绑定有效的OpenGL上下文并准备好运行。
glGenBuffers
(以及其他函数)由glewInit()
初始化。如果GLEW无法成功初始化,例如因为周围没有有效的OpenGL上下文,那么glGenBuffers
包含一个NULL指针,任何试图使用它的程序都会崩溃程序。
在Qt中,只有在调用initializeGL
时才会提供OpenGL上下文(实际上也只有以…GL
结尾的其他成员方法,在上下文中可能没有绑定)。