是否可以使用SDL2.0学习''现代''OpenGL,而不使用加载包装器?
我读过我必须使用OpenGL加载库才能使用像glGenVertexArrays这样的函数。
但如果是这种情况,我应该使用哪个加载库? GLEW似乎没有得到维护。 GLFW似乎是新的,但如果我使用它,不再需要SDL吗?
答案 0 :(得分:2)
GLEW(非常维护)和GLFW服务于非常不同的目的。 GLEW是一个扩展程序,它允许您访问非标准功能,在某些情况下,还可以访问默认开发环境未公开的标准功能。后者最常见的例子是在Windows上开发,其中标准OpenGL标头尚未针对OpenGL 1.x之后的任何功能进行更新。
另一方面,GLFW是一种抽象,旨在允许您在各种支持的平台上创建窗口和OpenGL上下文,而无需编写特定于该平台的代码。在OSX上设置窗口的过程与在Microsoft Windows上设置窗口的过程非常不同,这就是GLFW为您提供的保护。在这方面,GLFW是SDL功能的一个子集,它试图做同样的事情,但具有更大的焦点,允许访问音频输出和游戏设备输入。您是否必须使用带有SDL或GLFW的GLEW等加载库,这主要取决于您尝试定位的平台以及您要使用的OpenGL功能。如果你正在尝试使用现代的OpenGL,即3.x或4.x,并且你正在使用一个在它的OpenGL头文件中没有完全支持它的平台,那么你可能需要依靠GLEW来填补你的空白。