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;
    }
相关推荐
爱看书的小沐2 天前
【小沐杂货铺】基于Three.js渲染三维风力发电机(WebGL、vue、react、WindTurbine)
javascript·vue.js·webgl·three.js·opengl·风力发电机·windturbine
v俊逸6 天前
Qt多线程渲染架构设计与实现思考
opengl·多线程渲染·qml/opengl
little_fat_sheep15 天前
【OpenGL ES】不用GLSurfaceView,如何渲染图像
opengl
CHPCWWHSU17 天前
osg中相机矩阵到vsg相机矩阵的转换
opengl·osg·投影矩阵·vulkan·vsg
农场主er23 天前
Metal - 5.深入剖析 3D 变换
3d·opengl·transform·matrix·metal
♡すぎ♡1 个月前
创建GLFW窗口,开启OpenGL之路
opengl
AJi1 个月前
EGL使用记录
前端·opengl
华溢澄1 个月前
macOS下基于Qt/C++的OpenGL开发环境的搭建
c++·qt·macos·opengl
Kapaseker2 个月前
大师级 Compose 图形编程—AGSL 入门
android·kotlin·opengl
onthewaying2 个月前
详解 Android GLSurfaceView 与 Renderer:开启你的 OpenGL ES 之旅
android·opengl