OpenGL运行环境的搭建(GLFW+GLAD+OpenGL以及在Vistual Studio中的 配置)

文章目录

  • 整体运行环境框架
  • GLFW
    • 作用
  • 使用CMake编译
    • 配置步骤
    • 编译器如何找到库和头文件的位置?
  • GLAD
    • 使用GLAD的必要性——存储函数位置的操作太繁琐
    • GLAD安装方法
  • 补充

整体运行环境框架

OpenGL是Windows平台在安装VS以后自带的,还需要一下其他的库:
GLFW(窗口和处理用户输入)+GLAD(解决繁琐的检索函数位置问题)+CMake(从源码编译GLFW库)

最后将这些库在VS的项目-属性中进行配置,引入头文件后编译成功即为环境搭建完成。

GLFW

GLFW是用于OpenGL的由C语言编写的库。

下载源码版:GLFW的下载地址

作用

GLFW可以:

  1. 创建OpenGL上下文
  2. 定义窗口参数
  3. 处理用户输入

使用CMake编译

CMake是一个工程文件生成工具。用户可以使用预定义好的CMake脚本,根据自己的选择(像是Visual Studio, Code::Blocks, Eclipse)生成不同IDE的工程文件。

CMake需要源代码文件夹(这里使用上面下载的glfw文件根目录)和用于存储二进制文件的目标文件夹(新的空文件夹)。

OpenGL运行环境的搭建(GLFW+GLAD+OpenGL以及在Vistual Studio中的 配置)_第1张图片

配置步骤

  1. 选定源文件和目标文件夹,点击Configure按钮。
  2. 选择generator,这里选择Vistual Studio。
  3. 保留默认配置,再点击Configure按钮。
  4. 点击Generate按钮,再build文件夹就会生成项目文件。
  5. 在build文件夹打开GLFW.sln(使用Visual Studio打开,里面已经包含了解决方案的配置),点击build solution选项(生成->生成解决方案)。
  6. 编译好的库文件可以直接在build/src/Debug/glfw3.lib找到。

编译器如何找到库和头文件的位置?

  1. 创建一个文件夹,里面包含Libs和Include两个文件夹,分别存放OpenGL工程用到的所有第三方库和头文件。
  2. 每次新建一个工程时都需要告诉IDE/编译器在哪能找到这些目录:link我们的项目和刚刚编译的库文件——项目-属性按照下图配置。

OpenGL运行环境的搭建(GLFW+GLAD+OpenGL以及在Vistual Studio中的 配置)_第2张图片

  1. 为了编译的时候能链接GLFW库,把GLFW link到project。
  2. 同时由于Windows系统在安装VS后,自带opengl32.lib,可以直接将该库link到project中。

OpenGL运行环境的搭建(GLFW+GLAD+OpenGL以及在Vistual Studio中的 配置)_第3张图片

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。

OpenGL运行环境的搭建(GLFW+GLAD+OpenGL以及在Vistual Studio中的 配置)_第4张图片

将得到的zip解压后,将Include下的两个文件夹放到刚才创建的Include文件夹中,然后将glad.c文件添加到项目工程中。

OpenGL运行环境的搭建(GLFW+GLAD+OpenGL以及在Vistual Studio中的 配置)_第5张图片

如图所示,编译通过,环境配置成功。

补充

  1. 有些库是由lib和dll共同组成的,lib会存储dll的入口函数,这时还要按照下述配置配置dll的存放目录。
    OpenGL运行环境的搭建(GLFW+GLAD+OpenGL以及在Vistual Studio中的 配置)_第6张图片
  2. cmake之前的源代码的include文件包含.h,用于在Vistual Studio编译器中查找相应位置。

你可能感兴趣的:(OpenGL,opengl,cmake)