~~~~~~~折腾了一周,吐糟一下Qt 的OpenGL版本~~~~~~~~
这个星期开始搭建Qt下的OpenGL环境,后来发现OpenGL在3.0后有很大的变动,
所有打算学3.0以后的版本.
看了Qt自带的Demo,在网上找了点例子,版本真是....,一会儿2.0里面夹杂着3.0的函数,一会儿3.0里面调用已经弃用的函数。各位可以看看手头上的代码有木有这个函数glLoadIdentity。这个函数在3.0后就弃用了,我查看了最新的鬼火引擎果然里面都没有用这个函数了。
我想学习Opengl不想用已经弃用函数(本人对代码有点洁癖),所以找了一些最新的书籍(OpenGL-Shading-Language-Cookbook,OpenGL-Development-Cookbook)这些书上都是讲的3.0以后的函数不带有弃用的API。但是基于GLEW的,如果我在Opengl下包含glew头文件,会跟opengl自带的一些头文件造成冲突。
所以还是只能用opengl自己的函数和类来搭建环境
class CGraphPage : public QGLWidget,protected QOpenGLFunctions我的类声明,结果
glGenVertexArrays,glBindVertexArray这样的函数没有定义,查了一大堆资料结果发现5.1后才用类似的QOpenGLFunctions_3_0_Core关于版本的纯正类。
class CGraphPage : public QGLWidget,protected QOpenGLFunctions_3_0_Core
void CGraphPage::initializeGL()
{
initializeOpenGLFunctions();
glClearColor(0,0.5,1,1);
}