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;
    }
相关推荐
一枚懒人3 天前
OpenGL 视频渲染导论:从图形管线到视频处理全览
程序员·opengl
郝学胜-神的一滴9 天前
中级OpenGL教程 026:Assimp库从编译到实战全攻略
c++·unity·游戏引擎·图形渲染·unreal engine·opengl
郝学胜_神的一滴14 天前
中级OpenGL教程 024:Assimp模型加载之Mesh解码玄功
计算机图形学·opengl
郝学胜-神的一滴15 天前
中级OpenGL教程 023:Assimp模型加载全解——从源码到架构的骈文探秘
c++·unity·游戏引擎·cmake·unreal engine·opengl
郝学胜-神的一滴16 天前
中级OpenGL教程 022:探秘三维世界的血脉传承——物体父子关系与矩阵递归奥义
c++·线性代数·unity·矩阵·游戏引擎·unreal engine·opengl
郝学胜_神的一滴18 天前
Horse3D 游戏引擎研发笔记(二):材质系统——从 JSON 配置到 GPU Uniform
游戏开发·opengl
郝学胜-神的一滴24 天前
[简化版 GAMES 101] 计算机图形学 17:纹理技术从基础原理到多场景实战应用
c++·unity·游戏引擎·图形渲染·three.js·opengl·unreal
郝学胜-神的一滴1 个月前
中级OpenGL教程 013:渲染器类架构设计与逐帧渲染流程详解
开发语言·c++·unity·游戏引擎·图形渲染·opengl·unreal
郝学胜-神的一滴1 个月前
[简化版 GAMES 101] 计算机图形学 16:纹理走样、Mipmap、三线性插值、各向异性过滤原理全解
unity·游戏引擎·godot·图形渲染·three.js·opengl·unreal
郝学胜-神的一滴2 个月前
[简化版 GAMES 101] 计算机图形学 13:从光栅化到着色——赋予三维像素光影灵魂
c++·计算机视觉·unity·godot·图形渲染·opengl·unreal