作者:朱金灿
来源:clever101的专栏
错误描述
调用glCreateShader函数出现崩溃,代码如下:
// Create and compile vertex shader
unsigned int vertex_shader = glCreateShader(GL_VERTEX_SHADER);
如下图:
分析并解决
应该是初始化失败了,如果你使用一个扩展加载器程序库(extension loader library)来访问现代OpenGL,然后当需要初始化它时,加载器需要一个当前的上下文来加载。在调用glCreateShader先调用glewInit函数,代码如下:
GLenum glew_err = glewInit();
if (glew_err != GLEW_OK)
{
throw std::runtime_error(std::string("Error initializing GLEW, error: ") + (const char*)glewGetErrorString(glew_err));
return;
}
// Create and compile vertex shader
unsigned int vertex_shader = glCreateShader(GL_VERTEX_SHADER);