Método IDirect3DSwapChain9::P resent (d3d9helper.h)

Apresenta o conteúdo do próximo buffer na sequência de buffers traseiros pertencentes à cadeia de troca.

Sintaxe

HRESULT Present(
  [in] const RECT    *pSourceRect,
  [in] const RECT    *pDestRect,
  [in] HWND          hDestWindowOverride,
  [in] const RGNDATA *pDirtyRegion,
  [in] DWORD         dwFlags
);

Parâmetros

[in] pSourceRect

Tipo: const RECT*

Ponteiro para o retângulo de origem (consulte RECT). Use NULL para apresentar toda a superfície. Esse valor deve ser NULL , a menos que a cadeia de troca tenha sido criada com D3DSWAPEFFECT_COPY. Se o retângulo exceder a superfície de origem, o retângulo será recortado na superfície de origem.

[in] pDestRect

Tipo: const RECT*

Ponteiro para o retângulo de destino nas coordenadas do cliente (consulte RECT). Esse valor deve ser NULL , a menos que a cadeia de troca tenha sido criada com D3DSWAPEFFECT_COPY. Use NULL para preencher toda a área do cliente. Se o retângulo exceder a área de cliente de destino, o retângulo será recortado para a área de cliente de destino.

[in] hDestWindowOverride

Tipo: HWND

Janela de destino cuja área de cliente é usada como destino para esta apresentação. Se esse valor for NULL, o runtime usará o membro hDeviceWindow de D3DPRESENT_PARAMETERS para a apresentação.

[in] pDirtyRegion

Tipo: const RGNDATA*

Esse valor deve ser NULL , a menos que a cadeia de troca tenha sido criada com D3DSWAPEFFECT_COPY. Consulte Inverter superfícies (Direct3D 9).

Se esse valor não for NULL, a região contida será expressa em coordenadas de buffer de fundo. Os retângulos dentro da região são o conjunto mínimo de pixels que precisam ser atualizados. Esse método leva esses retângulos em conta ao otimizar a apresentação copiando apenas os pixels dentro da região ou algum conjunto de retângulos expandido adequadamente. Isso é um auxílio apenas para otimização e o aplicativo não deve depender exatamente da região que está sendo copiada. A implementação pode optar por copiar todo o retângulo de origem.

[in] dwFlags

Tipo: DWORD

Permite que o aplicativo solicite que o método retorne imediatamente quando o driver relata que não pode agendar uma apresentação. Os valores válidos são 0 ou qualquer combinação de D3DPRESENT_DONOTWAIT ou D3DPRESENT_LINEAR_CONTENT.

  • Se dwFlags = 0, esse método se comportará como antes do Direct3D 9. O presente girará até que o hardware seja gratuito, sem retornar um erro.
  • Se dwFlags = D3DPRESENT_DONOTWAIT e o hardware estiver ocupado processando ou aguardando um intervalo de sincronização vertical, o método retornará D3DERR_WASSTILLDRAWING.
  • Se dwFlags = D3DPRESENT_LINEAR_CONTENT, a correção gama será executada de espaço linear para sRGB para cadeias de troca em janelas. Esse sinalizador entrará em vigor somente quando o driver expor D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION (consulte Gama (Direct3D 9)). Os aplicativos devem especificar esse sinalizador se o formato backbuffer for um ponto flutuante de 16 bits para corresponder o modo em janela presente ao comportamento gama de tela inteira.

Retornar valor

Tipo: HRESULT

Se o método for bem-sucedido, o valor retornado será D3D_OK. Se o método falhar, o valor retornado poderá ser um dos seguintes: D3DERR_DEVICELOST, D3DERR_DRIVERINTERNALERROR, D3DERR_INVALIDCALL, D3DERR_OUTOFVIDEOMEMORY E_OUTOFMEMORY.

Comentários

O método Present é um atalho para Present. O presente foi atualizado para usar um sinalizador, permitindo que o aplicativo solicite que o método retorne imediatamente quando o driver relatar que não pode agendar uma apresentação.

Se necessário, uma operação de alongamento é aplicada para transferir os pixels dentro do retângulo de origem para o retângulo de destino na área do cliente da janela de destino.

O presente falhará se for chamado entre os pares BeginScene e EndScene , a menos que o destino de renderização não seja o destino de renderização atual (como o buffer de fundo obtido com a criação de uma cadeia de troca adicional). Esse é um novo comportamento para o Direct3D 9.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho d3d9helper.h (inclua D3D9.h)
Biblioteca D3D9.lib

Confira também

IDirect3DSwapChain9

Redefinir