IDXGISwapChain3::ResizeBuffers1 メソッド (dxgi1_4.h)
スワップ チェーンのバック バッファー サイズ、形式、バッファー数を変更します。このバッファーは、入力デバイスとして D3D12 コマンド キューを使用してスワップ チェーンが作成されました。 これは、アプリケーション ウィンドウのサイズを変更するときに呼び出す必要があります。
構文
HRESULT ResizeBuffers1(
[in] UINT BufferCount,
[in] UINT Width,
[in] UINT Height,
[in] DXGI_FORMAT Format,
[in] UINT SwapChainFlags,
[in] const UINT *pCreationNodeMask,
[in] IUnknown * const *ppPresentQueue
);
パラメーター
[in] BufferCount
型: UINT
スワップ チェーン内のバッファーの数 (すべてのバック バッファーとフロント バッファーを含む)。 この数は、スワップ チェーンを作成したバッファーの数とは異なる場合があります。 この数値を DXGI_MAX_SWAP_CHAIN_BUFFERSより大きくすることはできません。 スワップ チェーン内のバッファーの既存の数を保持するには、この数を 0 に設定します。 フリップ プレゼンテーション モデルには、2 つ未満のバッファーを指定することはできません。
[in] Width
型: UINT
バック バッファーの新しい幅。 ゼロを指定した場合、DXGI はターゲット ウィンドウのクライアント領域の幅を使用します。 IDXGIFactory2::CreateSwapChainForComposition メソッドを呼び出してコンポジション サーフェスのスワップ チェーンを作成した場合、幅をゼロとして指定することはできません。
[in] Height
型: UINT
バック バッファーの新しい高さ。 ゼロを指定した場合、DXGI はターゲット ウィンドウのクライアント領域の高さを使用します。 IDXGIFactory2::CreateSwapChainForComposition メソッドを呼び出してコンポジション サーフェスのスワップ チェーンを作成した場合、高さをゼロとして指定することはできません。
[in] Format
種類: DXGI_FORMAT
バック バッファーの新しい形式の DXGI_FORMAT型指定された値。 バック バッファーの既存 の 形式を保持するには、この値を DXGI_FORMAT_UNKNOWN に設定します。 フリップ プレゼンテーション モデルでは、ビット ブロック転送 (bitblt) モデルよりも制限された形式のセットがサポートされています。
[in] SwapChainFlags
型: UINT
ビットごとの OR 演算を使用して結合される DXGI_SWAP_CHAIN_FLAG型指定された値の組み合わせ。 結果の値は、スワップ チェーン動作のオプションを指定します。
[in] pCreationNodeMask
型: const UINT*
合計サイズ BufferCount の UD の配列。値は、バック バッファーを作成するノードを示します。 Null 以外の pCreationNodeMask 配列で ResizeBuffers1 を使用して作成されたバッファーは、すべてのノードに表示されます。
[in] ppPresentQueue
種類: IUnknown*
合計サイズ BufferCount のコマンド キュー (ID3D12CommandQueue インスタンス) の配列。 指定する各キューは、 pCreationNodeMask 配列で指定された対応する作成ノード マスクと一致する必要があります。 Present() が呼び出されると、次のフレームの次のバッファーに回転するだけでなく、スワップチェーンもこれらのコマンド キューを介してローテーションされます。 これにより、アプリは、特定の現在の操作に対して同期が必要なキューを制御できます。
戻り値
型: HRESULT
成功した場合はS_OKを返します。それ以外の場合はエラー コード。 エラー コードの一覧については、「 DXGI_ERROR」を参照してください。
解説
このメソッドは、入力デバイスとして D3D12 コマンド キュー (ID3D12CommandQueue) を使用してスワップチェーンが作成された場合にのみを呼び出すために有効です。
マルチ GPU アダプターでスワップチェーンが作成されると、すべてのバックバッファーがノード 1 に作成され、1 つのコマンド キューのみがサポートされます。 ResizeBuffers1 を使用すると、アプリケーションは異なるノードにバックバッファーを作成し、各ノードで異なるコマンド キューを使用できます。 これらの機能により、代替フレーム レンダリング (AFR) 手法をスワップチェーンで使用できます。 「マルチアダプター システム」を参照してください。
また、 IDXGISwapChain::ResizeBuffers の「解説」セクションも参照してください。これらはすべて ResizeBuffers1 に関連しています。
要件
対象プラットフォーム | Windows |
ヘッダー | dxgi1_4.h |
Library | Dxgi.lib |