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 以保留后台缓冲区的现有格式。 翻转表示模型支持比位块传输 (bitblt) 模型更受限的格式集。
[in] SwapChainFlags
类型: UINT
使用按位 OR 运算组合的 DXGI_SWAP_CHAIN_FLAG类型值的组合。 生成的值指定交换链行为的选项。
[in] pCreationNodeMask
类型: const UINT*
总大小为 BufferCount 的 UINT 数组,其中值指示应在哪个节点上创建后台缓冲区。 使用 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 |
Library | Dxgi.lib |