Compartilhar via


DXGI_PRESENT

As constantes DXGI_PRESENT especificam opções para apresentar quadros à saída.

Constante/valor Descrição
0
Apresente um quadro de cada buffer (começando com o buffer atual) para a saída.
DXGI_PRESENT_DO_NOT_SEQUENCE
0x00000002UL
Apresente um quadro do buffer atual para a saída. Use esse sinalizador para que a apresentação possa usar a sincronização em branco vertical em vez de sequenciar buffers na cadeia da maneira usual.
Nota: Se o aplicativo de chamada definir a constante DXGI_PRESENT_DO_NOT_SEQUENCE na primeira operação atual (ou seja, quando não houver buffer atual), o runtime ignorará essa operação atual e não chamará o driver.
DXGI_PRESENT_TEST
0x00000001UL
Não apresente o quadro à saída. O status da cadeia de troca será testado e os erros apropriados retornados. DXGI_PRESENT_TEST destina-se ao uso somente ao alternar do estado ocioso; não o use para determinar quando alternar para o estado ocioso, pois isso pode deixar a cadeia de troca incapaz de sair do modo de tela inteira.
DXGI_PRESENT_RESTART
0x00000004UL
Especifica que o runtime descartará os presentes em fila pendentes.
DXGI_PRESENT_DO_NOT_WAIT
0x00000008UL
Especifica que o runtime falhará na apresentação (ou seja, falhará uma chamada para IDXGISwapChain1::P resent1) com o código de erro DXGI_ERROR_WAS_STILL_DRAWING se o thread de chamada estiver bloqueado; o runtime retorna DXGI_ERROR_WAS_STILL_DRAWING em vez de suspensão até que a dependência seja resolvida.
Direct3D 11: Esse valor de enumeração tem suporte a partir do Windows 8.
DXGI_PRESENT_RESTRICT_TO_OUTPUT
0x00000010UL
Indica que o conteúdo da apresentação será mostrado somente na saída específica. O conteúdo não ficará visível em outras saídas. Por exemplo, se o usuário tentar realocar o conteúdo do vídeo em outra saída, o conteúdo do vídeo não ficará visível.
Direct3D 11: Esse valor de enumeração tem suporte a partir do Windows 8.
Nota: Esse sinalizador só deve ser usado com efeito de troca DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL ou DXGI_SWAP_EFFECT_FLIP_DISCARD. O uso desse sinalizador com outros efeitos de troca está sendo preterido e pode não funcionar em versões futuras do Windows.
DXGI_PRESENT_STEREO_PREFER_RIGHT
0x00000020UL
Indica que, se o estéreo presente precisar ser reduzido a mono, a visualização do olho direito será usada em vez da exibição com o olho esquerdo.
Direct3D 11: Esse valor de enumeração tem suporte a partir do Windows 8.
DXGI_PRESENT_STEREO_TEMPORARY_MONO
0x00000040UL
Indica que a apresentação deve usar o buffer esquerdo como um buffer mono. Um aplicativo chama o método IDXGISwapChain1::IsTemporaryMonoSupported para determinar se uma cadeia de troca dá suporte a "mono temporário".
Direct3D 11: Esse valor de enumeração tem suporte a partir do Windows 8.
DXGI_PRESENT_USE_DURATION
0x00000100UL
Esse sinalizador deve ser definido por aplicativos de mídia que estão atualmente usando uma duração presente personalizada (taxa de atualização personalizada). Consulte IDXGISwapChainMedia.
Nota: Esse valor tem suporte a partir de Windows 8.1.
DXGI_PRESENT_ALLOW_TEARING
0x00000200UL
Permitir a desinstalação é um requisito de exibições de taxa de atualização variável.
As condições para usar DXGI_PRESENT_ALLOW_TEARING durante Presente são as seguintes:
  • A cadeia de troca deve ser criada com o sinalizador DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING .
  • O intervalo de sincronização passado para Presente (ou Presente1) deve ser 0.
  • O sinalizador DXGI_PRESENT_ALLOW_TEARING não pode ser usado em um aplicativo que está atualmente no modo exclusivo de tela inteira (definido chamando SetFullscreenState(TRUE)). Ele só pode ser usado no modo de janela. Para usar esse sinalizador em aplicativos Win32 em tela inteira, o aplicativo deve apresentar a uma janela sem bordas de tela inteira e desabilitar a alternância automática de tela inteira ALT+ENTER usando IDXGIFactory::MakeWindowAssociation. Os aplicativos UWP que entram no modo de tela inteira chamando Windows::UI::ViewManagement::ApplicationView::TryEnterFullscreen() são janelas sem borda de tela inteira e podem usar o sinalizador .
