« OS機能を利用してH.264を再生する場合のライセンスを確認する | メイン | HMAC とユーザー認証 »

2014年02月23日

吉里吉里Z 開発:: フルスクリーンとフリックインとモーダルWindow

    

現在の BasicDrawDevice のフルスクリーンは、ウィンドウを全画面化して描画するもので、Direct3D9 を使ったフルスクリーンではない。
Direct3D9 を使ったフルスクリーンでは、他の Window が前に出るとデバイスロストが発生する。
すると、描画できなくなる。
KAG3 の確認ダイアログなどは Window を使用しているので、これに該当する。
KAG3 のように複数 Window を使う形になっていると Direct3D9 を使ったフルスクリーンでは問題が出る。

Window8 では、フリックイン(画面外からのフリック)でメニューなどを出せたりする。
ゲームでも同じようにフリックインでメニューなど出せるといいが、上述のウィンドウの全画面化でフリックインすると標準(デスクトップ)のフリックインが機能し、標準のメニューが出る。
Direct3D9 を使いフルスクリーン化すると、これは機能しなくなり、ゲームでフリックインをハンドリングできる。

ここに相反する問題が存在する。
KAG3 のような複数 Window を使用する構造を止めるのが現実的な解決策。
ただ、ゲーム中の確認ダイアログは全てなくすというのは困る人もいるだろうから、何かしら代替策が必要。

Layer Tree Owner を使用した、複数の Layer Tree を持てる DrawDevice を作っているので、それによってこれらの問題は解決できる見込み。



投稿者 Takenori : 2014年02月23日 01:04




comments powered by Disqus
Total : Today : Yesterday : なかのひと