文章目录
- 整体运行环境框架
- GLFW
- 作用
- 使用CMake编译
- 配置步骤
- 编译器如何找到库和头文件的位置?
- GLAD
- 使用GLAD的必要性——存储函数位置的操作太繁琐
- GLAD安装方法
整体运行环境框架
OpenGL是Windows平台在安装VS以后自带的,还需要一下其他的库:
GLFW(窗口和处理用户输入)+GLAD(解决繁琐的检索函数位置问题)+CMake(从源码编译GLFW库)
最后将这些库在VS的项目-属性中进行配置,引入头文件后编译成功即为环境搭建完成。
GLFW
GLFW是用于OpenGL的由C语言编写的库。
下载源码版:GLFW的下载地址
作用
GLFW可以:
- 创建OpenGL上下文
- 定义窗口参数
- 处理用户输入
使用CMake编译
CMake是一个工程文件生成工具。用户可以使用预定义好的CMake脚本,根据自己的选择(像是Visual Studio, Code::Blocks, Eclipse)生成不同IDE的工程文件。
CMake需要源代码文件夹(这里使用上面下载的glfw文件根目录)和用于存储二进制文件的目标文件夹(新的空文件夹)。
配置步骤
- 选定源文件和目标文件夹,点击Configure按钮。
- 选择generator,这里选择Vistual Studio。
- 保留默认配置,再点击Configure按钮。
- 点击Generate按钮,再build文件夹就会生成项目文件。
- 在build文件夹打开GLFW.sln(使用Visual Studio打开,里面已经包含了解决方案的配置),点击build solution选项(生成->生成解决方案)。
- 编译好的库文件可以直接在build/src/Debug/glfw3.lib找到。
编译器如何找到库和头文件的位置?
- 创建一个文件夹,里面包含Libs和Include两个文件夹,分别存放OpenGL工程用到的所有第三方库和头文件。
- 每次新建一个工程时都需要告诉IDE/编译器在哪能找到这些目录:link我们的项目和刚刚编译的库文件——项目-属性按照下图配置。
- 为了编译的时候能链接GLFW库,把GLFW link到project。
- 同时由于Windows系统在安装VS后,自带opengl32.lib,可以直接将该库link到project中。
GLAD
使用GLAD的必要性——存储函数位置的操作太繁琐
OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。为了获得函数的位置,需要将其保存到一个函数指针中来进行使用。
//define the function's prototype
typedef void (*GL_GENBUFFERS)(GLsizei, GLuint*);
//find the function and assign it to a function pointer
GL_GENBUFFERS glGenBuffers = (GL_GENBUFFERS)wglGetProcAddress("glGenBuffers");
//function can now be called as normal
unsigned int buffer;
glGenBuffers(1,&buffer);
上面的声明并查找指针的过程过于繁琐,而GLAD就可以解决这个问题。
GLAD安装方法
进入GLAD的web service,按照下图配置,点击Generate。
将得到的zip解压后,将Include下的两个文件夹放到刚才创建的Include文件夹中,然后将glad.c文件添加到项目工程中。
如图所示,编译通过,环境配置成功。