在Mac上设置Qt 5.7 OpenGL版本El Capitan(OSX 10.11)

时间:2016-09-05 03:00:55

标签: c++ macos qt opengl

我正在尝试使用以下代码将我的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 INTEL-10.14.73

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

1 个答案:

答案 0 :(得分:3)

是的,这是正常的。完全有效。

3.2 core profile break外,每个较高的OpenGL版本都向后兼容较低版本。因此,如果你要求3.3,一个实现可以免费给你4.1,因为4.1会做3.3所做的一切。

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