Método IDirect3DDevice9::UpdateSurface (d3d9.h)

Copia subconjuntos retangulares de pixels de uma superfície para outra.

Sintaxe

HRESULT UpdateSurface(
  [in] IDirect3DSurface9 *pSourceSurface,
  [in] const RECT        *pSourceRect,
  [in] IDirect3DSurface9 *pDestinationSurface,
  [in] const POINT       *pDestPoint
);

Parâmetros

[in] pSourceSurface

Tipo: IDirect3DSurface9*

Ponteiro para uma interface IDirect3DSurface9 , representando a superfície de origem. Esse parâmetro deve apontar para uma superfície diferente de pDestinationSurface.

[in] pSourceRect

Tipo: const RECT*

Ponteiro para um retângulo na superfície de origem. Especificar NULL para esse parâmetro faz com que toda a superfície seja copiada.

[in] pDestinationSurface

Tipo: IDirect3DSurface9*

Ponteiro para uma interface IDirect3DSurface9 , representando a superfície de destino.

[in] pDestPoint

Tipo: const POINT*

Ponteiro para o canto superior esquerdo do retângulo de destino. Especificar NULL para esse parâmetro faz com que toda a superfície seja copiada.

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_INVALIDCALL.

Comentários

Esse método é semelhante a CopyRects no DirectX 8.

Essa função tem as seguintes restrições.

  • A superfície de origem deve ter sido criada com D3DPOOL_SYSTEMMEM.
  • A superfície de destino deve ter sido criada com D3DPOOL_DEFAULT.
  • Nenhuma superfície pode ser bloqueada ou manter um contexto de dispositivo pendente.
  • Nenhuma superfície pode ser criada com várias amostras. O único sinalizador válido para ambas as superfícies é D3DMULTISAMPLE_NONE.
  • O formato de superfície não pode ser um formato de estêncil de profundidade.
  • Os rects de origem e dest devem caber dentro da superfície.
  • Nenhum alongamento ou redução é permitido (os rects devem ter o mesmo tamanho).
  • O formato de origem deve corresponder ao formato dest.
A tabela a seguir mostra as combinações com suporte.
Formatos de dest
Textura Textura RT RT Sem formatação fora da tela
Formatos Src Textura Yes Sim Sim* Sim
Textura RT No No No No
RT No No No No
Sem formatação fora da tela Yes Yes Yes Yes
 
  • Se o driver não der suporte à cópia solicitada, ele será emulado usando bloqueio e cópia.

Se o aplicativo precisar copiar dados de um destino de renderização D3DPOOL_DEFAULT para uma superfície D3DPOOL_SYSTEMMEM, ele poderá usar GetRenderTargetData.

Requisitos

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

Confira também

IDirect3DDevice9