Share via


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。 將此數位設定為零,以保留交換鏈結中現有的緩衝區數目。 您無法為翻轉簡報模型指定少於兩個緩衝區。

[in] Width

類型: UINT

背景緩衝區的新寬度。 如果您指定零,DXGI 會使用目標視窗工作區的寬度。 如果您呼叫 IDXGIFactory2::CreateSwapChainForComposition 方法來建立組合介面的交換鏈結,則無法將寬度指定為零。

[in] Height

類型: UINT

背景緩衝區的新高度。 如果您指定零,DXGI 會使用目標視窗工作區的高度。 如果您呼叫 IDXGIFactory2::CreateSwapChainForComposition 方法來建立組合介面的交換鏈結,則無法將高度指定為零。

[in] Format

類型: DXGI_FORMAT

背景緩衝區新格式的 DXGI_FORMAT型別值。 將此值設定為 DXGI_FORMAT_UNKNOWN ,以保留後端緩衝區的現有格式。 翻轉簡報模型支援比 bit-block transfer (bitblt) 模型更受限的格式集。

[in] SwapChainFlags

類型: UINT

使用位 OR 運算結合 的DXGI_SWAP_CHAIN_FLAG型別值組合。 產生的值會指定交換鏈結行為的選項。

[in] pCreationNodeMask

類型: const UINT*

UINT 陣列,大小總計 為 BufferCount,其中值會指出應該在其中建立後端緩衝區的節點。 所有節點都可以看到使用 ResizeBuffers1 與非 Null pCreationNodeMask 陣列建立的緩衝區。

[in] ppPresentQueue

類型: IUnknown*

命令佇列陣列, (ID3D12CommandQueue 實例) 大小總計 BufferCount。 提供的每個佇列都必須符合 pCreationNodeMask 陣列中指定的對應建立節點遮罩。 呼叫 Present () 時,除了旋轉至下一個畫面格的下一個緩衝區之外,交換鏈也會透過這些命令佇列旋轉。 這可讓應用程式控制指定的目前作業需要同步處理的佇列。

傳回值

類型: HRESULT

如果成功,則傳回S_OK;否則為錯誤碼。 如需錯誤碼的清單,請參閱 DXGI_ERROR

備註

只有在使用 D3D12 命令佇列 (ID3D12CommandQueue) 作為輸入裝置建立交換鏈時,這個方法才有效。

在多 GPU 介面卡上建立交換鏈時,所有反緩衝器都會建立在節點 1 上,而且只支援單一命令佇列。 ResizeBuffers1 可讓應用程式在不同的節點上建立反緩衝器,讓不同的命令佇列與每個節點搭配使用。 這些功能可讓替代畫面格轉譯 (AFR) 技術與交換鏈搭配使用。 請參閱 多配接器系統

另請參閱 IDXGISwapChain::ResizeBuffers中的一節,這與 ResizeBuffers1相關。

需求

   
目標平台 Windows
標頭 dxgi1_4.h
程式庫 Dxgi.lib

另請參閱

IDXGISwapChain3