最近寝るの遅くなっちまったな。
swig使用になったwxruby2。
コンパイルしてみたけど、とりあえず動いてるっぽい。
まあ動くだろうことは分かってたんだが、GLCanvasが欲しかったので追加してみる。
まあ基本的には公式ページにある通りっぽい感じだな。
include/wxGLCanvas.hは自動生成されているっぽいが、何から自動生成されているのか謎だった。コンパイル通らなかったんで書き換えたけど。
typemap.iにint* attribListの扱いを追加する必要があった。
あとwxMacではwx/glcanvas.hをインクルードするとエラー。T_DATAってenumを定義しようとして失敗してるらしい。undefしてインクルードしてdefineし直し。
rename.rbがヘボくてWX_GL_〜をWx::_GL_〜にリネームしやがっていた。_で始まる定数は作れないんで、WX_までを消すようにした。
多分、こんな程度だったと思う。特別やる必要があったことは。
で、まあ、一応動いてるように見える程度にはなったよ。
コンパイル通らないかも、ってんで消しちゃった所があるからそこは直さないとな。
あとwxWidgetsのOpenGL無しでもコンパイル出来るようにしておく必要があるよな。コンパイルに時間がかかるんで、テストするのは面倒だが。
その程度が出来ればパッチ作って投げても良さそうだ。
まあパッチ作って投げる時の英語でのやりとりが一番の障壁なんですが。
ところで、なんでwxRubyかっていうと。
まあ前から使ってるからっていうのもあるんだが、これくらいしか無いっていうのもある。
MacとWindowsで動いてRubyバインディングがあって*1、OpenGLの描画ウィジェットがあるやつ、っていうと思ったより少ない。
FLTKはいろいろパッチを当てなきゃいけなくて大変そうだったので止めた。
良さげなのがFXRubyだがMacではX11が必要だ。うーん。X11入れてないんだよな。
wxWidgetsはネイティブなGUI使うし、良いんだけど、wxRubyはwxruby2も含めてGLCanvasに対応してない。
GLUIくらいなら拡張ライブラリ書いてラップしてもいいが、わざわざそんなことする程将来性は無さそうなのがなぁ。
で、wxRubyは多少経験あるし、GLCanvasは俺が対応しなきゃ一生対応されないだろうし、一回パッチ作っちゃえば済む話なのでやることにした。
wxrubyでは追加しようとして諦めたが、wxruby2ならswigなんである程度簡単なはずだってこともあったからな。
ああ、なんでOpenGL描画が必要かっていうと当然Rikoで描画したかったから。
最低限マテリアル設定のツールは作らなきゃと思っていて、当然Rikoで描画したくて、出来れば全部Rubyで作りたい。
Rubyで全部作るんじゃなけりゃwxWidgetsでC++のアプリケーション作ちゃって、そこでrubyインタプリタ呼べばいいだけだもんな。
*1 もしくは簡単に作れて
名前。
Reignって名前を考えたんだけど。
Ruby Extension for Interactive Graphics なんたらって感じで。
そしたら最後のnが思い付かないんですよ。
いや、俺は「なんたら」のnでもいいんですがね。
…出直して来ます。
お、reignって支配とか統治とかいう意味があるらしい。あんまり良さげな名前じゃないな。
やっぱり語感だけで考えるのも無理あるか。