ミコソフトスライドショーXのMDXGameクラスへの移植作業が一通り終わりました。


ざっと動かしてみると、XNA版よりも更新に時間がかかっているようです。


以降は、更新に時間がかかっている原因調査とチューニングですね。


…それは、まあ、明日からということにして…


移植作業中に Managed DirectX のDirect3DX の関係する機能については、バージョン間で違いがあることに気づきました。


今回気づいたのは、SpriteクラスのDirect2Dメソッドですが、他にもあるんでしょうね。


それはさておいて、問題のDirect2Dメソッドですが、当初バージョンが 1.0.2902.0 のものを使用していたのですが、正しくパラメータを設定しているにも関わらず、描画ループ内で連続更新を行うと、位置とサイズに時間的なずれが発生してしまうため、最新バージョン 1.0.2911.0 に替えてみました。


そして、バージョンを替えて、コンパイルすると…


第3引数の型が違うというコンパイルエラーが報告されるではないですか!


そう、Managed DirectX のSprite.Draw2Dを使ったことのある方には、漏れなく共感していただけると思う、あの判りにくい第3引数です!


その第3引数が、バージョン 1.0.2011.0 では、Rectangle から SizeF に変更されていたのです!


早速、書き換えて動かしてみると、位置とサイズの時間的なずれが解消されています。


流石、10回もアップデートされていると、そこらへんはきちんと対策されていますね。


それにしても、この第3引数、ドキュメントにも表示サイズと記述されているのですが、何故、初期のバージョンでは Rectangle になっていたんでしょうか?


何か開発者の意図した理由があるような気がするんですが、謎です。



まあ、この謎は謎のままにしておいた方が良い謎なのかもしれませんね。(笑)