Share via


Método IDXGISwapChain3::ResizeBuffers1 (dxgi1_4.h)

Altera o tamanho, o formato e o número de buffers do buffer de fundo da cadeia de troca, em que a cadeia de troca foi criada usando uma fila de comandos D3D12 como um dispositivo de entrada. Isso deve ser chamado quando a janela do aplicativo é redimensionada.

Sintaxe

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
);

Parâmetros

[in] BufferCount

Tipo: UINT

O número de buffers na cadeia de troca (incluindo todos os buffers traseiros e frontais). Esse número pode ser diferente do número de buffers com os quais você criou a cadeia de troca. Esse número não pode ser maior que DXGI_MAX_SWAP_CHAIN_BUFFERS. Defina esse número como zero para preservar o número existente de buffers na cadeia de troca. Não é possível especificar menos de dois buffers para o modelo de apresentação de inversão.

[in] Width

Tipo: UINT

A nova largura do buffer de fundo. Se você especificar zero, o DXGI usará a largura da área do cliente da janela de destino. Não é possível especificar a largura como zero se você chamou o método IDXGIFactory2::CreateSwapChainForComposition para criar a cadeia de troca para uma superfície de composição.

[in] Height

Tipo: UINT

A nova altura do buffer de fundo. Se você especificar zero, o DXGI usará a altura da área do cliente da janela de destino. Não é possível especificar a altura como zero se você chamou o método IDXGIFactory2::CreateSwapChainForComposition para criar a cadeia de troca para uma superfície de composição.

[in] Format

Tipo: DXGI_FORMAT

Um valor de tipo DXGI_FORMAT para o novo formato do buffer de fundo. Defina esse valor como DXGI_FORMAT_UNKNOWN para preservar o formato existente do buffer de fundo. O modelo de apresentação flip dá suporte a um conjunto mais restrito de formatos do que o modelo de transferência de bloco de bits (bitblt).

[in] SwapChainFlags

Tipo: UINT

Uma combinação de valores de tipo DXGI_SWAP_CHAIN_FLAG que são combinados usando uma operação OR bit a bit. O valor resultante especifica opções para o comportamento da cadeia de troca.

[in] pCreationNodeMask

Tipo: const UINT*

Uma matriz de UINTs, de tamanho total BufferCount, em que o valor indica em qual nó o buffer de fundo deve ser criado. Buffers criados usando ResizeBuffers1 com uma matriz pCreationNodeMask não nula são visíveis para todos os nós.

[in] ppPresentQueue

Tipo: IUnknown*

Uma matriz de filas de comandos (instâncias ID3D12CommandQueue ), de tamanho total BufferCount. Cada fila fornecida deve corresponder à máscara de nó de criação correspondente especificada na matriz pCreationNodeMask . Quando Present() for chamado, além de girar para o próximo buffer para o próximo quadro, a cadeia de troca também girará por essas filas de comandos. Isso permite que o aplicativo controle qual fila requer sincronização para uma determinada operação atual.

Valor retornado

Tipo: HRESULT

Retorna S_OK se tiver êxito; caso contrário, um código de erro. Para obter uma lista de códigos de erro, consulte DXGI_ERROR.

Comentários

Esse método só é válido para chamar quando a cadeia de troca foi criada usando uma fila de comandos D3D12 (ID3D12CommandQueue) como um dispositivo de entrada.

Quando uma cadeia de troca é criada em um adaptador de várias GPUs, os backbuffers são criados no nó 1 e há suporte apenas para uma única fila de comandos. O ResizeBuffers1 permite que os aplicativos criem backbuffers em nós diferentes, permitindo que uma fila de comandos diferente seja usada com cada nó. Esses recursos permitem que técnicas alternativas de renderização de quadro (AFR) sejam usadas com a cadeia de troca. Confira Sistemas multi-adaptadores.

Consulte também a seção Comentários em IDXGISwapChain::ResizeBuffers, que é relevante para ResizeBuffers1.

Requisitos

   
Plataforma de Destino Windows
Cabeçalho dxgi1_4.h
Biblioteca Dxgi.lib

Confira também

IDXGISwapChain3