我正在编写一个依赖于 OpenGL 2.0 或更高版本的程序。查看 GL 2.0 的规范,我看到 ARB_shader_objects 中定义的扩展已被提升,我想这意味着 GL 2.0 及更高版本不再需要 ARB 前缀,任何支持> GL2.0 的实现都将其作为一部分核心实现。
话虽如此,当我在 Linux 上编译我的程序 gcc 时会发出警告:隐式声明函数。获取这些函数的一种方法是在程序本身中声明它们,然后通过 *GetProcAddress 函数获取函数指针。
另一种方法是在包含 glext.h 之前定义 GL_GLEXT_PROTOTYPES ,这样可以避免为每个函数获取函数指针的问题,这些函数现在默认存在于 GL2.0 或更高版本中。有人可以建议这是否是推荐且正确的方法吗?基线是我的程序需要 OpenGL 2.0 或更高版本,我不想支持低于 GL2.0 的任何东西。
万一有人建议使用glee 或glew,我不想使用/可以选择使用glee 或glew 库来实现相同的目的。