« Entyの支援でやる気出てきた | メイン | 吉里吉里ZのCPU判定処理を変更したので確認のお願いと64bit版 »

2015年12月23日

吉里吉里Z 開発:: マルチプラットフォームのGUIツールキット

    

GUI 周りを環境ごとに書くのは大変なので、良い物がないか探すもやはりどれも用途に合わない。
C++ で扱えて候補に挙がるとしたら wxWidgetQtFLTK 辺りだろうか。
ただ、どれも大きすぎる。
過去何度か探したが、イマイチしっくりこない。

吉里吉里Z用では、widget を色々と配置してあれこれすると言うのは全く必要なくて、ほとんど Window の表示周りが出来ればいいだけなので、よくある GUI ツールキットはどれも大きすぎる。
少しだし環境ごとに書くしかないかとも思うけれど、Mac OSX での GUI 周り書くの面倒くさい気持ちが大きくて大変。
C++ で書くなら Carbon で、Carbon 廃止 Cocoa を Objective-C で、Swift で書け、ただし C しか呼べないから C++ のラッパー書いて、とか言うのを見て、これは書きたくないねとなる。

Mac/Linux は Java に任せてしまうのがいいだろうか?
羽々斬で Java で書いた吉里吉里2の Window クラスがあるから、必要な部分をうまく切り分けて、C++ の 吉里吉里Zから呼べるようにすれば、GUI 周りはもうほとんどできているようなもの。
Java が必要でエントリーポイントも Java からになるけど、昔は OSX には Java が同梱されていた影響か Java アプリそこそこあるし、Mac 版の呼び出し元が Java でも大丈夫そう。
Mac 版はそこまでやる気が起きないから、環境依存部分でライブラリに頼れないところは、羽々斬の Java で書いたものを使って作るのがまずは現実的か。

と、思ったが、GLFW はどうか。
何気なく GLUT が目に入って、GUI ツールキットではなく、OpenGL 系で GUI サポートがあるライブラリだと、GUI 周りはシンプルではないかと。
freeglut 見てみたけど、GLUT をそのまま進めたような感じで少し扱いづらい。
GLFW を見てみるとかなり理想的な感じだ。
使い方等見てみると、Win32 API でウィンドウ表示してごそごそするのとあまり変わらない。
Window の表示とそのイベント処理くらいしか出来ないが、それで十分。
メニューもないけど、吉里吉里Z ではプラグイン化して非推奨とし、ツール用としているからいいだろう。
ファイルオープンダイアログ等がないのは少し気になるかもしれないけど、どうしても必要なら個別実装してもかまわない範囲かな。
描画も非Windows なら OpenGL だろうしちょうど良さそう。
まあ、ほとんど CPU 描画で最後にテクスチャ貼る部分くらいしか OpenGL 使われないが。

Android は自前でやらないと勝手が悪い部分が多いから自前実装だろうな。


投稿者 Takenori : 2015年12月23日 15:04




comments powered by Disqus
Total : Today : Yesterday : なかのひと