DXRuby1.0.8を考える

DXRuby1.0.7をリリースしたのが11月。
そこから出た不具合も、言うほど致命的なものがなかったので放置してきたが、いい加減たまってきたのと、1.1系の修正も面倒なのとか難しいのとかが残ってきたので気分転換に1.0.8を考える。
まったくもっていい加減。ロードマップとか無いし。


FontオブジェクトがGCに回収されてもフォントハンドルを解放し忘れてるとか、外からinitializeが呼べてしまうとかは細かい不具合だ。
フォントのんは例えば10000回ぐらいオブジェクトを作ったり消したりすればリソース不足で作れなくなるが、そんなやつはいないんじゃないかと思う。
大きいほうではinitializeをオーバーライドしてsuperを呼び忘れるとコケるとか、フルスクリーンでalt+tabして切り替えると戻せなくなるとか。フルスクリーンのやつは最近気づいた。これは結構致命的だった。


不具合修正だけでも価値はあるのだろうと思うが、せっかくだから今まで勉強してきた技術を突っ込んで性能・機能を強化することにした。
まず、描画系をちょっとだけ手直しして、全体的な描画性能を少し上げる。
それから、このあいだのハッシュのやつを導入してWindow.drawExの性能を大幅に上げる。
あと、Viewportの不具合は一応修正はしたが、色々試してたらやっぱり問題がありそうだったから、これは廃止する方向。まともに動かせないメソッドを残しておいても厄介な問題にしかならない。ちなみにFreeRGSSのような仕様なら問題はなかったんじゃないかと思う。これは仕様レベルの不具合だ。
んで、なくなったらなくなったで困るから、1.1系で追加したRenderTargetをバックポートしようかなー、とか。
描画の仕組みが1.1系とは違うからそのまま使えるかどうかはわからないが、もともと3Dは描画系の書き直しが必須だから1.1で対応となっただけで、どっちかというとRenderTargetは1.0にこそ実装すべき技術だ。
Shaderも2D用エフェクトとしては非常に強力だから欲しいところだが、仕様が全然固まってないし、やるとしてもまだ先だろう。1.2が早くリリースできるならいらないし。


ってことで、不具合修正以外に新しい機能追加、性能向上などもあり、なかなか面白い新バージョンになるのではないか、と思う。