DirectXの問題は一応解決

概要

前回の日記で述べたVer問題は大体解決。
一部処理速度が大幅に落ちる箇所があったが(文字横幅計測をTextRendererに戻した)、基本的にMicrosoft.DirectX.dll、Microsoft.DirectX.Direct3D.dll、Microsoft.DirectX.Direct3DX.dllの三つを使用する形式とし、この三つのバージョンを1.0.2902.0で揃えた。
Microsoft.DirectX.dllの2.x系を使うと、この一つを参照するだけですみ、かつこれをプライベートアセンブリで配布することを推奨するという方針でいくと推測しているが、今のところはβなので配布手順までは確立されてない。Vistaではおそらく合わせてくるのだろうが、現状の配布パッケージには使えないということだろう。
で、Microsoft.DirectX.Direct3DX.dllは一つだけ短期間にバージョンアップを繰り返していて、なんと1.0.29.10まである。つまり他のものより8回も多くバージョンアップしているので、行われているであろうバグフィックスを考えれば新しいものを使おうかとも思ったのだが、正直そこまで検証はしていられないので今回はあえてバージョン統一としている。
これで問題が出たらその時はまた責任を持って考えるとしよう。

Managed DirectXの配布

しかしManaged DirectX(以下MDX)の配布はなんと面倒くさいことか・・。
ひとまずFebruary 2006のRedistをインストールしてもらえば動くよという話にはもっていったが、もし私が使用者であればこんな面倒くさい手順は絶対に踏みたくはない。
http://www.microsoft.com/downloads/details.aspx?familyid=FFF5ED7D-3446-4583-B2C9-8DB1BC10B16E&displaylang=en


色々と調べてはみたのだが、再頒布パッケージはMicrosoftの公式文献に、要約するとカップリングで配布するなら好きにしていいよと記述してある。
で、これをWindows Update等からインストールした人でも動作出来るように、MDXのDLLだけプライベートに配布できないかと調べていたのだが、グローバルアセンブリとして登録されているこれらは本来プライベートアセンブリとしての配布を認めていないのか、私の調査能力では正式な声明を発見することが出来なかった。
※可不可は見当たらず、全部再頒布パッケージに関する声明を見ろという記述になっていた。
よって自分なら嫌だと思うやり方で決着させてしまったのだ。
ちなみにMDXがグローバルアセンブリに登録されていない環境で、かつDirectX9がインストール済みの環境であれば、MDXのDLLをプライベートアセンブリで配布するだけで動作するところまでは確認していた。
もしこの配布方法がライセンス的に許されるのであれば、ユーザーの英語と格闘する手間を減らしてあげる意味でもこの方法を使用することを願う。

愚痴

まあ元々Vistaをターゲットとしていたエディタの前倒しリリースだから、現状リリースに不備が出るのは仕方ないかなと考えようとはするのだが、3月の時点でManaged DirectXに対する事前知識があればそもそもDirectXなんて選択肢にさえ上がらず、おとなしくAvalonまでパフォーマンス向上を待ったのにと思うと悔やまれてならない。

ということで

現在時刻を持って本問題は一通りの決着を見たので、あとは配布ページに再頒布パッケージを載せて、一通り動作確認して、ちょっとインストールに関する補足を載せて、最終的なWitchTreeのインストール媒体を作成すれば、ようやくこの厄介な息子を世に送り出す事が出来そうだ。
もう一息だな。