Compartir a través de


Copiar en superficies (Direct3D 9)

Al usar IDirect3DDevice9::UpdateSurface, pase un rectángulo en la superficie de origen o use NULL para especificar toda la superficie. También se pasa un punto en la superficie de destino a la que se copia la posición superior izquierda del rectángulo en la imagen de origen. Este método no admite el recorte. Se producirá un error en la operación a menos que el rectángulo de origen y el rectángulo de destino correspondiente estén completamente contenidos en las superficies de origen y destino, respectivamente. Este método no admite la combinación alfa, las teclas de color ni la conversión de formato. Tenga en cuenta que las superficies de origen y de destino deben ser distintas.

Para obtener otras restricciones al usar UpdateSurface, consulte IDirect3DDevice9::UpdateSurface.

Los métodos siguientes también están disponibles en C++/C para copiar imágenes en una superficie de Direct3D.

Ejemplo de UpdateSurface

En el ejemplo siguiente se copian dos rectángulos de la superficie de origen a una superficie de destino. El primer rectángulo se copia de (0, 0, 50, 50) en la superficie de origen en la misma ubicación de la superficie de destino y el segundo rectángulo se copia de (50, 50, 100, 100) en la superficie de origen a (150, 150, 200, 200) en la superficie 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);

Superficies de Direct3D

IDirect3DDevice9::StretchRect