OpenGl:open graphices library ,看着像是一个图形库,其实 opengl应该是一个标准,用于 渲染2D 3D立体等复杂的API接口。常用 CAD 虚拟现实 游戏 等,opengl你从官网找不到对应的链接库或者源码,因为 严格来说,他是个标准,声明了一系列 C类型的函数接口,像是glbegin()、gbcolor()等,但是只有声明 没有实现。那他怎么实现功能,怎么用呢?其实,opengl设计时,就是侧重输出,只管输出,没有窗口系统之类的东西,也没有输入设备之类的东西,像是麦克风、打印机、鼠标等。openGl规范了接口的规范,只是输出,具体拿到这个输出该怎么工作,是有开发者自行决定,比如屏幕显示画面是 显卡驱动 拿到输出后 翻译后经过自己的处理 最后显示画面,显卡驱动为什么会支持opengl呢?因为大多opengl开发者都是 显卡 的生产商。opengl的跨语言跨平台性也是吸引越来越多平台支持的原因。
因为OpenGL只负责输出,实际使用的时候 则需要其他库辅助,有很多针对OpenGL的库的封装,有针对 核心API封装的核心库(gl)、窗口的(库glx、agl、wgl)、工具库(glut、freeglut)、辅助库(aux)等。这些库都是 扩展库,也都是 众多 硬件厂商为了实现 更好的利用 OpenGL的扩展机制 开发的。
前面说为了使用OpenGL绘制,加速提高速度,QT、QCustomplot都包括了opengl的绘制支持,但是需要工具,这里选择的工具是freeglut,freeglut是glut的扩展,是其超集,支持glut所有的api,glut也是很老的版本,不再维护更新,freeglut更加稳定可靠。
Windows下载:Freeglut下载地址
bin 和lib里面是dll和lib, include里的GL文件夹是头文件,x64文件夹里的是64位库文件 ,文件夹外的是32位文件,根据项目需要选择,后面就是正常 加入库的流程
环境:vs 2017 + QT5.12
1)QT 选择模块 Opengl 和OpenGL的插件支持
2)项目->属性->c/c++ 常规-》附加库目录里面添加 freeglut 里的include里的GL文件夹路径
3)
4)
安装完后 ,包含头文件后 在main函数中 调用 初始化即可使用
QcustomPot开启 opengl绘制加速 并判断是否开启成功。
customPlot->setOpenGl(true)
qDebug()<<"opengl open"<<customPlot->openGl()