IDXGISwapChain::SetFullscreenState メソッド (dxgi.h)
表示状態をウィンドウまたは全画面表示に設定します。
構文
HRESULT SetFullscreenState(
BOOL Fullscreen,
IDXGIOutput *pTarget
);
パラメーター
Fullscreen
種類: BOOL
表示状態をウィンドウまたは全画面表示に設定するかどうかを指定するブール値。 全画面表示の場合は TRUE 、ウィンドウ表示の 場合は FALSE 。
pTarget
型: [in, optional] IDXGIOutput*
Fullscreen パラメーターに TRUE を渡して表示状態を全画面表示に設定する場合は、必要に応じて、スワップ チェーンを含む出力ターゲットの IDXGIOutput インターフェイスへのポインターにこのパラメーターを設定できます。 このパラメーターを NULL に設定すると、DXGI はスワップ チェーンのデバイスと出力ウィンドウの配置に基づいて出力を選択します。 Fullscreen に FALSE を渡す場合は、このパラメーターを NULL に設定する必要があります。
戻り値
型: HRESULT
このメソッドは、これらの値のいずれかを返します。
- アクションが成功し、スワップ チェーンが要求された状態になった場合にS_OKします。
- アクションが失敗した場合にDXGI_ERROR_NOT_CURRENTLY_AVAILABLEします。 このエラーが返されると、アプリケーションはウィンドウ モードで引き続き実行され、後で全画面表示モードに切り替えることができます。 ウィンドウ モードのスワップ チェーンが全画面表示モードに切り替えられない理由は多数あります。 次に例をいくつか示します。
- アプリケーションはターミナル サーバー経由で実行されています。
- 出力ウィンドウが隠されています。
- 出力ウィンドウにキーボード フォーカスがありません。
- 別のアプリケーションは既に全画面表示モードです。
- この API の呼び出し時に全画面表示/ウィンドウ モード遷移が発生した場合、DXGI_STATUS_MODE_CHANGE_IN_PROGRESSが返されます。
- メモリ不足や別の予期しないエラーが発生した場合のその他のエラー コード。これらのコードは、ハードで連続しないエラーとして扱われる可能性があります。
注釈
DXGI は、エンド ユーザーまたはシステム要求に応じてスワップ チェーンの表示状態を変更する場合があります。
ウィンドウ化されたスワップ チェーンを作成し、エンド ユーザーが SetFullscreenState を使用してスワップ チェーンを全画面表示に変更できるようにすることをお勧めします。つまり、スワップ チェーンを強制的に全画面表示にするには、DXGI_SWAP_CHAIN_DESC の Windowed メンバーを FALSE に設定しないでください。 ただし、スワップ チェーンを全画面表示として作成する場合は、サポートされていない表示モードで作成されたスワップ チェーンによってディスプレイが黒になり、エンド ユーザーに何も表示されない可能性があるため、サポートされている表示モードの一覧もエンド ユーザーに提供します。 また、エンド ユーザーに表示モードの変更を許可する場合は、タイムアウト確認画面またはその他のフォールバック メカニズムを使用することをお勧めします。
Windows ストア アプリに関するメモ
Windows ストア アプリが SetFullscreenState を 呼び出して表示状態を全画面表示に設定すると、 SetFullscreenState は DXGI_ERROR_NOT_CURRENTLY_AVAILABLEで失敗します。IDXGIFactory2::CreateSwapChainForComposition を使用して作成したスワップ チェーンで SetFullscreenState を呼び出すことはできません。
フリップ プレゼンテーション モデルでは、表示状態を全画面表示に切り替えた後、ResizeBuffers を呼び出して、IDXGISwapChain1::P resent1 の呼び出しが成功したことを確認する必要があります。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | dxgi.h |
Library | DXGI.lib |