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

效果图
请添加图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