Поделиться через


Метод 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

См. также раздел

IDXGISwapChain3