Compartilhar via


enumeração DXGI_SWAP_CHAIN_FLAG (dxgi.h)

Opções para comportamento de cadeia de troca.

Syntax

typedef enum DXGI_SWAP_CHAIN_FLAG {
  DXGI_SWAP_CHAIN_FLAG_NONPREROTATED = 1,
  DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH = 2,
  DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE = 4,
  DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT = 8,
  DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER = 16,
  DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY = 32,
  DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT = 64,
  DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER = 128,
  DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO = 256,
  DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO = 512,
  DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED = 1024,
  DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING = 2048,
  DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS = 4096
} ;

Constantes

 
DXGI_SWAP_CHAIN_FLAG_NONPREROTATED
Valor: 1
Defina esse sinalizador para desativar a rotação automática de imagens; ou seja, não execute uma rotação ao transferir o conteúdo do buffer frontal para o monitor.
Use esse sinalizador para evitar uma penalidade de largura de banda quando um aplicativo espera lidar com a rotação. Essa opção é válida somente durante o modo de tela inteira.
DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH
Valor: 2
Defina esse sinalizador para habilitar um aplicativo a alternar os modos chamando IDXGISwapChain::ResizeTarget.
Ao alternar do modo de janela para tela inteira, o modo de exibição (ou resolução do monitor) será alterado para corresponder às dimensões da janela do aplicativo.
DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE
Valor: 4
Defina esse sinalizador para permitir que um aplicativo seja renderizado usando GDI em uma cadeia de troca ou em uma superfície.
Isso permitirá que o aplicativo chame IDXGISurface1::GetDC no 0º buffer de fundo ou em uma superfície.

Esse sinalizador não é aplicável ao Direct3D 12.
DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT
Valor: 8
Defina esse sinalizador para indicar que a cadeia de troca pode conter conteúdo protegido; portanto, o sistema operacional dá suporte à criação da cadeia de troca somente quando o driver e a proteção de hardware são usados. Se o driver e o hardware não deem suporte à proteção de conteúdo, a chamada para criar um recurso para a cadeia de troca falhará.

Direct3D 11: Esse valor de enumeração tem suporte começando com Windows 8.
DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER
Valor: 16
Defina esse sinalizador para indicar que os recursos compartilhados criados dentro da cadeia de troca devem ser protegidos usando o mecanismo do driver para restringir o acesso a superfícies compartilhadas.

Direct3D 11: Esse valor de enumeração tem suporte começando com Windows 8.
DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY
Valor: 32
Defina esse sinalizador para restringir o conteúdo apresentado às exibições locais. Portanto, o conteúdo apresentado não é acessível por meio do acesso remoto ou por meio das APIs de duplicação da área de trabalho.

Esse sinalizador dá suporte aos recursos de proteção de conteúdo da janela do Windows. Os aplicativos podem usar esse sinalizador para proteger seu próprio conteúdo da janela na tela de serem capturados ou copiados por meio de um conjunto específico de APIs e recursos do sistema operacional público.

Se você usar esse sinalizador com cadeias de troca com janelas (HWND ou IWindow) em que outro processo criou o HWND, o proprietário do HWND deverá usar a função SetWindowDisplayAffinity adequadamente para permitir que as chamadas para IDXGISwapChain::P resent ou IDXGISwapChain1::P resent1 tenham êxito.


Direct3D 11: Esse valor de enumeração tem suporte começando com Windows 8.
DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT
Valor: 64
Defina esse sinalizador para criar um objeto de espera que você pode usar para garantir que a renderização não comece enquanto um quadro ainda estiver sendo apresentado. Quando esse sinalizador é usado, a latência da cadeia de troca deve ser definida com a API IDXGISwapChain2::SetMaximumFrameLatency em vez de IDXGIDevice1::SetMaximumFrameLatency.

Esse sinalizador não tem suporte no modo de tela inteira, a menos que a API de renderização seja Direct3D 12.

