DXRuby1.5.6dev

前回ブログに書いたのが1.5.2devだったから少し(ていうか随分)間があいたけども、1.5.6devをプロジェクトWikiに置いた。
あれから変わったところは主にInput::IMEモジュールの追加と、文字描画時にAA制御のON/OFFが指定できるようになったところ、他不具合修正である。

Input::IMEは文字および制御キーの入力をさばくことができるようなインターフェイスで、IMEの制御もできて日本語入力も受け付ける。これがあればおそらく通信ゲーでチャット機能などを作ることもできるんじゃないかと思うのだが、IMEの変換ウィンドウの描画はIMEが独自にウィンドウに対して描画してくるようで、DirectXの描画とは相性が悪い。現状、環境によって見えたり見えなかったりする。解決するには変換候補や入力中文字列をIMEから取得してRuby側に渡し、自前でそれらを描画してやるぐらいしかないのかな、と考えている。そのへんのインターフェイスを作ってサンプルで変換ウィンドウ描画を添付するような感じで対策できればよいのだが、ちょっと大変なのでもうちょいあとで。
文字描画のAA制御はいつぞやのバージョンアップで強制AAあり状態になったときに要望が出ていたもので、最近ようやく実装した。グリフ情報をモノクロ2値で受け取るとビット情報になってしまって、描画処理を大幅に修正する必要があって後回しにしていたが、1.5devではグリフ情報キャッシュを持っているのでキャッシュロジックを細工することで割りと簡単に実装できた。

まあ、どっちもDXRubyWSで欲しくなったから作ったというのが実際のところなのだが、そういう要望が既に出ていたからそういう機能でいけると言う話になったわけで、やっぱり人の話は聞いておくのがよいし、欲しいものは要望を出しておくといつか実装されるということなのである。保証はしないけど。