Microsoft.WindowsMobile.DirectX.Direct3D.Deviceクラスのnew

W-ZERO3においては、「横画面」だとどんなパラメータであっても失敗します。その上、Exceptionの内容が数字エラーコード(0x80004005:E_FAIL(Unspecified Error))。
原因がざっぱりわからず、午後いっぱいかけてしまいました(;_;)。
悔しいのでC#による初期化コード。

PresentParameters presentParams = new PresentParameters();
presentParams.Windowed = true;
presentParams.SwapEffect = SwapEffect.Discard;
presentParams.AutoDepthStencilFormat = DepthFormat.D16;
presentParams.EnableAutoDepthStencil = true;

device = new Device(0, DeviceType.Default, this,
CreateFlags.None, presentParams);

……え?サンプルと一緒?
でも動くようになるまでむちゃくちゃかかったんですよー(;_;)。


だけでは情報がないので、いくつか。

  • Manager.CheckDeviceType(0, DeviceType.Default, Format.R5G6B5, Format.Unknown, true)

必ず失敗します。これは、W-ZERO3にはHALが乗っていないから。でも、Windowss Mobileにおいては、HALがなくてもいいみたい。うーむ。

  • sdカード上にデータとバイナリを配置するには

巨大なリソースをアプリだと、配置するだけで本体メモリを使い切っちゃいますが、sdカード上に置けばまずは一安心です。

各プロジェクトの「プロパティ」で
バイス
出力ファイル フォルダの... を開く
バイス上の出力場所 の「ルートフォルダ」を選択
サブディレクトリに「miniSDカード\」を先頭に追加

巨大なリソースって……ギャルゲでも作るつもり(笑)?>自分

コントロールライブラリは、DLLの形にビルドされます。手始めに、NotepadWMで使っているクラスをdllにしてみようかな。