2016-09-05 16 views
2

次のコードを使用して、QOpenGLWidgetのOpenGLバージョンを3.3に設定しようとしています。Qtを設定する5.7 MacでのOpenGLバージョンEl Capitan(OSX 10.11)

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

私は後で私が出力として

4.1 INTEL-10.14.73

を取得glGetString(GL_VERSION)を呼び出すときに問題があります。これは起こっているはずですか?私は2.1または4.1のどちらかを使用することができ、Qtは間に何かを使用することを許可しません。

+1

通常の動作ですが、これをバックアップして回答を投稿しないようなドキュメントは見つかりません。 – SurvivalMachine

答えて

2

はい、これは正常です。そして完全に有効です。

3.2 core profile breakを除き、すべての上位OpenGLバージョンは下位互換性があります。そのように、あなたが3.3を求めるならば、実装はあなたに4.1を与えることは自由です、4.1は3.3がするすべてを実行するので。

実際に2.1を求める場合、実装は4.1 互換性のプロファイルを与えることができます。これは2.1と下位互換性があるためです。 MacOSX上では、アップル社は互換性プロファイルを公開していないので、あなたはそれを知りません。しかし、彼らは持つことができます。

関連する問題