Partager via


Copie sur Surfaces (Direct3D 9)

Lorsque vous utilisez IDirect3DDevice9::UpdateSurface, passez un rectangle sur la surface source ou utilisez NULL pour spécifier la surface entière. Vous passez également un point sur la surface de destination vers lequel la position supérieure gauche du rectangle sur l’image source est copiée. Cette méthode ne prend pas en charge le découpage. L’opération échoue, sauf si le rectangle source et le rectangle de destination correspondants sont entièrement contenus dans les surfaces source et de destination respectivement. Cette méthode ne prend pas en charge la fusion alpha, les clés de couleur ou la conversion de format. Notez que les surfaces de destination et de source doivent être distinctes.

Pour obtenir d’autres restrictions lors de l’utilisation de UpdateSurface, consultez IDirect3DDevice9::UpdateSurface.

Les méthodes suivantes sont également disponibles en C++/C pour copier des images sur une surface Direct3D.

Exemple UpdateSurface

L’exemple suivant copie deux rectangles de la surface source vers une surface de destination. Le premier rectangle est copié à partir de (0, 0, 50, 50) sur la surface source vers le même emplacement sur la surface de destination, et le deuxième rectangle est copié de (50, 50, 100, 100) sur la surface source vers (150, 150, 200, 200) sur la surface de destination.

//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);

Direct3D Surfaces

IDirect3DDevice9::StretchRect