Nota Esse valor de enumeração tem suporte começando com Windows 8.1.
DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER
Valor: 128
Defina esse sinalizador para criar uma cadeia de troca na camada de primeiro plano para renderização de vários planos. Esse sinalizador só pode ser usado com cadeias de troca CoreWindow , que são criadas com CreateSwapChainForCoreWindow. Os aplicativos não devem criar cadeias de troca em primeiro plano se IDXGIOutput2::SupportsOverlays indicar que o suporte de hardware para sobreposições não está disponível.

Observe que IDXGISwapChain::ResizeBuffers não pode ser usado para adicionar ou remover esse sinalizador.

Nota Esse valor de enumeração tem suporte começando com Windows 8.1.
DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO
Valor: 256
Defina esse sinalizador para criar uma cadeia de troca para vídeo em tela inteira.

Nota Esse valor de enumeração tem suporte começando com Windows 8.1.
DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO
Valor: 512
Defina esse sinalizador para criar uma cadeia de troca para vídeo YUV.

Nota Esse valor de enumeração tem suporte começando com Windows 8.1.
DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED
Valor: 1024
Indica que a cadeia de troca deve ser criada de modo que todos os recursos subjacentes possam ser protegidos pelo hardware. A criação de recursos falhará se não houver suporte para a proteção de conteúdo de hardware.

Esse sinalizador tem as seguintes restrições:


  • Esse sinalizador só pode ser usado com o efeito de troca DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL.


Nota A criação de uma cadeia de troca usando esse sinalizador não garante automaticamente que a proteção de hardware será habilitada para a alocação subjacente. Algumas implementações exigem que os componentes drm sejam inicializados primeiro antes de quaisquer garantias de proteção.

 

Nota Esse valor de enumeração tem suporte a partir do Windows 10.
DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING
Valor: 2048
A remoção do suporte é um requisito para habilitar exibições que dão suporte a taxas de atualização variáveis para funcionar corretamente quando o aplicativo apresenta uma cadeia de troca vinculada a uma janela sem bordas de tela inteira. Os aplicativos Win32 já podem obter o tearing no modo exclusivo de tela inteira chamando SetFullscreenState(TRUE), mas a abordagem recomendada para os desenvolvedores do Win32 é usar esse sinalizador de tearing. Esse sinalizador requer o uso de um efeito de troca DXGI_SWAP_EFFECT_FLIP_* .

Para marcar para obter suporte a hardware desse recurso, consulte IDXGIFactory5::CheckFeatureSupport. Para obter informações de uso, consulte IDXGISwapChain::P resent e os sinalizadores de DXGI_PRESENT .

OBSERVAÇÃO

IDXGISwapChain::ResizeBuffers não pode ser usado para adicionar ou remover esse sinalizador.

DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS
Valor: 4096

Comentários

Essa enumeração é usada pela estrutura DXGI_SWAP_CHAIN_DESC e pelo método IDXGISwapChain::ResizeTarget .

Essa enumeração também é usada pela estrutura DXGI_SWAP_CHAIN_DESC1 .

Você não precisa definir DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY para cadeias de troca criadas no modo de tela inteira com o método IDXGIFactory::CreateSwapChain porque essas cadeias de troca já se comportam como se DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY estivesse definida. Ou seja, o conteúdo apresentado não é acessível pelo acesso remoto ou pelas APIs de duplicação da área de trabalho.

As cadeias de troca criadas com os métodos IDXGIFactory2::CreateSwapChainForHwnd, IDXGIFactory2::CreateSwapChainForCoreWindow e IDXGIFactory2::CreateSwapChainForComposition não serão protegidas se DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY não estiver definida e estiverem protegidas se DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY estiver definida. Quando as cadeias de troca são protegidas, a extração de tela é impedida e, no modo de tela inteira, o conteúdo apresentado não é acessível por meio das APIs de duplicação da área de trabalho.

Ao chamar IDXGISwapChain::ResizeBuffers para alterar o buffer de fundo da cadeia de troca, você pode redefinir ou alterar todos os sinalizadores de DXGI_SWAP_CHAIN_FLAG .

Requisitos

Requisito Valor
Cabeçalho dxgi.h

Confira também

Enumerações DXGI