2016-03-01 67 views
-1

因此,当在iMac上测试我的代码时,我偶然发现了这些问题。 我正在使用SDL来初始化OpenGL上下文。如果我指定我需要具有SDL_GL_SetAttribute的核心配置文件(SDL_GL_CONTEXT_PROFILE_MASK,SDL_GL_CONTEXT_PROFILE_CORE);然后我得到一个OpenGL 4.1配置文件。如果我省略核心配置文件掩码,它会给我一个2.1配置文件。 为什么?在OSX上的核心配置文件中获得可用的opengl扩展

此外,就像规格说的,在核心配置文件glGetString(GL_EXTENSIONS)已被弃用。所以,我试着用glGetStringi的方式,但唉,GL_NUM_EXTENSIONS没有定义。如果我尝试glGetStringi(GL_EXTENSION,0),我得到一个无效的指针。

然后获得扩展的正确方法是什么?这适用于其他操作系统。

谢谢

+0

“* GL_NUM_EXTENSIONS未定义*”这听起来像你没有使用支持OpenGL 3.0或更高版本的头文件。使用适当的OpenGL加载库。 –

+0

不确定你做错了什么。我再次检查GL_NUM_EXTENSIONS是在OpenGL/gl3.h中定义的。 –

+0

gl3.h?我一直只添加gl.h和glext.h。也许这是事情......我明天会试试,谢谢。 –

回答

0

@Reeto,你的回答是正确的。我不知道Apple包含了一个单独的标题,并且在包含该标题后,它终于有效。

如果你想创建一个答案,我会很乐意将它标记为已接受。

谢谢。