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.
- D3DXLoadSurfaceFromFile
- D3DXLoadSurfaceFromFileInMemory
- D3DXLoadSurfaceFromMemory
- D3DXLoadSurfaceFromResource
- D3DXLoadSurfaceFromSurface
- IDirect3DDevice9::UpdateSurface
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);
Tópicos relacionados