函数glCreateShaderObjectARB()在哪里?

时间:2014-02-27 18:07:53

标签: opengl c++11

函数glCreateShaderObjectARB()在哪里? 我包括以下内容:

#include <gl\GL.h>
#include <gl\wglext.h>
#include <gl\glext.h>

但我无法使用glCreateShaderObjectARB()功能!

同样,我想用:

glShaderSourceARB();
glAttachObjectARB();
glCompileShaderARB();
glLinkProgramARB();

等等。

2 个答案:

答案 0 :(得分:2)

它是GL_ARB_shader_objects的一部分,除非你有一个早于2.0的OpenGL实现,否则你不应该使用它。使用核心GLSL代替,函数名称略有不同(例如 glCreateShaderObjectARB (...)glCreateShader (...)),但在功能上它们是相同的。

您遇到的使用ARB扩展程序的任何教程都应该被忽略,因为它太老了(10年),今天才被认为是相关的。

此外,除非您使用的是OS X,否则您将不得不使用平台的 运行时 的扩展加载机制来加载此功能,包括标题是不会解决你的问题。我建议你使用GLEW让生活更轻松。

答案 1 :(得分:0)

您应该在include:

之前使用define激活此原型
#define GL_GLEXT_PROTOTYPES 1
#include <GL/glext.h>