Share via


IDXGIFactory::CreateSwapChain

スワップ チェーンを作成します。

HRESULT 
CreateSwapChain(
  IUnknown *pDevice,
  DXGI_SWAP_CHAIN_DESC *pDesc,
  IDXGISwapChain **ppSwapChain
);

パラメータ

  • pDevice
    スワップ チェーンに 2D イメージを書き込むデバイスへのポインター。
  • pDesc
    スワップ チェーンの記述へのポインター (DXGI_SWAP_CHAIN_DESC を参照)。このパラメーターを NULL にすることはできません。
  • ppSwapChain
    作成されたスワップ チェーンへのポインター (IDXGISwapChain を参照)。

戻り値

pDesc または ppSwapChain が NULL の場合は、DXGI_ERR_INVALIDCALL。フルスクリーン モードを要求して利用不可の場合は、DXGI_STATUS_OCCLUDED。または、E_OUTOFMEMORY。渡されるデバイスのタイプによっては、その他のエラー コードが返される場合もあります。

解説 

フルスクリーン モードでスワップ チェーンの作成を試みて、フルスクリーン モードが利用不可の場合には、スワップ チェーンはウィンドウ モードで作成され、DXGI_STATUS_OCCLUDED が返されます。

バッファー幅またはバッファー高が 0 の場合は、スワップ チェーンの出力ウィンドウのサイズからサイズが推測されます。

スワップ チェーンが作成されるときにターゲット出力を明示的に選択することはできないため、フルスクリーン スワップ チェーンを作成しないでください。フルスクリーン モードで作成すると、スワップ チェーンのサイズと出力ウィンドウのサイズが一致しない場合に、表示パフォーマンスが低下する可能性があります。サイズを一致させるには、次の 2 つの方法があります。

  • ウィンドウ モードでスワップ チェーンを作成してから、IDXGISwapChain::SetFullscreenState を使用してフルスクリーン モードに設定する。
  • スワップ チェーンの作成直後にスワップ チェーンへのポインターを保存し、WM_SIZE イベントの実行中にそのポインターを使用して出力ウィンドウのサイズを取得する。次に、IDXGISwapChain::ResizeBuffers を使用して、ウィンドウ モードからフルスクリーン モードへの切り替えでスワップ チェーン バッファーのサイズを変更します。

要件

ヘッダー: DXGI.h 宣言

ライブラリ: DXGI.lib 内容

関連項目

DXGI のインターフェイス