glew是OpenGL的一个扩展库,因为OpenGL是开源标准不同厂家的显卡有自己的实现,所以如果要进行跨平台的使用需要从供应商提供的接口中进行查找,找到需要的函数的指针进行调用,非常繁琐,利用glew可以对这个步骤进行封装,这样就可以直接使用函数名进行调用。
c++中使用这个库的时候一定要在OpenGL库之前进行包含,否则会报错,在进行glew初始化得时候也要注意初始化得位置,如果初始化得位置不对会无法进行显示,一般都是在shader和绘图之前进行初始化。使用qt的时候要在QOpenGLWidget之前包含。
在QT中使用glew时,glewInit这个函数必须在initializeGL中,或者类似initializeGL的函数中的最顶层进行调用,因为glewInit在除此之外的位置不起作用,调用后也会提示报错。原因应该是这个函数必须是在存在OpenGL的环境中调用,如果OpenGL未被创建,调用glewInit不会起作用。