Partilhar via


D3DPRESENT

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

Constante Description
D3DPRESENT_DONOTFLIP
Use o front buffer tanto como superfície de origem como de destino durante a renderização. Uma sincronização de frames é agendada, mas a superfície apresentada não muda. Esta bandeira só está disponível quando a aplicação está em modo de ecrã completo e D3DSWAPEFFECT_FLIPEX foi especificado.
Esta bandeira está disponível apenas em Direct3D 9Ex.
D3DPRESENT_DONOTWAIT
Uma apresentação não pode ser agendada por um dispositivo HAL. Se esta flag estiver definida numa chamada para o Present, e o hardware estiver ocupado a processar ou à espera de um intervalo de sincronização vertical, então o Present devolverá D3DERR_WASSTILLDRAWING para indicar que a operação blit está incompleta.
D3DPRESENT_FLIPRESTART
Reservado.
D3DPRESENT_FORCEIMMEDIATE
D3DPRESENT_INTERVAL_IMMEDIATE é aplicado neste chamado Present . Esta bandeira só pode ser especificada ao usar D3DSWAPEFFECT_FLIPEX. Os comportamentos de apresentação em janela e em ecrã inteiro são os mesmos. Isto é especialmente útil para aplicações de media que querem descartar frames detetados como atrasados e apresentar frames subsequentes no momento da composição. Um erro de parâmetro inválido será devolvido se este flag for especificado incorretamente. Quando vários frames consecutivos com D3DPRESENT_FORCEIMMEDIATEs estão em fila, apenas o último frame é exibido, tanto para apresentação em janela como em ecrã completo.
Este flag está disponível no Direct3D 9Ex em sistemas operativos Windows 7 ou posteriores.
Ao usar D3DSWAPEFFECT_FLIPEX, cada frame apresentado com D3DPRESENT_INTERVAL_IMMEDIATE ou D3DPRESENT_INTERVAL_FORCEIMMEDIATE irá sobrepor o intervalo presente do frame anterior. Por exemplo, se enfileirar os seguintes frames usando os seguintes efeitos de swap: frame A (D3DPRESENT_INTERVAL_ONE), frame B(D3DPRESENT_INTERVAL_ONE), frame C(D3DPRESENT_INTERVAL_ONE), frame D(D3DPRESENT_INTERVAL_FORCEIMMEDIATE), o frame D irá sobrepor o intervalo presente do frame C. Os fotogramas exibidos por intervalo presente são o quadro A, o quadro B (quadro C sobreposto por) o quadro D.
Ver Observações.
D3DPRESENT_INTERVAL_DEFAULT
Isto é quase equivalente a D3DPRESENT_INTERVAL_ONE. Ver observações.
D3DPRESENT_INTERVAL_ONE
O driver espera pelo período de retração vertical (o tempo de execução "segue o feixe" para evitar rasgões). As operações atuais não serão afetadas com mais frequência do que a atualização do ecrã; o tempo de execução completará no máximo uma operação Present por período de atualização do adaptador. Isto é equivalente a usar D3DSWAPEFFECT_COPY_VSYNC no DirectX 8.1. Esta opção está sempre disponível tanto para cadeias de troca em janela como em ecrã inteiro. Ver observações.
D3DPRESENT_INTERVAL_TWO
O condutor espera pelo período de regresso vertical. As operações atuais não serão afetadas com mais frequência do que a cada segunda atualização do ecrã. Verifique o limite de PresentationIntervals (veja D3DCAPS9) para ver se D3DPRESENT_INTERVAL_TWO é suportado pelo driver.
D3DPRESENT_INTERVAL_THREE
O condutor espera pelo período de regresso vertical. As operações atuais não serão afetadas com mais frequência do que a cada terceira atualização do ecrã. Verifique o limite de PresentationIntervals (ver D3DCAPS9) para ver se D3DPRESENT_INTERVAL_THREE é suportado pelo driver.
D3DPRESENT_INTERVAL_FOUR
O condutor espera pelo período de regresso vertical. As operações atuais não serão afetadas com mais frequência do que a cada quatro atualizações de ecrã. Verifique o membro PresentationIntervals (ver D3DCAPS9) para ver se D3DPRESENT_INTERVAL_FOUR é suportado pelo driver.
D3DPRESENT_INTERVAL_IMMEDIATE
O tempo de execução atualiza imediatamente a área do cliente da janela e pode fazê-lo mais do que uma vez durante o período de atualização do adaptador. Isto é equivalente a usar D3DSWAPEFFECT_COPY no DirectX 8. As operações atuais poderão ser afetadas imediatamente. Esta opção está sempre disponível tanto para cadeias de troca em janela como em ecrã inteiro. Ver observações.
D3DPRESENT_LINEAR_CONTENT
O conteúdo do backbuffer a apresentar encontra-se no espaço de cor linear.
  • A apresentação converterá implicitamente do espaço linear para sRGB (gamma = 2,2). Esta é a única conversão suportada.
  • Como esta flag representa uma propriedade do conteúdo do back buffer, a flag pode ser especificada durante uma chamada Present . Por outras palavras, uma aplicação pode apresentar conteúdo linear num quadro e depois mudar para conteúdo corrigido no seguinte.
  • Esta bandeira é ignorada quando a cadeia de troca está em ecrã completo. (Note que este flag está disponível apenas na versão explícita de troca de cadeias de Present. O método Present não aceita um parâmetro de flags.)
  • Esta bandeira é sempre aceite, mas só entra em vigor quando o condutor D3DCAPS3_LINEAR_TO_SRGB_PresentATION >.
  • O único formato de back buffer suportado é X8R8G8B8.
