OpenGL Core Profileに対応したGUIライブラリを探していて,shimacpynさんのOpenGL な UI を作るライブラリ一覧のページに行き当たりました.
このリストのなかで Core Profile に対応していると明記されていたのは
- AntTweakBar
- CEGUI
- imgui
- milligui
さらに日本語に対応していて,開発が活発と明記されているものは候補がない...
キーワードをopengl core profile gui
として検索し直して海外の情報なども入手するとやはり,かなり厳しいなかlibRocket
というのが見つかりました.モデルとビューが切り分けられていて,ビューはHTML5/CSSなので日本語への対応も大丈夫と期待します.変ったところでは,Pythonでのスクリプティングをサポートしているようです.JavaScriptも使えるといいけれど.
ひとまずMinGW64/MSYS2へのインストールはすんなり.
- pacman -Su mingw64/mingw-w64-x86_64-freetype
- cmake
- make
- make install
libRocket は簡単にインストールはできたものの Python バインディング込みでのビルドはこけました.GitHub の Issue で半年以上も前にあがっているのですが,放置状態なので,これはやばいかもしれません.
次に試みたのは,AntTweakBar.手元の簡単な OpenGL アプリと統合しようと思ったら,今どき GLFW2 ベースなために GLFW3 → GLFW2 なラッパーを作って動かすことはできました.手軽でよくできているとは思うのだけど,いいかげんに作ったラッパーでは,イベント処理がときどきおかしくなってしまいます.たとえば,ドラッグ操作をするとリリースができなくなってしまいます.ドラッグしたサブウィンドウが,静電気のために張り付いた紙のようにはなれなくなってしまって使い物になりません.GLFW2 を利用すればいいのでしょうが,GLFW3 ベースで作成してしまった資産をいまさら古いバージョンに戻す気にもなれず...
ということで,今,Qt を試しています.OpenGL Core Profile に対応しているらしいこと,glbindingが利用できそうなことは確認しました.Webkit の Widget があるのは嬉しいです.