> 文章列表 > OpenGL编程指南-freeglut安装(Windows平台)

OpenGL编程指南-freeglut安装(Windows平台)

OpenGL编程指南-freeglut安装(Windows平台)

OpenGL编程指南-freeglut安装(Windows平台)

1、前言

学习OpenGL编程首先需要可以跟着书中的示例代码进行学习。书中使用GLUT作为示例代码的演示,GLUT于1998年作者不在维护并不开源,freeglut是一个完美的代替方案。以后我们将会通过freeglut来重现书中的示例代码。

2、freeglut下载及MSVC编译安装

2.1、下载

freeglut下载地址

2.2、编译

解压下载完成的源代码,放入到自己的准备好的文件夹下;在文件夹下创建和两个文件夹,用来存放编译内容和安装内容。

OpenGL编程指南-freeglut安装(Windows平台)

打开Cmake GUI进行编译及生成操作,期间需要修改本地的编译环境,如vs2017或vs2019等等。

打开生成的sln文件 -> ALL_BUILD(生成) -> INSTALL(安装)
OpenGL编程指南-freeglut安装(Windows平台)

这里的安装路径就是在Cmake中配置的cmake_install_prefix的路径。

安装完成后的效果图:
OpenGL编程指南-freeglut安装(Windows平台)

3、freeglut演示

注意事项:一定要确保生成的freeglut平台及配置与示例代码一致。否则编译示例时会出现如下的问题
OpenGL编程指南-freeglut安装(Windows平台)

这里freeglut使用的是Release+x64,而我的示例代码中使用Release+x86,导致“无法解析外部符号”错误。请确保一致性。

配置:

将install文件夹下的内容,放到示例代码sln文件同级目录下的3rdparty/freeglut目录下

头文件配置
OpenGL编程指南-freeglut安装(Windows平台)

库文件配置
OpenGL编程指南-freeglut安装(Windows平台)
OpenGL编程指南-freeglut安装(Windows平台)

示例代码

#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;
}

效果图
OpenGL编程指南-freeglut安装(Windows平台)