Método IDXGISwapChain::SetFullscreenState (dxgi.h)

Define o estado de exibição como janelas ou tela inteira.

Sintaxe

HRESULT SetFullscreenState(
  BOOL        Fullscreen,
  IDXGIOutput *pTarget
);

Parâmetros

Fullscreen

Tipo: BOOL

Um valor booliano que especifica se o estado de exibição deve ser definido como janela ou tela inteira. TRUE para tela inteira e FALSE para janelas.

pTarget

Tipo: [in, opcional] IDXGIOutput*

Se você passar TRUE para o parâmetro Fullscreen para definir o estado de exibição como tela inteira, opcionalmente, poderá definir esse parâmetro como um ponteiro para uma interface IDXGIOutput para o destino de saída que contém a cadeia de troca. Se você definir esse parâmetro como NULL, o DXGI escolherá a saída com base no dispositivo da cadeia de troca e no posicionamento da janela de saída. Se você passar FALSE para Fullscreen, deverá definir esse parâmetro como NULL.

Retornar valor

Tipo: HRESULT

Esse método retorna um desses valores.

  • S_OK se a ação foi bem-sucedida e a cadeia de troca foi colocada no estado solicitado.
  • DXGI_ERROR_NOT_CURRENTLY_AVAILABLE se a ação falhou. Quando esse erro é retornado, seu aplicativo pode continuar a ser executado no modo de janela e tentar alternar para o modo de tela inteira mais tarde. Há muitos motivos pelos quais uma cadeia de troca de modo em janelas não pode alternar para o modo de tela inteira. Aqui estão alguns exemplos.
    • O aplicativo está em execução no Terminal Server.
    • A janela de saída é ocluída.
    • A janela de saída não tem o foco do teclado.
    • Outro aplicativo já está no modo de tela inteira.
  • DXGI_STATUS_MODE_CHANGE_IN_PROGRESS será retornado se uma transição de modo de tela inteira/janela estiver ocorrendo quando essa API for chamada.
  • Outros códigos de erro se você ficar sem memória ou encontrar outra falha inesperada; esses códigos podem ser tratados como erros difíceis e não contínuos.

Comentários

O DXGI pode alterar o estado de exibição de uma cadeia de troca em resposta a solicitações do usuário final ou do sistema.

Recomendamos que você crie uma cadeia de troca em janelas e permita que o usuário final altere a cadeia de troca para tela inteira por meio de SetFullscreenState; ou seja, não defina o membro Windowed do DXGI_SWAP_CHAIN_DESC como FALSE para forçar a cadeia de troca a ser de tela inteira. No entanto, se você criar a cadeia de troca como tela inteira, também forneça ao usuário final uma lista de modos de exibição com suporte porque uma cadeia de troca criada com um modo de exibição sem suporte pode fazer com que a exibição fique preta e impedir que o usuário final veja qualquer coisa. Além disso, recomendamos que você tenha uma tela de confirmação de tempo limite ou outro mecanismo de fallback ao permitir que o usuário final altere os modos de exibição.

Anotações para aplicativos da Windows Store

Se um aplicativo da Windows Store chamar SetFullscreenState para definir o estado de exibição como tela inteira, SetFullscreenState falhará com DXGI_ERROR_NOT_CURRENTLY_AVAILABLE.

Você não pode chamar SetFullscreenState em uma cadeia de troca criada com IDXGIFactory2::CreateSwapChainForComposition.

Para o modelo de apresentação de inversão, depois de fazer a transição do estado de exibição para tela inteira, você deve chamar ResizeBuffers para garantir que sua chamada para IDXGISwapChain1::P resent1 seja bem-sucedida.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho dxgi.h
Biblioteca DXGI.lib

Confira também

IDXGISwapChain