Chamar Present (ou Present1) com esse sinalizador e não atender às condições acima resultará em um erro de DXGI_ERROR_INVALID_CALL sendo retornado ao aplicativo de chamada.

Comentários

As opções de apresentação são fornecidas durante a chamada IDXGISwapChain::P resent ou IDXGISwapChain1::P resent1 . Os buffers são especificados na descrição da cadeia de troca (consulte DXGI_SWAP_CHAIN_DESC ou DXGI_SWAP_CHAIN_DESC1).

DXGI_PRESENT_RESTART é válido somente para cadeias de troca de modelo de flip e tela inteira. Os aplicativos podem usar DXGI_PRESENT_RESTART para se recuperar de falhas na reprodução, bem como para descartar apresentações enfileiradas anteriormente. Descartar apresentações enfileiradas anteriormente será útil se essas apresentações enfileiradas forem cenários em janelas. Em particular, a apresentação anteriormente enfileirada pode ter assumido que a janela é um tamanho antigo (ou seja, uma operação de redimensionamento ocorreu após o envio).

DXGI_PRESENT_RESTRICT_TO_OUTPUT é válido somente para cadeias de troca que especificaram uma saída específica para restringir o conteúdo a quando essas cadeias de troca foram criadas (IDXGIFactory2::CreateSwapChainForHwnd). Se não houver nenhuma saída para restringir, o sinalizador será inválido.

DXGI_PRESENT_STEREO_PREFER_RIGHT indica que, se o estéreo presente precisar ser reduzido a mono, o olho direito deverá ser usado em vez do olho esquerdo (padrão). Você poderá usar esse sinalizador se um lado for de maior qualidade (por exemplo, se o par estéreo for sintetizado de uma imagem padrão).)

DXGI_PRESENT_STEREO_TEMPORARY_MONO indica que o presente deve usar o buffer esquerdo como um buffer mono. Você pode usar esse sinalizador para evitar atualizar o buffer direito quando um aplicativo temporariamente não tiver conteúdo estéreo. Você deve usar esse sinalizador sempre que possível, pois ele permite otimização significativa pelo sistema operacional e, em algumas circunstâncias, pode evitar artefatos de alteração de modo visível.

Você deve usar o sinalizador DXGI_PRESENT_STEREO_TEMPORARY_MONO em preferência para alternar para uma cadeia de troca mono para a maioria dos aplicativos que você prevê que usará estéreo novamente. Você precisa equilibrar o uso desse sinalizador em aplicativos que são de execução extremamente longa ou que raramente exibem estéreo em relação à desvantagem da memória não utilizada.

Observação

Aplicativos de tela inteira que alternam para uma cadeia de troca mono causam uma alteração de modo que geralmente tem artefatos visíveis (por exemplo, "piscando"). No entanto, o mono temporário pode não ter suporte para cadeias de troca de tela inteira.

 

Os sinalizadores DXGI_PRESENT_STEREO_PREFER_RIGHT e DXGI_PRESENT_STEREO_TEMPORARY_MONO aplicam-se somente a cadeias de troca estéreo. Se você usá-las quando apresentar cadeias de troca mono, ocorrerá uma operação inválida.

Se você usar o sinalizador DXGI_PRESENT_STEREO_TEMPORARY_MONO ao apresentar uma cadeia de troca estéreo que não dá suporte a mono temporário, ocorrerá um erro, a cadeia de troca não será exibida e a apresentação retornará DXGI_ERROR_INVALID_CALL.

Requisitos

Requisito Valor
parâmetro
DXGI.h

Confira também

Constantes DXGI