【发布时间】:2016-06-24 12:54:17
【问题描述】:
我用glewIsSupported(GL_VERSION_3_1)看机器是否支持opengl 3.1版本。它返回 true,但我知道机器只支持高达 2.1,因为我通过 glxinfo 检查它。我想检查 3.1 前向兼容性配置文件而不是向后兼容性。
- 如果检查版本 >=3.2,我是否可以告诉 glewIsSupported 检查前向兼容性配置文件或核心配置文件
- 我还尝试了对 opengl 3.2 和 opengl 3.3 的支持。它对 opengl 3.2 返回 true,但对 opengl 3.3 失败。因此,如果它检查兼容的配置文件,不应该两者都通过或两者都失败。
如果glxinfo 说它只支持最高 2.1,我认为这应该很简单,glewIsSupported(GL_VERSION_3_1) 应该返回 false。为什么返回true?
【问题讨论】:
-
好吧,
glewIsSupported不关心配置文件和向前/向后兼容性。它实际上告诉您的是,在 GL 3.1 中添加的 GL 功能是可用的,这对于 GL3.2 cooe 配置文件上下文仍然适用。 -
但 3.3 失败。 glxinfo 也只显示 2.1 支持。你不觉得肯定有什么问题吗?
-
glxinfo(至少在最近的版本中)将报告旧 GL 版本和核心配置文件版本。我完全不清楚您的实现实际支持什么。
-
对于 GL 3.1,您可以测试兼容性扩展。通常,在创建上下文之前,您无法知道支持的内容。这就是为什么有一个窗口管理器扩展可以让您请求特定版本的原因。几乎值得假装 3.1 从未存在过,因为它造成的所有复杂性。