ミコソフトスライドショー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 になっていたんでしょうか?
何か開発者の意図した理由があるような気がするんですが、謎です。
…
まあ、この謎は謎のままにしておいた方が良い謎なのかもしれませんね。(笑)