Compartilhar via


D3DPRESENT

Descreve a relação entre a taxa de atualização do adaptador e a taxa em que as operações Presente ou Presente são concluídas. Esses valores também servem como valores de sinalizador para o campo PresentationIntervals de D3DCAPS9.

Constante Descrição
D3DPRESENT_DONOTFLIP
Use o buffer frontal como a superfície de origem e de destino durante a renderização. Uma sincronização de quadros está agendada, mas a superfície exibida não é alterada. Esse sinalizador só estará disponível quando o aplicativo estiver no modo de tela inteira e D3DSWAPEFFECT_FLIPEX tiver sido especificado.
Esse sinalizador está disponível somente no Direct3D 9Ex.
D3DPRESENT_DONOTWAIT
Uma apresentação não pode ser agendada por um dispositivo hal. Se esse sinalizador for definido em uma chamada para Apresentar e o hardware estiver ocupado processando ou aguardando um intervalo de sincronização vertical, Present retornará D3DERR_WASSTILLDRAWING para indicar que a operação blit está incompleta.
D3DPRESENT_FLIPRESTART
Reservado.
D3DPRESENT_FORCEIMMEDIATE
D3DPRESENT_INTERVAL_IMMEDIATE é imposta nesta chamada Presente . Esse sinalizador só pode ser especificado ao usar D3DSWAPEFFECT_FLIPEX. Os comportamentos de apresentação em janelas e em tela inteira são os mesmos. Isso é especialmente útil para aplicativos de mídia que desejam descartar quadros que foram detectados como atrasados e apresentam quadros subsequentes em tempo de composição. Um erro de parâmetro inválido será retornado se esse sinalizador for especificado incorretamente. Quando vários quadros consecutivos com D3DPRESENT_FORCEIMMEDIATEs são enfileirados, somente o último quadro é exibido, para apresentação em janelas e tela inteira.
Esse sinalizador está disponível no Direct3D 9Ex nos sistemas operacionais Windows 7 ou posterior.
Ao usar D3DSWAPEFFECT_FLIPEX, cada quadro apresentado usando D3DPRESENT_INTERVAL_IMMEDIATE ou D3DPRESENT_INTERVAL_FORCEIMMEDIATE substituirá o intervalo atual do quadro anterior. Por exemplo, se você enfileirar os seguintes quadros usando os seguintes efeitos de troca: quadro A (D3DPRESENT_INTERVAL_ONE), quadro B(D3DPRESENT_INTERVAL_ONE), quadro C(D3DPRESENT_INTERVAL_ONE), quadro D(D3DPRESENT_INTERVAL_FORCEIMMEDIATE), o quadro D substituirá o intervalo atual do quadro C. Os quadros exibidos por intervalo atual são o quadro A, o quadro B, (quadro C substituído por) quadro D.
Consulte Observações.
D3DPRESENT_INTERVAL_DEFAULT
Isso é quase equivalente a D3DPRESENT_INTERVAL_ONE. Consulte Observações.
D3DPRESENT_INTERVAL_ONE
O driver aguardará o período de retração vertical (o runtime "será seguido" para evitar a ruptura). As operações atuais não serão afetadas com mais frequência do que a atualização de tela; o runtime concluirá no máximo uma operação Presente por período de atualização do adaptador. Isso é equivalente ao uso de D3DSWAPEFFECT_COPYVSYNC no DirectX 8.1. Essa opção está sempre disponível para cadeias de troca em janelas e de tela inteira. Consulte Observações.
D3DPRESENT_INTERVAL_TWO
O driver aguardará o período de retração vertical. As operações atuais não serão afetadas com mais frequência do que a cada segunda atualização de tela. Verifique o limite PresentationIntervals (consulte D3DCAPS9) para ver se D3DPRESENT_INTERVAL_TWO tem suporte do driver.
D3DPRESENT_INTERVAL_THREE
O driver aguardará o período de retração vertical. As operações atuais não serão afetadas com mais frequência do que a cada terceira atualização de tela. Verifique o limite PresentationIntervals (consulte D3DCAPS9) para ver se D3DPRESENT_INTERVAL_THREE tem suporte do driver.
D3DPRESENT_INTERVAL_FOUR
O driver aguardará o período de retração vertical. As operações atuais não serão afetadas com mais frequência do que a cada quarta atualização de tela. Verifique o membro PresentationIntervals (consulte D3DCAPS9) para ver se D3DPRESENT_INTERVAL_FOUR tem suporte do driver.
D3DPRESENT_INTERVAL_IMMEDIATE
O runtime atualiza a área do cliente da janela imediatamente e pode fazer isso mais de uma vez durante o período de atualização do adaptador. Isso é equivalente ao uso de D3DSWAPEFFECT_COPY no DirectX 8. As operações atuais podem ser afetadas imediatamente. Essa opção está sempre disponível para cadeias de troca em janelas e de tela inteira. Consulte Observações.
D3DPRESENT_LINEAR_CONTENT
O conteúdo do buffer traseiro a ser apresentado está no espaço de cor linear.
  • A apresentação converterá implicitamente de espaço linear em sRGB (gama = 2,2). Essa é a única conversão com suporte.
  • Como esse sinalizador representa uma propriedade do conteúdo do buffer traseiro, o sinalizador pode ser especificado durante uma chamada Present . Em outras palavras, um aplicativo pode apresentar conteúdo linear em um quadro e alternar para o conteúdo corrigido no próximo.
  • Esse sinalizador é ignorado quando a cadeia de troca é de tela inteira. (Observe que esse sinalizador está disponível apenas na versão de cadeia de troca explícita do Presente. O método Present não usa um parâmetro flags.)
  • Esse sinalizador sempre é aceito, mas só entrará em vigor quando o driver expor >D3DCAPS3_LINEAR_TO_SRGB_PresentATION.
  • O único formato de buffer traseiro com suporte é X8R8G8B8.
