【问题标题】:Setting Qt 5.7 OpenGL version on Mac El Capitan (OSX 10.11)在 Mac El Capitan (OSX 10.11) 上设置 Qt 5.7 OpenGL 版本
【发布时间】:2017-01-12 09:32:24
【问题描述】:

我正在尝试使用以下代码将我的 QOpenGLWidget 的 OpenGL 版本设置为 3.3。

QSurfaceFormat defaultFormat;
defaultFormat.setProfile(QSurfaceFormat::CoreProfile);
defaultFormat.setVersion(3, 3);
defaultFormat.setSwapBehavior(QSurfaceFormat::DoubleBuffer);
QSurfaceFormat::setDefaultFormat(defaultFormat);
QApplication a(argc, argv);

问题是当我后来打电话给glGetString(GL_VERSION) 时,我得到了

4.1 英特尔-10.14.73

作为输出。这应该发生吗?看来我可以使用 2.1 或 4.1,而 Qt 不允许我在两者之间使用任何东西。

【问题讨论】:

  • 这是正常行为,但我找不到支持这一点的文档,所以没有发布答案。

标签: c++ macos qt opengl


【解决方案1】:

是的,这很正常。并且完全有效。

除了3.2 core profile break,每个更高的OpenGL版本都向后兼容更低的版本。因此,如果您要求 3.3,则可以免费为您提供 4.1,因为 4.1 完成了 3.3 所做的一切。

确实,如果您要求 2.1,则允许实现为您提供 4.1 兼容性配置文件,因为它向后兼容 2.1。现在在 MacOSX 上,你不会得到那个,因为 Apple 没有公开任何兼容性配置文件。但他们本可以。

【讨论】:

    猜你喜欢
    • 2017-01-13
    • 2016-03-03
    • 2021-03-21
    • 1970-01-01
    • 2016-08-08
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    • 2016-08-21
    相关资源
    最近更新 更多