OpenGL, GLFW and GLAD
OpenGL, GLFW和GLAD是三个关联的库,每个都有其特定的功能和用途。让我们详细探讨它们之间的关系和如何一起使用它们。
OpenGL
首先,OpenGL是一个开放的图形库,用于渲染2D和3D的图形。它只是一种标准或规范,具体的实现是由驱动开发商针对特定显卡实现的。因此,OpenGL本身并不提供创建窗口或处理用户输入的功能,这就需要用到GLFW库。
GLFW
GLFW是一个专门针对OpenGL的C语言库,它提供了一些渲染物体所需的最低限度的接口。它允许用户创建OpenGL上下文,定义窗口参数以及处理用户输入。简单来说,GLFW负责创建窗口,处理窗口相关的事件(如键盘和鼠标输入),并提供一个OpenGL上下文供你的程序使用。
GLAD
然后,我们有GLAD。由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。所以任务就落在了开发者身上,开发者需要在运行时获取函数地址并将其保存在一个函数指针中供以后使用。取得地址的方法因平台而异,代码非常复杂,而且很繁琐,我们需要对每个可能使用的函数都要重复这个过程。幸运的是,有些库能简化此过程,其中GLAD是目前最新,也是最流行的库。GLAD是用来管理OpenGL的函数指针的,所以在调用任何OpenGL的函数之前我们需要初始化GLAD。GLAD也可以使OpenGL基础渲染变得简单。
这是一个使用GLFW和GLAD的基本示例:
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>
using namespace std;
voi