片付け頑張ってるってこと以外は特に書くこともない。
引っ越し先でネット使えるまでに間があくんじゃないかという気がしてたが、既にフレッツの線が入ってるところだから即日使えるとのことで安心した。週末引っ越しだから片付け頑張るぞ(体調崩して寝込みながら)。
例外トラップを切ってみたら動くようになったんだけど、だからって何か例外が出てるわけでもない。 何故動くようになったのか謎である。
他に報告もないし、うちの環境が調子悪かっただけなんだろうか。それならそれでいいんだけど……。
ソースを整理したので貼っておきまする。(Gistに貼ったのでRSSでは見れないかも)
OpenTKという.NET用のOpenGL(とか)バインディングを使っちゃってるのでIronRubyでしか動きません1。それ以外の部分は実装依存してないんだけどね。OpenTKを落としてきてOpenTK.dllをスクリプトと同じディレクトリとか読める場所に置いて実行してください。もちろんIronRubyでね。あと当然ながらOpenGL4.0が動く環境じゃないと動かないです。うちではAtom Z3770とA10-7850で動作確認できました。単体GPU持ってないんかよ。
操作方法はコメント書いてある通りなんで。あとフォントデータはM+使ってます。「あいうえお」の5文字分しか入れてないけどね。
フォントのアウトラインデータは基本的にはTrueTypeだけど、始点と終点はつながるように始点を最後に追加してある、直線の場合は端点の中間に制御点が来るように点を追加してある、制御点が連続してる場合は中間に端点が来るように追加してある、など3点で1辺になるように前処理してあります。
普通に描くだけならこれで満足なんだけど、アウトライン描いたりもしたいから、もうちょっとTrueTypeのこと詳しくなりたいねぇ。あとできればOpenTypeも描画できるようにしたい。最近のフリーフォントはOpenTypeの物もそこそこあるもんね。
普通のRubyで使えるOpenGLバインディングとか調べたけど、最低でもglfwあたりは別途用意しなきゃならなかったのと、OpenTKが使い慣れちゃってたのでOpenTK使っちゃった。 ↩