QT windows配置 freeglut
qcustomplot支持opengl绘制,然后我们开启qcustomplot的opengl。不过需要开启QT的opengl模块,同时需要安装glut库,由于GLUT的作者已经很久没更新了(最后更新于2001年!)所以其他人另外做了一个接口兼容GLUT的freeglut库,开源而且一直在维护中。freeglut是glut的超集,支持glut所有的api,跨平台(MS-Win,Linux,Mac OS均支持),并且有长期维护,十分可靠。所以我们继续修改代码让其支持opengl能够利用显卡加速的功能。
Windows 下安装
-
需要glut库的请下载 glut-3.7.6-bin.zip (GLUT for Win32 dll, lib and header file )(已经十几年没更新过了所以就是这个版本了!)
下载地址:
链接: glut库下载链接 -
freeglut库里面有两个版本,都包含32和64位的,根据Qt的配置自己选择:
下载地址:
链接: freeglut库下载链接
Visual Studio:freeglut 3.0.0 MSVC Package
MinGW :freeglut 3.0.0 MinGW Package
库文件说明
我下载的是MSVC版本的freeglut库,解压后文件如下:
因为我的环境是QT5.14.2 MSVC版本,所以我们拿怎么配置MSVC版本的freeglut库来演示,需要注意的是,MINGW版本与这个一摸一样。
1. bin文件夹存放的是dll动态库文件
2. include 文件夹存放的是库文件的头文件
3. lib文件夹存放的是lib静态文件
在bin和lib文件下包含一个X64子文件夹,在其里面存放的是freeglut的64位库文件,而外层存放的是32为库文件,需要根据你的QT编译器是32位,还是64位合理使用。我的是32位MSVC编译器,库工程加载其过程如下:
下一步确定后,就加载完成了。
测试demo
现在我们写一段代码,证明我们加载正确
#include <windows.h>
#include <GL/glut.h>
void init(void)
{
glClearColor(1.0, 1.0, 1.0, 0.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0.0, 200.0, 0.0, 160.0);
}
void lineSegment(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 0.0, 0.0);
glBegin(GL_LINES);
glVertex2i (180, 15);
glVertex2i (10, 145);
glEnd();
glFlush();
}
int main(int argc, char *argv[])
{
// QApplication a(argc, argv);
// MainWindow w;
// w.show();
// return a.exec();
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(50, 100);
glutInitWindowSize(400, 300);
glutCreateWindow("Example OpenGL Program");
init();
glutDisplayFunc(lineSegment);
glutMainLoop();
return 0;
}