Kopieren auf Oberflächen (Direct3D 9)
Wenn Sie IDirect3DDevice9::UpdateSurface verwenden, übergeben Sie ein Rechteck auf der Quelloberfläche, oder verwenden Sie NULL , um die gesamte Oberfläche anzugeben. Außerdem übergeben Sie einen Punkt auf der Zieloberfläche, an den die obere linke Position des Rechtecks auf dem Quellbild kopiert wird. Diese Methode unterstützt das Ausschneiden nicht. Der Vorgang schlägt fehl, es sei denn, das Quellrechteck und das entsprechende Zielrechteck sind vollständig in den Quell- und Zieloberflächen enthalten. Diese Methode unterstützt keine Alphamischung, Farbtasten oder Formatkonvertierung. Beachten Sie, dass die Ziel- und Quelloberflächen unterschiedlich sein müssen.
Weitere Einschränkungen bei der Verwendung von UpdateSurface finden Sie unter IDirect3DDevice9::UpdateSurface.
Die folgenden Methoden sind auch in C++/C zum Kopieren von Bildern auf eine Direct3D-Oberfläche verfügbar.
- D3DXLoadSurfaceFromFile
- D3DXLoadSurfaceFromFileInMemory
- D3DXLoadSurfaceFromMemory
- D3DXLoadSurfaceFromResource
- D3DXLoadSurfaceFromSurface
- IDirect3DDevice9::UpdateSurface
UpdateSurface-Beispiel
Im folgenden Beispiel werden zwei Rechtecke von der Quelloberfläche in eine Zieloberfläche kopiert. Das erste Rechteck wird von (0, 0, 50, 50) auf der Quelloberfläche an die gleiche Position auf der Zieloberfläche kopiert, und das zweite Rechteck wird von (50, 50, 100, 100) auf der Quelloberfläche in (150, 150, 200, 200) auf der Zieloberfläche kopiert.
//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);
Zugehörige Themen