0

我正在设置一个使用 SDL 作为“包装器”的 OpenGL c++ 程序。我注意到,只要我添加了这一行:

#include <glload/gl_3_3.h>
#include <glload/gl_load.hpp>

所有“旧”的 OpenGL 命令,例如 glBegin()、glEnd() 等都变得未定义,即使我仍然有

#include <GL\GLU.h>

就在它之后。这不是问题,因为我目前不打算在这个程序中使用它们,但这有点烦人,我想知道是否有办法解决它。

另外,为什么我必须使用

<glload/gl_3_3.h>

<glload/gl_3_3.hpp>

即使我用 C++ 而不是 C 编写,这似乎与 glsdk 文档相矛盾?

glsdk_0_5_2/docs/html/group__module__glload.html

4

1 回答 1

0

当请求 3.3 版本的 API 时,您只请求那个。从 OpenGL 3.3 开始,glBeginglEnd和许多旧的固定流水线功能已被删除。

您真的不应该担心它,只需针对您选择的 API 版本进行编码即可;您当然不会错过任何旧功能。

于 2014-09-12T17:58:06.320 回答