上一章节介绍了VS2017下使用QCustomPlot画图插件的安装配置以及过程中所遇到的问题,今天来说一下如何为QCustomPlot开启OpenGL硬件加速渲染。
QCustomPlot使用OpenGL改善绘图性能
QCustomPlot采用了诸如自适应采样和文本对象缓存之类的各种技术,从而减少重新绘制所需的时间,在绘制简单的线条图形时,不管是否开启OpenGL硬件加速,对绘制的性能没有太大的影响,只有在绘制大面积的图形或填充复杂图形时,才能体现OpenGL的优势。
下面就让我们进入正题吧,如何在VS2017为QCustomPlot开启OpenGL:
1、首先需要在我们的项目中添加QT的OpenGL模块。
2、安装freeglut库
这里我选用的是freeglut库,也可以使用glut库,glut库已经很久没有更新,而freeglut库是glut的超集,支持glut所有的API,而且是跨平台的,下载freeglut库freeglut下载链接点这里,
下载完成解压文件,其中标有X64的为64位的,没标X64的是32位的,根据自己的项目选择即可,配置freeglut:
把解压后的freeglut文件中的\bin文件夹中的freeglut.dll拷贝到QT的安装目录的bin文件夹下,我的在D:\Qt\Qt5.12.3\5.12.3\msvc2017_64\bin
把解压后的freeglut文件中的\include文件夹中的GL文件夹拷贝到QT的安装目录的include文件夹下,
把解压后的freeglut文件夹中的\lib文件夹中的freeglut.lib文件拷贝到QT的安装目录的lib文件夹下。
经过上面的操作即把freeglut库添加好了。
3、项目配置,添加依赖库
右键【项目】-【属性】,在打开的弹框中选中链【接器】-【输入】,在【附加依赖项】中添加
freeglut.lib
Qt5OpenGL.lib
Qt5OpenGLd.lib
OpenGL32.lib
在【C/C++】-【预处理器】中添加 QCUSTOMPLOT_USE_OPENGL,如果不添加QCUSTOMPLOT_USE_OPENGL预处理在开启OpenGL时会不成功,提示下问题
经过以上的配置,下面就可以在项目中使用OpenGL了,首先在项目的启动类cpp中添加头文件
#include <GL/glut.h>
在启动类的main方法中添加glutInit(&argc, argv);初始化glut,然后在用到的QCustomPlot绘图的地方通过ui.customPlot->setOpenGl(true);开启QCustomPlot的OpenGL功能。通过ui.customPlot->openGl()可以查看OpenGL功能是否开启成功。
好了,就到这吧,能力有限,欢迎指正!