IDXGIFactory2::CreateSwapChainForHwnd メソッド (dxgi1_2.h)

スワップ チェーンの出力ウィンドウに HWND ハンドルに関連付けられているスワップ チェーンを作成します。

構文

HRESULT CreateSwapChainForHwnd(
  [in]           IUnknown                              *pDevice,
  [in]           HWND                                  hWnd,
  [in]           const DXGI_SWAP_CHAIN_DESC1           *pDesc,
  [in, optional] const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
  [in, optional] IDXGIOutput                           *pRestrictToOutput,
  [out]          IDXGISwapChain1                       **ppSwapChain
);

パラメーター

[in] pDevice

Direct3D 11 以前のバージョンの Direct3D の場合、これはスワップ チェーンの Direct3D デバイスへのポインターです。 Direct3D 12は、直接コマンド キューへのポインターです (ID3D12CommandQueue を参照してください)。 このパラメーターを NULL にすることはできません。

[in] hWnd

CreateSwapChainForHwnd によって作成されるスワップ チェーンに関連付けられている HWND ハンドル。 このパラメーターを NULL にすることはできません。

[in] pDesc

スワップ チェーン記述の DXGI_SWAP_CHAIN_DESC1 構造体へのポインター。 このパラメーターを NULL にすることはできません。

[in, optional] pFullscreenDesc

全画面表示スワップ チェーンの説明の DXGI_SWAP_CHAIN_FULLSCREEN_DESC 構造体へのポインター。 必要に応じて、このパラメーターを設定して、全画面表示のスワップ チェーンを作成できます。 ウィンドウ化されたスワップ チェーンを作成するには、 NULL に設定します。

[in, optional] pRestrictToOutput

コンテンツを制限する出力の IDXGIOutput インターフェイスへのポインター。 また、IDXGISwapChain1::P resent1 呼び出しでDXGI_PRESENT_RESTRICT_TO_OUTPUT フラグを渡して、他の出力でコンテンツが強制的に黒く表示されるようにする必要があります。 コンテンツを別の出力に制限する場合は、新しいスワップ チェーンを作成する必要があります。 ただし、 DXGI_PRESENT_RESTRICT_TO_OUTPUT フラグに基づいてコンテンツを条件付きで制限できます。

コンテンツを出力ターゲットに制限しない場合は、このパラメーターを NULL に設定します。

[out] ppSwapChain

CreateSwapChainForHwnd によって作成されるスワップ チェーンの IDXGISwapChain1 インターフェイスへのポインターを受け取る変数へのポインター。

戻り値

CreateSwapChainForHwnd は 次を返します。

  • スワップ チェーンが正常に作成された場合にS_OKします。
  • 操作を完了するためにメモリが使用できない場合にE_OUTOFMEMORYします。
  • pDesc または ppSwapChainNULL の場合や pDesc データ メンバーが無効な場合など、呼び出し元のアプリケーションが無効なデータを提供した場合にDXGI_ERROR_INVALID_CALLします。
  • pDevice に渡すデバイスの種類によって定義されている、DXGI_ERRORトピックで説明されているその他のエラー コードが考えられます。

Windows 7 用プラットフォーム更新プログラム: DXGI_SCALING_NONE は、Windows 7 用プラットフォーム更新プログラム がインストールされている Windows 7 または Windows Server 2008 R2 ではサポートされていないため、 CreateSwapChainForHwnd が呼び出されたときにDXGI_ERROR_INVALID_CALLを返します。 Windows 7 用プラットフォーム更新プログラムの詳細については、「Windows 7 用プラットフォーム更新プログラム」を参照してください。

注釈

メモ Windows ストア アプリでは、このメソッドを使用しないでください。 代わりに、 IDXGIFactory2::CreateSwapChainForCoreWindow を使用します。
 
スワップ チェーンの幅、高さ、またはその両方 (pDesc が指DXGI_SWAP_CHAIN_DESC1Width メンバーと Height メンバー) を 0 として指定すると、ランタイムは hWnd パラメーターが指定する出力ウィンドウからサイズを取得します。

その後、 IDXGISwapChain1::GetDesc1 メソッドを呼び出して、割り当てられた幅または高さの値を取得できます。

一度に 1 つのフリップ プレゼンテーション モデル スワップ チェーンを HWND に関連付けることができるため、オブジェクトの破棄を延期する Microsoft Direct3D 11 ポリシーでは、フリップ プレゼンテーション モデルのスワップ チェーンを破棄して別のスワップ チェーンに置き換えようとすると、問題が発生する可能性があります。 この状況の詳細については、「 Flip Presentation Swap Chains での遅延破棄の問題」を参照してください。

スワップ チェーンのバック バッファーの形式を選択する方法については、「 色空間のデータを変換する」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 7 のWindows 8とプラットフォーム更新プログラム [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 のWindows Server 2012とプラットフォーム更新プログラム [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー dxgi1_2.h
Library Dxgi.lib

こちらもご覧ください

最適なパフォーマンスを得るには、DXGI フリップ モデルを使用します

IDXGIFactory2