gpt4 book ai didi

c - 在 C 项目中使用 OpenGL 4.3

转载 作者:行者123 更新时间:2023-11-30 15:40:30 30 4
gpt4 key购买 nike

我需要使用函数 glDeleteProgram() 但编译器告诉我该函数不存在。我认为我的 gl.h 版本太旧,但我找不到如何在我的项目中安装 OpenGL 4.3...

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <gl/gl.h>

我尝试包含 glext.h 但没有成功。

最佳答案

似乎有点困惑 gl.h 的用途到底是什么?随您的平台提供的 header 。我将在下面尝试更好地解释它,但请注意该 header 和平台的 OpenGL 库非常相关(并且基本上是不可变的)。当您谈到“安装”OpenGL 4.3 时,您实际上是在补充(在运行时,而不是编译时)该 header 所属的脆弱库。

<小时/>

诸如 Microsoft Windows 之类的平台附带了非常原始的 OpenGL 软件实现(本例中为 1.1),但其设计方式是安装的显示驱动程序可以在运行时扩展/替换软件实现。 Microsoft 将此系统称为I可安装C客户端D河流。

出于所有意图和目的,GLEW 与您的显示驱动程序交互并加载高于 1.1 的 OpenGL 的所有部分。如果不使用 GLEW,您将受限于软件实现的功能,该软件在 Microsoft Windows 上于 1997 年左右编写,此后从未更新过。 <GL/gl.h>在 Windows 上始终为 1.1,因为驱动程序负责扩展 GL,并且您永远不会将软件直接编译/链接到显示驱动程序

GLEW没什么特别的,你可以阅读扩展规范here并使用您需要的所有扩展函数原型(prototype)、枚举和常量值编写您自己的 header ...但是,多年来,这项任务变得异常乏味(目前有超过 120 个 ARB 扩展)。 GLEW 基本上将所有主要已发布的扩展规范打包到一个庞大的库中,并将加载您的驱动程序声称支持的每一项扩展。这就是 GL 版本控制的有效工作方式,顺便说一句,每个新版本都归结为一组必需的扩展。

<小时/>

以前,有一些该死的可怕的东西,叫做 MiniGL drivers ,而像《Quake 1》这样的游戏实际上确实直接链接到来自 3Dfx 和 PowerVR 等供应商的极其原始和专有的驱动程序。幸运的是,我们已经过去了那些日子。

关于c - 在 C 项目中使用 OpenGL 4.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20981099/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com