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 |