gpt4 book ai didi

opengl - GLEW 有什么作用,我为什么需要它?

转载 作者:行者123 更新时间:2023-12-03 11:01:45 25 4
gpt4 key购买 nike

好的,所以我已经知道为什么我需要 GLEW,但只是在一定程度上。

如果我使用现代 OpenGL 的东西,可能从 3.0 版开始,和/或使用核心配置文件,那么 GLEW 是必需的,因为没有它编译会产生错误,例如 glGenVertexArrays没有声明。

所以 GLEW 做了一些后台工作,包括我们可能想要使用的现代 OpenGL 函数。

除此之外,它还有别的作用吗?另外,它是如何工作的。

例如,它是否改进了跨平台编译? (例如,如果从 Linux 迁移到 Windows 或 OS X,则需要更少的代码修改?

它是否也改善了图形硬件的“跨平台性”?例如,假设我们有两台相同的计算机,包括操作系统。程序是在一个系统上使用 OpenGL 4.3 命令编译的。如果其他系统的显卡或驱动程序仅支持 OpenGL 3.3,GLEW 是否有帮助? (也许是为旧版本的 OpenGL 编译着色器?)

所以你可能会看到我实际上并不知道 GLEW 做什么或它是如何做的。

最后一点;有谁知道如何将 GLEW 与 GLFW 一起使用?实际上,我可能会将其作为一个单独的问题发布。

最佳答案

正如您所说,GLEW 不是“必需的”。你可以使用 glcorearb.h 头文件,或者类似的东西。但是,如果您与某个功能链接 - 它必须存在于目标平台上,否则您的程序将无法启动。
GLEW 和其他人正是为了处理这个问题——你不是直接与 GL 函数链接,而是在初始化阶段后获取函数指针。它允许您在运行时检查存在哪些扩展以及可以使用哪些功能。

它唯一有助于可移植性的是获取函数指针 - 它可能是 wglGetProcAddress/glxGetProcAddress 并且它是苹果操作系统的模拟。所以不,这不是个案。但是,各种可用的 GL 扩展是。

GLEW 不需要与您首选的 GL 初始化库的接触点 - 只需在创建 GL 上下文后调用 glewInit 即可。

关于opengl - GLEW 有什么作用,我为什么需要它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17809237/

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