なんというか、無茶だ

Imageクラスの修正。
規模でかすぎな上に複雑で、能力の限界を超え気味。
とりあえず単純な矩形転送をStretchRectで実装してみたが、やっぱりGetRenderTargetDataが死ぬほど遅い。
これでできればよかったのだが、この対策のためにかかる手間が膨大すぎるから、ちょっと先送りすることにしよう。
Imageオブジェクトに自由に描画できたらいいなあ、とは思うのだけども。
DirectXのデバイスロストとRubyから扱えるデータオブジェクトの概念との絡みが凶悪な縛りになっている。


と、いうわけでDXRubyの新バージョンでは機能追加は以下の4点。
・Image#copyRect(単純矩形転送)、Image#draw(αあり矩形転送)、Image#drawFont追加
・Window.drawSub(減算合成描画)、DrawExに:subキー追加。
・Window.setViewport(ビューポート設定)追加
・ゲームループ分解
現状、とくに急ぐ理由もなさそうだから、ついでにコンパイルの最適化オプションをつけて、おかしな動作をしないか一通りチェックしよう。
z値を解放するモードは、これを追加するだけでかなりややこしいことになる予感がするから、とりあえず保留。
リリース目標は来週あたりとしておこう。


ところで、さっきなんとなくStar Rubyのフォーラムを眺めていたら、ゲームループの分解を随分前にやってたのを発見した。
考えることがほんとに似ているらしい。
似てはいるが、フォーラム内の質問やらなんやらの回答を見ていると、色々と違う点もちらほら見え隠れする。
このあたりはなかなか面白いから、こんどゆっくり考えてみよう。