Метод 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
Сочетание DXGI_SWAP_CHAIN_FLAG типизированных значений, объединенных с помощью побитовой операции ИЛИ. Полученное значение задает параметры поведения цепочки буферов.
[in] pCreationNodeMask
Тип: const UINT*
Массив UINT общего размера BufferCount, значение которого указывает, на каком узле должен быть создан задний буфер. Буферы, созданные с помощью ResizeBuffers1 с массивом pCreationNodeMask , не равно null, видны всем узлам.
[in] ppPresentQueue
Тип: IUnknown*
Массив очередей команд (экземпляры ID3D12CommandQueue ) общего размера BufferCount. Каждая предоставленная очередь должна соответствовать соответствующей маске узла создания, указанной в массиве pCreationNodeMask . При вызове Метода Present() в дополнение к вращению к следующему буферу для следующего кадра цепочка буферов также будет поворачиваться через эти очереди команд. Это позволяет приложению контролировать, какая очередь требует синхронизации для данной текущей операции.
Возвращаемое значение
Тип: HRESULT
Возвращает S_OK в случае успешного выполнения; в противном случае — код ошибки. Список кодов ошибок см. в разделе DXGI_ERROR.
Комментарии
Этот метод допустим, только если цепочка буферов была создана с помощью очереди команд D3D12 (ID3D12CommandQueue) в качестве устройства ввода.
При создании цепочки буферов на адаптере с несколькими GPU все обратные буферы создаются на узле 1 и поддерживается только одна очередь команд. ResizeBuffers1 позволяет приложениям создавать backbuffers на разных узлах, позволяя использовать с каждым узлом разные очереди команд. Эти возможности позволяют использовать методы альтернативной отрисовки кадров (AFR) с цепочкой буферов. См. статью Системы с несколькими адаптерами.
См. также раздел Примечания в разделе IDXGISwapChain::ResizeBuffers, которые относятся к ResizeBuffers1.
Требования
Целевая платформа | Windows |
Header | dxgi1_4.h |
Библиотека | Dxgi.lib |