DXRubyの予定とか

手元のメモを貼り付ける。

不具合
initializeはsingleton_method。
Imageでinitializeを無効にするとコケる。disposeのサポートが必要か?
cloneでのfrozen?とか対応する?
Soundクラスの音が鳴らない問題の調査
Viewportの不具合修正
フォントのhFontの解放漏れ
改善・機能追加
小さい文字描画の品質改善
文字列UTF8スイッチサポート(1.8)、エンコードフリー化(1.9.1)
フォントのboldをtrue/falseに(数字で設定もできる)
hWndを設定して他のウィンドウに描画
ウィンドウサイズ変更機能
Window.snap(スナップショットをImageにする)
擬似3Dサポート
ピクセルシェーダサポートするか?

disposeメソッドで画像を解放するようにすると、それを使う処理すべてに解放済みかどうかをチェックする判定が必要になる。
現状、GCがいつでも動く作りではなく、オブジェクトがいっぱいになった時に動く仕組みだから、メモリを解放するには明示的にGC.startするしかない。
GCというのはメモリを意識しなくてすむようにするためのもので、disposeメソッドで解放できるというのは思想的に間違った設計であり、GC.startするのは間違った使い方である。
が、残念なことにほんとに意識しなくても大丈夫なほどGCは進化していないから、どうにかしないといけないわけだが、俺としてはdisposeメソッドを作るのはRubyGCに対して大変失礼なことだという思いがあって(使い物にならない宣言に等しいという認識)、GC.startしてもらうのが最低限のラインになる。
initializeを無効にしたときの対応は、内部的に解放状態かどうかを保持する必要があって、それができるならdisposeも簡単に作れる。これを追加するかどうかは思想の問題だ。


閑話休題
不具合修正についてはあまり大きな問題になりそうなものは無い。Viewportが使おうと思っても使い物にならないのは問題だが、使う人は少なそうだ。使いにくいし。
改善・機能追加は小さいものから大きいものまでさまざま。
不具合修正して1.0.8をリリースして、開発版として1.1系をスタートさせて、そっちは仕様をいじりながら調整する、という感じにしようかと思う。んで安定版は1.2、と。
1.0系との互換性を取る方向にするか、こだわらない方向にするかは問題だ。使いにくいところを改善したいとも思うから、そこは互換性はできるだけ取るが、完全互換ではない、という感じで行くかもしれない。
メソッド名がアレだからごっそり変えちゃいたいけど、さすがにそれはなー。


ということで、FreeRGSSが一区切りしたらDXRubyをいじりはじめるが、ここに挙げていない不具合を知ってる人がいたら教えてほしい。
原因までは調べなくていいから、現象だけでも。
俺はここに挙げたものしか修正しないから、黙ってて不具合が勝手に直ることは期待してはいけない。