环境搭建
这里使用freeglut, 为glut的完美替代版
glut3.7 与1998年停止更新…
目前是freeglut仍在更新
下载freeglut:
直接下载编译好的版本:
https://www.transmissionzero.co.uk/files/software/development/GLUT/freeglut-MinGW.zip
解压后的根目录:
打开Qt MinGW32根目录:
拷贝相关文件:
这四个文件copy到此目录中:
lib中的俩copy到这里:
bin中的这个copy到这里, (这里不知道哪个有用, 就都copy进去)
添加库引用:
qt新建一个plain C++ 项目
然后再pro文件中加入库引用:
QT += opengl
win32-g++ {
LIBS += -lopengl32 -lglut32 -lglu32 -lopengl32 -lwinmm -lgdi32
}
最终结果:
测试程序:
#define NDEBUG
#ifndef GLUT_DISABLE_ATEXIT_HACK
#define GLUT_DISABLE_ATEXIT_HACK
#endif
#include <windows.h>
#include<gl/freeglut.h>
//绘制程序
void display()
{
glClear(GL_COLOR_BUFFER_BIT);//将屏幕设置为黑色
glColor3f(10.,1.0,1.0);//设置当前颜色状态为白色
glBegin(GL_POLYGON);//绘制多边形
glVertex3f(0.25, 0.25,0.0);
glVertex3f(0.75,0.25,0.0);
glVertex3f(0.75,0.75,0.0);
glVertex3f(0.25,0.75,0.0);
glEnd();
glFlush();//发送缓冲区
}
//初始化绘制
void init()
{
glClearColor(0.0,0.0,0.0,0.0);//清除颜色设置
glMatrixMode(GL_PROJECTION);//设置投影方式
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0,-1.0,1.0);
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);//初始化glut
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//设置显示模式为单缓冲,RGB模式
glutInitWindowSize(250,250);//设置窗口大小
glutInitWindowPosition(100,100);//设置窗口位置
glutCreateWindow("Hello");//设置窗口标题
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
测试结果:
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
测试结果:
[外链图片转存中...(img-FLLPL3vz-1600326485932)]