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

15

我想使用OpenGL,但不知道如何设置GLEW。如果我使用Glad会有什么损失吗?我能否从使用GLEW的教程中学习?


使用Glad相比Glew,当您不需要最新的OpenGL配置文件时,编译的代码要少得多。 - j6t
@j6t,你是在建议使用glad而不是glew吗? - bim
@BiMo 这个答案提供了一个很好的指导,可以帮助你评估哪个更适合使用。我并不是在推荐其中之一。 - j6t
我注意到大多数最近的OpenGL开发者都在使用Glad而不是Glew。我在一些讨论中也看到,开发者们正在讨论Glew中的一些错误。 - bim
1个回答

21
如果您在桌面平台上开始使用OpenGL编程,那么两种库都可以使用,选择并不是非常关键。稍后切换仍然是一个选项。只有在高级用例中,选择才变得更加重要和客观。
通常通过在Web界面中选择必要的扩展名、下载生成的源代码和头文件,并将其复制到您的项目中来使用Glad。GLEW是一个需要安装的库,通常作为依赖项添加到CMake等中。 Glad的优势:
- 能够选择您使用的扩展名,从而导致较快的编译时间和运行时初始化。 - 您的项目没有额外的依赖项。 - 还支持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 免责声明:答案基于我自己(有限的)使用这两个库和阅读其他人的经验。

4
你可能想要补充一下,glad 总是针对特定版本的 GL,而使用 glew 时,你可以检查支持的内容,并在旧硬件上有后备路径。 - BDL
非常感谢,我从你那里学到了很多。 - xfajk X
请记住,您也可以使用CMake将GLAD作为依赖项添加,因此这不是仅限于GLEW的优势。我猜这已经改变了,自回答时起。 - Olorun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接