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.
- D3DXLoadSurfaceFromFile
- D3DXLoadSurfaceFromFileInMemory
- D3DXLoadSurfaceFromMemory
- D3DXLoadSurfaceFromResource
- D3DXLoadSurfaceFromSurface
- IDirect3DDevice9::UpdateSurface
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);
Argomenti correlati