Compartilhar via


Método IDXGISwapChain1::P resent1 (dxgi1_2.h)

Apresenta um quadro na tela de exibição.

Sintaxe

HRESULT Present1(
       UINT                          SyncInterval,
       UINT                          PresentFlags,
  [in] const DXGI_PRESENT_PARAMETERS *pPresentParameters
);

Parâmetros

SyncInterval

Um inteiro que especifica como sincronizar a apresentação de um quadro com o espaço em branco vertical.

Para o modelo de transferência de bloco de bits (bitblt) (DXGI_SWAP_EFFECT_DISCARD ou DXGI_SWAP_EFFECT_SEQUENTIAL), os valores são:

  • 0 – A apresentação ocorre imediatamente, não há sincronização.
  • 1 a 4 – Sincronizar a apresentação após o em branco vertical.
Para o modelo de inversão (DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL), os valores são:
  • 0 – Cancele o tempo restante no quadro apresentado anteriormente e descarte esse quadro se um quadro mais recente estiver na fila.
  • 1 a 4 – Sincronizar a apresentação para pelo menos n espaços em branco verticais.
Para obter um exemplo que mostra como os valores de intervalo de sincronização afetam uma fila de apresentação de inversão, consulte Comentários.

Se a região de atualização ultrapassar mais de uma saída (cada uma representada por IDXGIOutput1), Present1 executará a sincronização com a saída que contém o maior subtângulo da área de cliente da janela de destino.

PresentFlags

Um valor inteiro que contém opções de apresentação de cadeia de troca. Essas opções são definidas pelas constantes DXGI_PRESENT .

[in] pPresentParameters

Um ponteiro para uma estrutura de DXGI_PRESENT_PARAMETERS que descreve retângulos atualizados e informações de rolagem do quadro a ser apresentado.

Retornar valor

Os valores retornados possíveis incluem: S_OK, DXGI_ERROR_DEVICE_REMOVED , DXGI_STATUS_OCCLUDED, DXGI_ERROR_INVALID_CALL ou E_OUTOFMEMORY.

Comentários

Um aplicativo pode usar Present1 para otimizar a apresentação especificando rolagem e retângulos sujo. Quando o runtime tem informações sobre esses retângulos, o runtime pode executar bitblts necessários durante a apresentação com mais eficiência e passar esses metadados para o DWM (Gerenciador de Janelas da Área de Trabalho). Em seguida, o DWM pode usar os metadados para otimizar a apresentação e passar os metadados para monitores indiretos e servidores de terminal para otimizar o tráfego pela transmissão. Um aplicativo deve limitar suas modificações apenas às sujo regiões que ele passa para Present1, bem como modificar toda a sujo região para evitar que conteúdos de recursos indefinidos sejam expostos.

Para cadeias de troca de modelo de apresentação invertida criadas com o conjunto de valores DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL , uma apresentação bem-sucedida resulta em uma desassociação do buffer 0 do pipeline gráfico, exceto quando você passa o sinalizador DXGI_PRESENT_DO_NOT_SEQUENCE no parâmetro Flags .

Para obter informações sobre como os valores de dados mudam quando você apresenta o conteúdo na tela, consulte Convertendo dados para o espaço de cores.

Para obter informações sobre como chamar Present1 quando seu aplicativo usa vários threads, consulte Considerações multithread e Multithreading e DXGI.

Fila do modelo de apresentação do Flip

Suponha que os quadros a seguir com valores de intervalo de sincronização sejam enfileirados do mais antigo (A) para o mais recente (E) antes de chamar Present1.

R: 3, B: 0, C: 0, D: 1, E: 0

Quando você chama Present1, o runtime mostra o quadro A para apenas um intervalo vertical em branco. O runtime encerra o quadro A mais cedo devido ao intervalo de sincronização 0 no quadro B. Em seguida, o runtime mostra o quadro D para um intervalo em branco vertical e, em seguida, o quadro E até que você envie uma nova apresentação. O runtime descarta os quadros B e C.

Exibições de taxa de atualização variável

É um requisito de taxa de atualização variável que exibe que o tearing está habilitado. O método CheckFeatureSupport pode ser usado para determinar se esse recurso está disponível e, para definir os sinalizadores necessários, consulte as descrições de DXGI_PRESENT_ALLOW_TEARING e DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING e a seção Taxa de atualização variável é exibida/Vsync desativada do DXGI 1.5 Improvements.

Requisitos

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

Confira também

IDXGISwapChain1

Presente