首先引入命名空间
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>
using namespace std;
由于 OpenGL 驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。
所以任务就落在了开发者身上,开发者需要在运行时获取函数地址并将其保存在一个函数指针中供以后使用。取得地址的方法因平台而异,代码非常复杂,而且很繁琐,我们还需要对每个可能使用的函数都要重复这个过程。幸运的是,
有些库能简化此过程,其中 GLAD 是目前最新,也是最流行的库。
官方地址:https://glad.dav1d.de/
GLFW 是一个 OpenGL 的 C 语言库,它提供了渲染物体所需要的最低限度的接口,它允许用户创建 OpenGL 上下文,定义窗口参数以及用户的输入
官方地址:https://www.glfw.org/download.html
…
…
…
…
接下来我们创建main函数,在这个函数中我们将会实例化 GLFW 窗口:
int main()
{
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE,
GLFW_OPENGL_CORE_PROFILE);
}
GLFWAPI void glfwWindowHint(int hint, int value);
调用glfwInit函数初始化GLFW
使用 glfwWindowHint 函数来配置 GLFW
glfwWindowHint第一个参数是选项名称,可以从GLFW_开头的枚举值中选择,
第二个参数接受一个整形,用来设置这个选项的值
这个实例基于OpenGL3.3,因此将主版本号(Major)和次
版本号(Minor)都设为 3
此外还设置了OpenGL模式(GLFW_OPENGL_PROFILE)
使用的是核心模式(Core-profile)
…
…
…
…
接下来是创建一个窗口对象,这个对象存放了所有和窗口相关的数据
GLFWwindow *window = glfwCreateWindow(800, 600, "window", NULL, NULL);
glfwCreateWindow 函数需要窗口的宽和高作为它的前两个参数。第三个参数表示这