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 内容