2011年1月13日木曜日

DirectX マルチモニタ フルスクリーンまとめ

Ee415671.dxgi_terms(ja-jp,VS.85).gif
なぜフルスクリーンは高速か
フルスクリーン アプリケーションで Present を呼び出した場合、スワップ チェーンはバック バッファーのコンテンツをフロント バッファーに切り替えます (ビット ブロック転送するのではありません)。

マルチモニタ処理

  • フルスクリーンのデバイスを作成した同じ Direct3D オブジェクトによって作成されている。
  • フルスクリーンのデバイスと同じフォーカス ウィンドウを持つ。
  • どのフルスクリーン デバイスとも異なるアダプタを表す。
このカテゴリのデバイスにはリセット処理や作成処理に関する制限はなく、消失状態にならない。このカテゴリのデバイスは、フルスクリーン モードにすることもできる。

フォーカスウィンドウ:DirectX9にしかない

HRESULT SetFullscreenState(   BOOL Fullscreen,   IDXGIOutput *pTarget );
これでOutputを直接指定することができる
処理に失敗した場合は、DXGI_ERROR_NOT_CURRENTLY_AVAILABLE を返します。全画面スワップ チェーンをウィンドウ モードに切り替えられない場合、さまざまな理由があります。次に例を示します。
  • アプリケーションがターミナル サーバー経由で実行されている。
  • 出力ウィンドウが遮断されている。
  • 出力ウィンドウにキーボード フォーカスがない。
  • 他のアプリケーションが既に全画面モードになっている。

0 件のコメント:

コメントを投稿