Consulte Cadeias de Troca em Janelas.
D3DPRESENT_VIDEO_RESTRICT_TO_MONITOR
Corta o conteúdo renderizado para o monitor/dispositivo que o adaptador está direcionando, mostra miniaturas para o conteúdo no modo de exibição Flip3D e miniaturas da barra de tarefas em outros monitores.
Esse sinalizador está disponível somente no Direct3D 9Ex.
Consulte Gerenciador de Janelas da Área de Trabalho para obter mais detalhes sobre esse recurso do Windows Vista. Se você não estiver executando no modo de composição da área de trabalho, o sinalizador fornecerá o mesmo comportamento que D3DPRESENTFLAG_DEVICECLIP.
Nota: Esse sinalizador só deve ser usado com o efeito de troca D3DSWAPEFFECT_FLIPEX. O uso desse sinalizador com outros efeitos de troca está sendo preterido e pode não funcionar em versões futuras do Windows.
D3DPRESENT_UPDATEOVERLAYONLY
Atualizações a posição da sobreposição ou os dados da chave de cores sem causar uma inversão real e sem alterar a duração com que a imagem é exibida.
Esse sinalizador está disponível somente no Direct3D 9Ex.
D3DPRESENT_HIDEOVERLAY
Desativa o hardware de sobreposição.
Esse sinalizador está disponível somente no Direct3D 9Ex.
D3DPRESENT_UPDATECOLORKEY
Redesenha os dados da chave de cores.
Esse sinalizador está disponível somente no Direct3D 9Ex.

Comentários

O modo com janelas dá suporte a D3DPRESENT_INTERVAL_DEFAULT, D3DPRESENT_INTERVAL_IMMEDIATE e D3DPRESENT_INTERVAL_ONE. D3DPRESENT_INTERVAL_DEFAULT e os D3DPRESENT_INTERVAL_ONE são quase equivalentes (consulte as informações sobre a resolução do temporizador abaixo). Eles têm um desempenho semelhante ao COPY_VSYNC em que há apenas um presente por quadro e evitam rasgar com o seguinte feixe. Por outro lado, D3DPRESENT_INTERVAL_IMMEDIATE tentará fornecer uma taxa de apresentação ilimitada.

O modo de tela inteira dá suporte a uso semelhante ao modo em janela, dando suporte a D3DPRESENT_INTERVAL_IMMEDIATE independentemente da taxa de atualização ou do efeito de troca. D3DPRESENT_INTERVAL_DEFAULT usa a resolução padrão do temporizador do sistema, enquanto o D3DPRESENT_INTERVAL_ONE chama timeBeginPeriod para aprimorar a resolução do temporizador do sistema. Isso melhora a qualidade da sincronização vertical, mas consome um pouco mais de tempo de processamento. Ambos os parâmetros tentam sincronizar verticalmente.

Requisitos

Requisito Valor
parâmetro
D3d9.h

Confira também

Constantes Direct3D