Veja Cadeias de Troca em Janela.
D3DPRESENT_VIDEO_RESTRICT_TO_MONITOR
Prende o conteúdo renderizado ao monitor/dispositivo que o adaptador está a direcionar, mostra miniaturas do conteúdo na vista Flip3D e miniaturas da barra de tarefas noutros monitores.
Esta bandeira está disponível apenas em Direct3D 9Ex.
Consulte o Gestor de Janelas do Ambiente de Trabalho para mais detalhes sobre esta funcionalidade do Windows Vista. Se não estiveres a correr em modo de composição de ambiente de trabalho, a flag apresenta o mesmo comportamento que D3DPRESENTFLAG_DEVICECLIP.
Nota: Esta flag só deve ser usada com o efeito de troca D3DSWAPEFFECT_FLIPEX. O uso desta bandeira com outros efeitos de troca está a ser obsoleto e pode não funcionar em versões futuras do Windows.
D3DPRESENT_UPDATEOVERLAYONLY
Atualiza a posição da sobreposição ou os dados da colorkey sem causar uma inversão real e sem alterar a duração com que a imagem é apresentada.
Esta bandeira está disponível apenas em Direct3D 9Ex.
D3DPRESENT_HIDEOVERLAY
Desliga o hardware de sobreposição.
Esta bandeira está disponível apenas em Direct3D 9Ex.
D3DPRESENT_UPDATECOLORKEY
Redesenha os dados da colorkey.
Esta bandeira está disponível apenas em Direct3D 9Ex.

Observações

O modo janela suporta D3DPRESENT_INTERVAL_DEFAULT, D3DPRESENT_INTERVAL_IMMEDIATE e D3DPRESENT_INTERVAL_ONE. D3DPRESENT_INTERVAL_DEFAULT e o D3DPRESENT_INTERVAL_ONE são quase equivalentes (ver a informação sobre a resolução do temporizador abaixo). Funcionam de forma semelhante ao COPY_VSYNC, pois há apenas um presente por fotograma e evitam rasgões com o seguimento do feixe. Em contraste, D3DPRESENT_INTERVAL_IMMEDIATE tentará oferecer uma tarifa de apresentação ilimitada.

O modo de ecrã inteiro suporta um uso semelhante ao modo janela, suportando D3DPRESENT_INTERVAL_IMMEDIATE independentemente da taxa de atualização ou do efeito de troca. D3DPRESENT_INTERVAL_DEFAULT utiliza a resolução padrão do temporizador do sistema, enquanto o D3DPRESENT_INTERVAL_ONE chama timeBeginPeriod para melhorar a resolução do temporizador do sistema. Isto melhora a qualidade da sincronização vertical, mas consome um pouco mais de tempo de processamento. Ambos os parâmetros tentam sincronizar-se verticalmente.

Requerimentos

Requisito Valor
Header
D3d9.h

Consulte também

Constantes Direct3D