在 OSX 上的核心配置文件上获取可用的 opengl 扩展

Posted

技术标签:

【中文标题】在 OSX 上的核心配置文件上获取可用的 opengl 扩展【英文标题】:Getting available opengl extensions on a core profile on OSX 【发布时间】:2016-03-01 12:13:06 【问题描述】:

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

此外,正如规范所说,在核心配置文件中 glGetString ( GL_EXTENSIONS ) 已被弃用。因此,我尝试使用 glGetStringi 方式,但可惜没有定义 GL_NUM_EXTENSIONS。如果我尝试 glGetStringi ( GL_EXTENSION, 0 ) 我得到一个无效的指针。

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

谢谢

【问题讨论】:

"GL_NUM_EXTENSIONS 未定义" 听起来您没有使用支持 OpenGL 3.0 或更高版本的标头。使用适当的 OpenGL 加载库。 不确定你做错了什么。我仔细检查了GL_NUM_EXTENSIONS 是在OpenGL/gl3.h 中定义的。 gl3.h ?我只添加了 gl.h 和 glext.h。也许就是这样……我明天试试,谢谢。 另外,对于对这个问题投反对票的人......你的投反对票就像无缘无故被捕一样有帮助。什么都不感谢。至少要费心解释我的问题有什么问题,这样我就可以改进它,以及将来的其他人。我真的不明白仅仅投反对票并让人们疯狂猜测原因是什么。它使提出问题的人感到被贬低,并且没有机会改进。这种方式一点用都没有。 【参考方案1】:

@Reto,你的回答是正确的。我不知道Apple包含了一个单独的标题,并且在包含那个之后,它终于可以工作了。

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

谢谢。

【讨论】:

以上是关于在 OSX 上的核心配置文件上获取可用的 opengl 扩展的主要内容,如果未能解决你的问题,请参考以下文章

在 OS X 上的 pyglet 中启用 OpenGL 核心配置文件

使用 java,如何获取 solaris zfs 文件系统上的可用空间量?

在 OS X 上的 OpenGL 上下文之间共享数据(不同的版本/配置文件)

在 OSX 上的 gdb 中转储核心(没有“gcore”或“generate-core-file”)

共享 httpd.conf

FileNet:获取存储区域上的可用空间