~~~~~~~折腾了一周,吐糟一下Qt 的OpenGL版本~~~~~~~~

fkeujjpdc 2013-10-25 10:56:48
这个星期开始搭建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关于版本的纯正类。
昨晚回去我下载了Qt5.1今天早上特别兴奋的装上打算搞个Demo出来。结果又是一个悲剧,我的头文件
class CGraphPage : public QGLWidget,protected QOpenGLFunctions_3_0_Core


void CGraphPage::initializeGL()
{
initializeOpenGLFunctions();
glClearColor(0,0.5,1,1);
}

就崩溃,难道是不兼容,我试了一下只要调用gl函数就崩溃。

哎,这个烂东西搞得我对未来都失去信心了,各位经常用opengl的大神你们在版本上是怎么处理的,这个星期来什么都没搞成真实烦死了,今天就放假了,一点喜悦的心情都没有。
...全文
7056 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
huimesu 2016-06-19
  • 打赏
  • 举报
回复 1
include qopenglextrafunctions
lunnersword 2014-03-31
  • 打赏
  • 举报
回复
glGenVertexArrays,glBindVertexArray 这样的函数没有定义, 我也遇到了这 个问题, 求楼主指点
lunnersword 2014-03-31
  • 打赏
  • 举报
回复
楼主代码具体怎么加?
sdaujiaojiao 2013-10-28
  • 打赏
  • 举报
回复
帮了我大忙,感谢你楼主
fkeujjpdc 2013-10-28
  • 打赏
  • 举报
回复
恩,十分感谢你的回答,昨天看橙宝书中无意想到了解决方案。只要加上这段代码
 QGLFormat format;
  format.setVersion(3,3);
  format.setProfile(QGLFormat::CoreProfile);
  setFormat(format);
彩阳 2013-10-25
  • 打赏
  • 举报
回复
看了你的几个提问,估计你的显卡由于比较老或者驱动没有安装导致无法解析OpenGL3.0+函数的地址。Windows的话下载360驱动大师给你安装一下驱动程序,Linux的话看看bumblebee驱动能不能帮助你。

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