Compartilhar via


Método IDXGIFactory2::CreateSwapChainForHwnd (dxgi1_2.h)

Cria uma cadeia de troca associada a um identificador HWND para a janela de saída da cadeia de troca.

Sintaxe

HRESULT CreateSwapChainForHwnd(
  [in]           IUnknown                              *pDevice,
  [in]           HWND                                  hWnd,
  [in]           const DXGI_SWAP_CHAIN_DESC1           *pDesc,
  [in, optional] const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
  [in, optional] IDXGIOutput                           *pRestrictToOutput,
  [out]          IDXGISwapChain1                       **ppSwapChain
);

Parâmetros

[in] pDevice

Para Direct3D 11 e versões anteriores do Direct3D, esse é um ponteiro para o dispositivo Direct3D para a cadeia de troca. Para Direct3D 12, esse é um ponteiro para uma fila de comandos direta (consulte ID3D12CommandQueue). Esse parâmetro não pode ser NULL.

[in] hWnd

O identificador HWND associado à cadeia de troca criada por CreateSwapChainForHwnd . Esse parâmetro não pode ser NULL.

[in] pDesc

Um ponteiro para uma estrutura DXGI_SWAP_CHAIN_DESC1 para a descrição da cadeia de troca. Esse parâmetro não pode ser NULL.

[in, optional] pFullscreenDesc

Um ponteiro para uma estrutura DXGI_SWAP_CHAIN_FULLSCREEN_DESC para a descrição de uma cadeia de troca de tela inteira. Opcionalmente, você pode definir esse parâmetro para criar uma cadeia de troca de tela inteira. Defina-o como NULL para criar uma cadeia de troca em janelas.

[in, optional] pRestrictToOutput

Um ponteiro para a interface IDXGIOutput para a saída para restringir o conteúdo. Você também deve passar o sinalizador DXGI_PRESENT_RESTRICT_TO_OUTPUT em uma chamada IDXGISwapChain1::P resent1 para forçar o conteúdo a aparecer apagado em qualquer outra saída. Se você quiser restringir o conteúdo a uma saída diferente, deverá criar uma nova cadeia de troca. No entanto, você pode restringir condicionalmente o conteúdo com base no sinalizador DXGI_PRESENT_RESTRICT_TO_OUTPUT .

Defina esse parâmetro como NULL se você não quiser restringir o conteúdo a um destino de saída.

[out] ppSwapChain

Um ponteiro para uma variável que recebe um ponteiro para a interface IDXGISwapChain1 para a cadeia de troca criada por CreateSwapChainForHwnd .

Retornar valor

CreateSwapChainForHwnd retorna:

  • S_OK se ele criou com êxito uma cadeia de troca.
  • E_OUTOFMEMORY se a memória não estiver disponível para concluir a operação.
  • DXGI_ERROR_INVALID_CALL se o aplicativo de chamada forneceu dados inválidos, por exemplo, se pDesc ou ppSwapChain for NULL ou membros de dados pDesc forem inválidos.
  • Possivelmente outros códigos de erro descritos no tópico DXGI_ERROR que são definidos pelo tipo de dispositivo que você passa para pDevice.

Atualização de plataforma para Windows 7: não há suporte para DXGI_SCALING_NONE no Windows 7 ou no Windows Server 2008 R2 com a Atualização de Plataforma para Windows 7 instalada e faz com que CreateSwapChainForHwnd retorne DXGI_ERROR_INVALID_CALL quando chamado. Para obter mais informações sobre a Atualização de Plataforma para Windows 7, consulte Atualização de plataforma para Windows 7.

Comentários

Nota Não use esse método em aplicativos da Windows Store. Em vez disso, use IDXGIFactory2::CreateSwapChainForCoreWindow.
 
Se você especificar a largura, altura ou ambos (membros Width e Height de DXGI_SWAP_CHAIN_DESC1 para os quais pDesc aponta) da cadeia de troca como zero, o runtime obterá o tamanho da janela de saída especificada pelo parâmetro hWnd .

Posteriormente, você pode chamar o método IDXGISwapChain1::GetDesc1 para recuperar o valor de largura ou altura atribuído.

Como você pode associar apenas uma cadeia de troca de modelo de apresentação flip por vez a um HWND, a política do Microsoft Direct3D 11 de adiar a destruição de objetos pode causar problemas se você tentar destruir uma cadeia de troca de modelo de apresentação flip e substituí-la por outra cadeia de troca. Para obter mais informações sobre essa situação, consulte Problemas de destruição adiada com cadeias de troca de apresentação flip.

Para obter informações sobre como escolher um formato para o buffer traseiro da cadeia de troca, consulte Convertendo dados para o espaço de cor.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 e Atualização de Plataforma para Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2012 e Atualização de Plataforma para Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho dxgi1_2.h
Biblioteca Dxgi.lib

Confira também

Para obter melhor desempenho, use o modelo de inversão DXGI

IDXGIFactory2