本文目的是记录一下自己搜索相关机制的结果
qt5.7实现opengl机制主要包含两类
一种是提供QtGui实现,这个库主要是通过QWindow结合qt封装的opengl库进行实现,官方有案例,一个旋转的三角形,使用opengl es2.0,而且这也是qml的底层实现方式。另一种是通过QWidget中的qopenglwidget类实现的,这里保留了早期的qopengl方法,即对应于opengl2.0版本的封装,也保留了新的方法,在opengl2.0版本之后,传统固定管线被舍弃,从opengl3.0 开始,使用的主流方法都是可编程管线,即对应于着色器的编程,实现更灵活,同时增加了一定的学习曲线。
qt5.7 的opengl功能
QOpenGLFunctions 里面包含opengl es2.0的内容,同时他也提供了opengl es3.0的API,对opengl的支持也到最新的4.3版本,可以从QtGui类库中看到,根据实际需求使用opengl的不同版本。需要说明的是qt只是针对opengl函数进行了封装,对本身的性能并没有太大影响,还是由版本和具体实现决定。
qt使用opengl例子
1 直接使用opengl窗口,这里使用可以参考官方三角形demo,需要自己写顶点着色器和片段着色器,下面时官方使用的一个例子,可以看到是通过继承opengl函数的方式覆写绘图函数进行使用的。
#include <QtGui/QWind