OpenGL编程指南-freeglut安装(Windows平台)
1、前言
学习OpenGL编程首先需要可以跟着书中的示例代码进行学习。书中使用GLUT作为示例代码的演示,GLUT于1998年作者不在维护并不开源,freeglut是一个完美的代替方案。以后我们将会通过freeglut来重现书中的示例代码。
2、freeglut下载及MSVC编译安装
2.1、下载
freeglut下载地址
2.2、编译
解压下载完成的源代码,放入到自己的准备好的文件夹下;在文件夹下创建和两个文件夹,用来存放编译内容和安装内容。
打开Cmake GUI进行编译及生成操作,期间需要修改本地的编译环境,如vs2017或vs2019等等。
打开生成的sln文件 -> ALL_BUILD(生成) -> INSTALL(安装)
这里的安装路径就是在Cmake中配置的cmake_install_prefix的路径。
安装完成后的效果图:
3、freeglut演示
注意事项:一定要确保生成的freeglut平台及配置与示例代码一致。否则编译示例时会出现如下的问题
这里freeglut使用的是Release+x64,而我的示例代码中使用Release+x86,导致“无法解析外部符号”错误。请确保一致性。
配置:
将install文件夹下的内容,放到示例代码sln文件同级目录下的3rdparty/freeglut目录下
头文件配置
库文件配置
示例代码
#include <iostream>
#include "GL/freeglut.h"
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.5, 0.5, 0.5);
static float sc = 1.0;
glRectf(-0.5f*sc, -0.5f*sc, 0.5f*sc, 0.5f*sc);
sc = sc * 1.01;
glFlush();
}
void timerProc(int id)
{
myDisplay();
glutTimerFunc(33, timerProc, 1);//需要在函数中再调用一次,才能保证循环
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("第一个OpenGL程序");
glutDisplayFunc(&myDisplay);
glutTimerFunc(33, timerProc, 1);
glutMainLoop();
return 0;
}
效果图