如果我使用 Glad 而不是 GLEW,我会错过什么吗?

xfa*_*k X 16 opengl glew glad

我想使用 OpenGL,但我不知道如何设置 GLEW。如果我要使用 Glad,我会失去一些东西吗?我可以从使用 GLEW 的教程中学习吗?

Yun*_*Yun 23

如果您开始在桌面平台上使用 OpenGL 进行编程,那么任何一种都可以工作,并且选择并不那么重要。稍后切换也是一种选择。对于高级用例,选择只会变得更加重要、更加客观。

Glad 通常通过在 Web 界面中选择必要的扩展、下载生成的源文件和头文件并将它们复制到您的项目中来使用。GLEW 是一个需要安装的库,通常作为依赖项添加到 CMake 等中。

格莱德的优点:

  • 能够仅选择您使用的扩展,从而导致(稍微)更快的编译时间和运行时的初始化。
  • 您的项目没有额外的依赖项。
  • 还支持 API OpenGL ES、EGL、GLX 和 WGL。
  • 还支持 D、Volt、Nim 和 Pascal 语言。

GLEW的优点:

  • 将 GLEW 作为依赖项添加到 CMakeLists.txt 等文件中就足以使其工作。
  • 您的存储库中没有大量的附加头文件和源文件。
  • GLEW 可以在运行时检测哪些扩展可用。
    这允许您的程序适应可用的扩展。例如,如果某个扩展在旧硬件上不可用,它可以选择后备路径。

其他 OpenGL 加载库也存在。请参阅此处:https://www.khronos.org/opengl/wiki/OpenGL_Loading_Library

免责声明:答案是基于我自己(有限的)图书馆经验和阅读其他人的经验。

  • 您可能想补充一点,glad 始终适用于 GL 的某一特定版本,而使用 glew,您可以检查支持的内容,并为旧硬件提供后备路径。 (5认同)