Copiando para Surfaces (Direct3D 9)

Ao usar IDirect3DDevice9::UpdateSurface, passe um retângulo na superfície de origem ou use NULL para especificar toda a superfície. Você também passa um ponto na superfície de destino para o qual a posição superior esquerda do retângulo na imagem de origem é copiada. Esse método não dá suporte ao recorte. A operação falhará, a menos que o retângulo de origem e o retângulo de destino correspondente estejam completamente contidos nas superfícies de origem e destino, respectivamente. Esse método não dá suporte à mesclagem alfa, às teclas de cor nem à conversão de formato. Observe que as superfícies de destino e de origem devem ser distintas.

Para outras restrições ao usar UpdateSurface, consulte IDirect3DDevice9::UpdateSurface.

Os métodos a seguir também estão disponíveis em C++/C para copiar imagens para uma superfície Direct3D.

Exemplo de UpdateSurface

O exemplo a seguir copia dois retângulos da superfície de origem para uma superfície de destino. O primeiro retângulo é copiado de (0, 0, 50, 50) na superfície de origem para o mesmo local na superfície de destino e o segundo retângulo é copiado de (50, 50, 100, 100) na superfície de origem para (150, 150, 200, 200) na superfície de destino.

//The following assumptions are made:
// -d3dDevice is a valid Direct3DDevice9 object.
// -pSource and pDest are valid IDirect3DSurface9 pointers.

RECT  rcSource[] = {  0,  0,  50,  50,
                     50, 50, 100, 100 };
POINT ptDest[]   = {  0,  0, 150, 150 };

d3dDevice->UpdateSurface( pSource, rcSource, 2, pDest, ptDest);

Superfícies Direct3D

IDirect3DDevice9::StretchRect