3

私は現在、ゲーム エンジン プロジェクトの単純なエディターに取り組んでいますが、プロジェクトはメイン ワークステーション (OpenGL 3.3+ をサポートする GTX 650Ti) で問題なく動作しているように見えますが、自分でテストすると壊れているようです。デスクトップのテスト (OpenGL 2.1 を最大サポートする GMA4500)。

gtk_gl_area_make_current()GL バージョンを 2.1 に指定しても、GtkGLAreaは OpenGL 2.1 コンテキストを作成できませんgtk_gl_area_set_required_version()

gtk glarea デモ ( https://git.gnome.org/browse/gtk+/tree/demos/gtk-demo/glarea.c ) をテストしてトラブルシューティングを試み、同じ結果を得ました。

すでにウェブで検索していますが、解決策につながるものはありません。誰かが ebassi の glarea の例で同じ正確な問題について言及していますが ( https://github.com/ebassi/glarea-example/issues/2 )

これに対する解決策はありますか?

オペレーティング システム: Fedora 23 GTK バージョン 3.18


編集: オペレーティング システム (Fedora 23) は OpenGL 2.1 を使用しています ( glxinfo で確認)。これをオーバーライドする方法はありますか?(以下の ebassi の回答によると、GdkGLContextコア プロファイルが利用できない場合、GTK+ 3.20 以降はレガシー プロファイルにフォールバックします。GTK+ 3.20 にアップグレードするとすぐにテストします)

編集 2: の代わりに SDL によって作成されたコンテキストを使用して回避策を作成できますが、OpenGL 2.1 で動作GdkGLContextするようにすることにまだ関心があります。GdkGLContext

4

2 に答える 2

4

GTK+ はデフォルトで OpenGL 3.2+ コア プロファイル コンテキストを作成しようとします。

GTK+ 3.20 以降でGdkGLContextは、コア プロファイルが利用できない場合、レガシー プロファイルへのフォールバックを試みます。GdkGLContextを使用して、 がレガシー モードであるかどうかを確認できますgdk_gl_context_is_legacy()

レガシー コンテキストを自分で選択することはできません。これは、コア プロファイルをレガシー プロファイルと共有することができず、GDK が描画用に内部で GL コンテキストを作成するためです。

于 2016-06-20T13:11:29.810 に答える