OpenGL学习笔记【3】—— GLAD配置

一、为什么用GLAD

由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。所以任务就落在了开发者身上,开发者需要在运行时获取函数地址并将其保存在一个函数指针中供以后使用。取得地址的方法因平台而异,在Windows上会是类似这样:

你可以看到代码非常复杂,而且很繁琐,我们需要对每个可能使用的函数都要重复这个过程。幸运的是,有些库能简化此过程,其中GLAD是目前最新,也是最流行的库 。

GLAD是继GL3W,GLEW之后,当前最新的用来访问OpenGL规范接口的第三方库,官方网址为https://glad.dav1d.de/

GLAD是一个开源的库,GLAD的配置与大多数的开源库有些许的不同,GLAD使用了一个在线服务。在这里我们能够告诉GLAD需要定义的OpenGL版本,并且根据这个版本加载所有相关的OpenGL函数。

二、GLAD配置

(1)、打开GLAD的在线服务(https://glad.dav1d.de/)进行如下设置:

(2)、点击GENERATE按钮,GLAD提供给我们了一个zip压缩文件

(3)、解压glad.zip后里面包含两个头文件,和一个glad.c文件

(4)、将两个头文件目录**(glad和KHR)** 复制到上一章节2.6步骤中创建的存放OpenGL库文件的的Include文件夹

(5)、添加glad.c文件到你的工程中

接着上一章节创建的项目:右击项目,选择添加>>现有项

至此GLAD 也已经配置成功

三、测试GLAD库和GLFW库是否成功链接进项目

(1)在我们创建的MyFirstOpenGL项目里,新建一个.cpp文件命名main.cpp

(2) 编写引入库文件代码

注意: 请确保GLAD头文件的引入需在GLFW之前,因为GLAD的头文件包含了正确的OpenGL头文件(例如GL/gl.h),所以需要在引入其他依赖于OpenGL的头文件之前先引入GLAD。

(3)点击编译,如果没有提示任何的错误,表示GLAD库和GLFW库引用成功

四、初始化GLAD库,加载所有OpenGL函数指针

GLAD是用来管理OpenGL的函数指针的,所以在调用任何OpenGL的函数之前我们需要初始化GLAD,从而让我们能够使用所有OpenGL函数

**参数1:**GLADloadproc类型的函数指针地址。这里我们通过GLFW中的glfwGetProcAddress属性获取了函数指针的的地址;

cpp 复制代码
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
    {
        //加载函数地址失败
        //打印错误信息
        std::cout << "Failed to initialize GLAD" << std::endl;
        return -1;
    }
相关推荐
leon_zeng04 天前
Qt Modern OpenGL 入门:从零开始绘制彩色图形
开发语言·qt·opengl
ht巷子7 天前
OpenGL:坐标系
opengl
lvxiangyu1113 天前
wsl2 ubuntu24 opengl 无法使用nvidia显卡 解决方法记录
wsl·cuda·opengl
下位子14 天前
『OpenGL学习滤镜相机』- Day10: 相机预览与 OpenGL 结合
android·opengl
下位子18 天前
『OpenGL学习滤镜相机』- Day9: CameraX 基础集成
android·opengl
下位子19 天前
『OpenGL学习滤镜相机』- Day8: 多重纹理与混合
android·opengl
下位子21 天前
『OpenGL学习滤镜相机』- Day7: FBO(帧缓冲对象)
android·opengl
下位子22 天前
『OpenGL学习滤镜相机』- Day6: EGL 与 GLSurfaceView 深入理解
android·opengl
下位子23 天前
『OpenGL学习滤镜相机』- Day5: 纹理变换与矩阵操作
android·opengl
下位子24 天前
『OpenGL学习滤镜相机』- Day4: 纹理贴图基础
android·opengl