Método IDirect3DDevice9Ex::P resentEx (d3d9.h)
Troque o próximo buffer da cadeia de troca pelo buffer frontal.
Sintaxe
HRESULT PresentEx(
[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 uma estrutura RECT que indica a região na superfície de origem a ser copiada nas coordenadas do cliente da janela. Aplica-se somente quando a cadeia de troca foi criada com o sinalizador D3DSWAPEFFECT_COPY . Se FOR NULL, toda a superfície de origem será apresentada. Se o retângulo exceder a superfície de origem, ele será recortado na superfície de origem.
[in] pDestRect
Tipo: const RECT*
Ponteiro para a estrutura RECT que indica a região de destino na superfície de destino nas coordenadas do cliente da janela. Aplica-se somente quando a cadeia de troca foi criada com o sinalizador D3DSWAPEFFECT_COPY . Se FOR NULL, toda a área do cliente será preenchida. Se o retângulo exceder a área do cliente de destino, ele será recortado para a área do cliente de destino.
[in] hDestWindowOverride
Tipo: HWND
Ponteiro para uma janela de destino cuja área do cliente é tomada como o destino desta 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*
Ponteiro para uma estrutura RGNDATA que indica o menor conjunto de pixels que precisam ser transferidos. Esse valor deve ser NULL , a menos que a cadeia de troca tenha sido criada com o sinalizador D3DSWAPEFFECT_COPY . Para obter mais informações sobre swapchains, 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. O 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 adequadamente expandido. 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 sinalizadores de D3DPRESENT .
- Se dwFlags = 0, esse método se comportará como antes do Direct3D 9. Presente girará até que o hardware esteja livre, sem retornar um erro.
- Se dwFlags = D3DPRESENT_DONOTFLIP o driver de exibição será chamado com o buffer frontal como a superfície de origem e de destino. O driver responde agendando uma sincronização de quadro, mas não alterando a superfície exibida. Esse sinalizador só está disponível no modo de tela inteira ou ao usar D3DSWAPEFFECT_FLIPEX no modo de janela.
- 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_FORCEIMMEDIATE, D3DPRESENT_INTERVAL_IMMEDIATE será imposta nesta chamada Presente. Esse sinalizador só pode ser especificado ao usar D3DSWAPEFFECT_FLIPEX. Esse comportamento é o mesmo para modos em janelas e em tela inteira.
- Se dwFlags = D3DPRESENT_LINEAR_CONTENT, a correção gama será executada de espaço linear a 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)).
Retornar valor
Tipo: HRESULT
Os valores retornados possíveis incluem: S_OK, D3DERR_DEVICELOST, D3DERR_DEVICEHUNG, D3DERR_DEVICEREMOVED ou D3DERR_OUTOFVIDEOMEMORY (consulte D3DERR). Consulte Alterações de comportamento de dispositivo perdidas para obter mais informações sobre dispositivos perdidos, suspensos e removidos.
Diferenças entre Direct3D 9 e Direct3D 9Ex: D3DSWAPEFFECT_FLIPEX só está disponível no Direct3D9Ex em execução no Windows 7 (ou no sistema operacional mais atual). |
Comentários
Semelhante ao Método IDirect3DDevice9::P resent , PresentEx adiciona um parâmetro dwflags.
Quando a cadeia de troca é criada com D3DSWAPEFFECT_FLIPEX sinalizador, os valores pSourceRect, pDestRect e pDirtyRegion devem ser definidos como NULL.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Windows |
Cabeçalho | d3d9.h |
Biblioteca | D3D9.lib |