Copia in superfici (Direct3D 9)

Quando si usa IDirect3DDevice9::UpdateSurface, passare un rettangolo sulla superficie di origine o usare NULL per specificare l'intera superficie. Si passa anche un punto sulla superficie di destinazione a cui viene copiata la posizione superiore sinistra del rettangolo nell'immagine di origine. Questo metodo non supporta il ritaglio. L'operazione avrà esito negativo, a meno che il rettangolo di origine e il rettangolo di destinazione corrispondente non siano completamente contenuti nelle superfici di origine e di destinazione rispettivamente. Questo metodo non supporta la fusione alfa, le chiavi di colore o la conversione del formato. Si noti che le superfici di destinazione e di origine devono essere distinte.

Per altre restrizioni quando si usa UpdateSurface, vedere IDirect3DDevice9::UpdateSurface.

I metodi seguenti sono disponibili anche in C++/C per copiare immagini in una superficie Direct3D.

Esempio di UpdateSurface

Nell'esempio seguente vengono copiati due rettangoli dalla superficie di origine a una superficie di destinazione. Il primo rettangolo viene copiato da (0, 0, 50, 50) sulla superficie di origine alla stessa posizione sulla superficie di destinazione e il secondo rettangolo viene copiato da (50, 50, 100, 100) sulla superficie di origine a (150, 150, 200, 200) sulla superficie di destinazione.

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

Superfici Direct3D

IDirect3DDevice9::StretchRect