IronRubyとOpenTKで何か作るのを止めてたのはmonoでIronRubyが動かないからだけじゃなかった……。
monoでIronRubyが動かねぇなんてのは言い訳だろ!ということでまたいじろうかと思ったんだけど、LOOX UでANGLE使っても表示みだれちゃうから手を出せないでいたんだった……。ANGLEとGMA500の相性が悪いのかと思ったんだが、Firefoxでkhronos.orgトップページのくるくる回る立方体はちゃんと表示されるので必ずしも全くだめというわけでもないようだ。以前のバージョンでは普通に動いてたしな。じゃあFirefoxのANGLEぱくってくればいいのかとやってみたが自分でビルドしたのとかわらず。初期化パラメータをいくらかいじってみたが全然かわらん。ということはOpenTK+ANGLEとGMA500の相性が悪いとしか言えねぇなぁ。OpenTKのソース確認しながら調べるしかないか。
調べてみたけど悪そうなところは特にないなぁ。原因さっぱりわからず。試しに以前CRubyで作った拡張ライブラリをANGLEのlibEGL.dllとlibGLESv2.dllで動かしてみたらやっぱり表示が乱れてしまった。うひゃあ。GMA500と最近のANGLEの相性が悪いってことか。なんでFirefox内のWebGLはそれっぽく動いてるんだろう……。 OpenTKも自作の拡張ライブラリも使い方が悪いという可能性もなくはないが、使い方というほどいじれる場所もないんだぜ。
ANGLEのサンプルで調べてみるしかねぇか。これは正しく動いた気がするんだよな。……ってやっぱり表示乱れてんじゃねぇか!うう詰んだ。ANGLEまでデバッグする気ねぇぞ。
……できた。Direct3D9Exを使わないようにしたらちゃんと動いた。Intelドライバで新しい機能なんて使っちゃいけなかったんだ!結局ANGLEをいじるところまで手を出しちゃったが、オプション一ついじっただけだし、とにかく解決して一安心だわ。
解決したのはいいんだが通勤中プログラミングは最近進められてないPeerCastStationをやることにしたのでまたグラフィックスいじるのはおあずけに。
けっこう前に出来てたirpack 0.2.6をやっとリリースした。
Rakeタスク追加して、Rakefileで各種オプションやら埋め込むファイルやら指定できるようになった。 コマンド版より便利なので今後はこれが主要な使い方になるんじゃないかと思う。 俺も前からコマンド版はあんまり使ってなくてirpack.rbをrequireして直接使ってたし。
俺的にはもうだいたい完成なんだが、あとはどうしようかなぁ。 やることとしてはgemの埋め込みあたりが思いつくんだけど、俺がIronRubyでgemはあんまり使ってないんだよ。 gemについてもうちょっと詳しくならないといけないしな。
今は実行ファイルしか作れないけど1、クラスライブラリのdllを作れるようにするというのは面白いかもしれない。 なんとかしてクラスとメソッドのシグネチャを指定するとラッパクラスが生成されてC#側からそのクラスが普通に呼び出せる。中身はIronRubyのVM立ち上げてやりとりしてるだけ。というのはいかがでしょうか。 何に使うのかというとIronRubyのホストをしたいけどどうすればいいんだっけ?というのがめんどいのでなんとかしたいだけです。
作るのはそんなに難しくないんだけど、どうやってシグネチャ指定するのよっていうのとどの単位でVM立ち上げればいいんですかねって辺りがちょっと考える必要があるか。ネタ的には結構好きだけど実用性はちょっと疑問なので実際には作らんだろう。リクエストでもあれば別だけど。
やるとすればやっぱりgem埋め込みだな。まあ自分で使うのに欲しいわけじゃないから要望でもない限りPeerCastStation優先な感じだが。
dllも作れるけど普通にMainメソッドがあるだけなのでdllとして実用的ではない。 ↩