古いopenGLコード(イミディエイトモード)をVertext-Buffer-Objectsに移行中です。これには、OpenGL3 API呼び出し(GL_ARB_vertex_buffer_object)を使用する必要があることに気付きました。そのため、拡張機能の読み込みライブラリとしてGLEWを使用する予定でした。
私の質問は、OpenGL3 contexTのQGLWidgetを初期化する特別な方法はありますか?
「OpenGL3コンテキスト」とはどういう意味ですか?
通常のコンテキスト作成により、バージョン3.1以降のOpenGLサポートを取得できます。ここで、コア仕様を実装するコアOpenGLコンテキストが必要な場合は、少し作業を行う必要があります。
互換性のコンテキストは完全に問題ないことに注意してください。それでも、コアコンテキストが実行するすべてのことを実行します。バッファオブジェクトを使用するために、次のいずれかを実行する必要はありません。
ああ、そしてバッファオブジェクトはもう拡張機能ではありません。に表示される拡張関数ではなく、コア関数を使用してくださいGL_ARB_vertex_buffer_object
。
注:以下はQT4.7以降用です。
少なくとも半ば精通している必要がありますQGLFormat
; を作成するには1つ必要ですQGLWidget
。QGLFormat::setProfile
そのオブジェクトを。で呼び出すだけQGLFormat::CoreProfile
です。
残念ながら、QTでは特定のバージョンを指定できません。ただし、ハードウェアがOpenGL 3.2以降を実装していると仮定すると、コアOpenGLプロファイルを取得するにはこれで十分です。