Compartilhar via


D3DPRESENT

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

Constante Description
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 estiver definido em uma chamada para Apresentar e o hardware estiver ocupado processando ou aguardando um intervalo de sincronização vertical, o 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 de tela inteira são os mesmos. Isso é especialmente útil para aplicativos de mídia que desejam descartar quadros que foram detectados como quadros posteriores atrasados e presentes no momento da 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 em sistemas operacionais Windows 7 ou posteriores.
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, quadro B, (quadro C substituído por) quadro D.
Consulte Comentários.
D3DPRESENT_INTERVAL_DEFAULT
Isso é quase equivalente a D3DPRESENT_INTERVAL_ONE. Veja os comentários.
D3DPRESENT_INTERVAL_ONE
O driver aguardará o período de retração vertical (o runtime "será seguido" para evitar a ruptura). As operações presentes não serão afetadas com mais frequência do que a atualização da tela; o runtime será concluído no máximo um período de atualização da operação Present por adaptador. Isso é equivalente ao uso de D3DSWAPEFFECT_COPY_VSYNC no DirectX 8.1. Essa opção está sempre disponível para cadeias de troca em janelas e em tela inteira. Veja os comentários.
D3DPRESENT_INTERVAL_TWO
O driver aguardará o período de retração vertical. As operações presentes 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 há suporte para D3DPRESENT_INTERVAL_TWO pelo driver.
D3DPRESENT_INTERVAL_THREE
O driver aguardará o período de retração vertical. As operações presentes 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 há suporte para D3DPRESENT_INTERVAL_THREE pelo driver.
D3DPRESENT_INTERVAL_FOUR
O driver aguardará o período de retração vertical. As operações presentes 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 há suporte para D3DPRESENT_INTERVAL_FOUR pelo 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 equivale a usar 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 em tela inteira. Veja os comentários.
D3DPRESENT_LINEAR_CONTENT
O conteúdo do buffer de fundo 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 de fundo, o sinalizador pode ser especificado durante uma chamada Presente . 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 está em tela inteira. (Observe que esse sinalizador está disponível apenas na versão da cadeia de troca explícita do Present. 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 de fundo com suporte é X8R8G8B8.
Consulte cadeias de troca com 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 o Gerenciador de Janelas da Área de Trabalho para obter mais detalhes sobre esse recurso do Windows Vista. Se você não estiver em execução 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 a posição de 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
Redesenhe os dados colorkey.
Esse sinalizador está disponível somente no Direct3D 9Ex.

Observações

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 (confira 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 impedem a ruptura com os seguintes feixes. 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 de 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.

Requirements

Requirement Value
Header
D3d9.h

Consulte também

Constantes Direct3D