IDirect3DDevice9::UpdateSurface-Methode (d3d9helper.h)
Kopiert rechteckige Teilmengen von Pixeln von einer Oberfläche auf eine andere.
Syntax
HRESULT UpdateSurface(
[in] IDirect3DSurface9 *pSourceSurface,
[in] const RECT *pSourceRect,
[in] IDirect3DSurface9 *pDestinationSurface,
[in] const POINT *pDestPoint
);
Parameter
[in] pSourceSurface
Typ: IDirect3DSurface9*
Zeiger auf eine IDirect3DSurface9-Schnittstelle , die die Quelloberfläche darstellt. Dieser Parameter muss auf eine andere Oberfläche als pDestinationSurface zeigen.
[in] pSourceRect
Typ: const RECT*
Zeiger auf ein Rechteck auf der Quelloberfläche. Wenn Sie null für diesen Parameter angeben, wird die gesamte Oberfläche kopiert.
[in] pDestinationSurface
Typ: IDirect3DSurface9*
Zeiger auf eine IDirect3DSurface9-Schnittstelle , die die Zieloberfläche darstellt.
[in] pDestPoint
Typ: const POINT*
Zeiger auf die obere linke Ecke des Zielrechtecks. Wenn Sie null für diesen Parameter angeben, wird die gesamte Oberfläche kopiert.
Rückgabewert
Typ: HRESULT
Wenn die Methode erfolgreich ist, wird der Rückgabewert D3D_OK. Wenn die Methode fehlschlägt, kann der Rückgabewert einer der folgenden sein: D3DERR_INVALIDCALL.
Hinweise
Diese Methode ähnelt CopyRects in DirectX 8.
Diese Funktion hat die folgenden Einschränkungen.
- Die Quelloberfläche muss mit D3DPOOL_SYSTEMMEM erstellt worden sein.
- Die Zieloberfläche muss mit D3DPOOL_DEFAULT erstellt worden sein.
- Keine Oberfläche kann gesperrt werden oder einen hervorragenden Gerätekontext halten.
- Keine Oberfläche kann mit Multisampling erstellt werden. Das einzige gültige Flag für beide Oberflächen ist D3DMULTISAMPLE_NONE.
- Das Oberflächenformat darf kein Tiefenschablonenformat sein.
- Die Quell- und dest-Rects müssen in die Oberfläche passen.
- Es ist keine Dehnung oder Verkleinerung zulässig (die Rects müssen die gleiche Größe aufweisen).
- Das Quellformat muss mit dem dest-Format übereinstimmen.
Dest-Formate | |||||
---|---|---|---|---|---|
Struktur | RT-Textur | RT | Außerhalb des Bildschirms | ||
Src-Formate | Struktur | Ja | Ja | Ja* | Ja |
RT-Textur | Nein | Nein | Nein | Nein | |
RT | Nein | Nein | Nein | Nein | |
Außerhalb des Bildschirms | Ja | Ja | Ja | Ja |
- Wenn der Treiber die angeforderte Kopie nicht unterstützt, wird sie mithilfe von Sperren und Kopieren emuliert.
Wenn die Anwendung Daten aus einem D3DPOOL_DEFAULT Renderziel auf eine D3DPOOL_SYSTEMMEM-Oberfläche kopieren muss, kann sie GetRenderTargetData verwenden.
Anforderungen
Zielplattform | Windows |
Kopfzeile | d3d9helper.h (einschließlich D3D9.h) |
Bibliothek | D3D9.lib |