IDirect3DDevice9::UpdateSurface-Methode (d3d9.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.
Die folgende Tabelle zeigt die unterstützten Kombinationen.
Dest-Formate
Struktur RT-Textur RT Außerhalb des Bildschirms
Src-Formate Struktur Yes Ja Ja* Ja
RT-Textur No No No No
RT No No No No
Außerhalb des Bildschirms Yes Yes Yes Yes
 
  • 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

Anforderung Wert
Zielplattform Windows
Kopfzeile d3d9.h (einschließlich D3D9.h)
Bibliothek D3D9.lib

Weitere Informationen

IDirect3DDevice9