Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sperrt ein Rechteck auf einer Oberfläche.
Syntax
HRESULT LockRect(
[out] D3DLOCKED_RECT *pLockedRect,
[in] const RECT *pRect,
[in] DWORD Flags
);
Parameter
[out] pLockedRect
Typ: D3DLOCKED_RECT*
Zeiger auf eine D3DLOCKED_RECT Struktur, die den gesperrten Bereich beschreibt.
[in] pRect
Typ: const RECT*
Zeiger auf ein zu sperrende Rechteck. Wird durch einen Zeiger auf eine RECT-Struktur angegeben. Durch Angabe von NULL für diesen Parameter wird der modifiziert Bereich erweitert, um die gesamte Oberfläche abzudecken.
[in] Flags
Typ: DWORD
Kombination aus 0 oder mehr Sperrflags, die den Typ der auszuführenden Sperre beschreiben. Für diese Methode sind die folgenden Flags gültig:
- D3DLOCK_DISCARD
- D3DLOCK_DONOTWAIT
- D3DLOCK_NO_DIRTY_UPDATE
- D3DLOCK_NOSYSLOCK
- D3DLOCK_READONLY
Rückgabewert
Typ: HRESULT
Wenn die Methode erfolgreich ist, wird der Rückgabewert D3D_OK.
Wenn die Methode fehlschlägt, kann der Rückgabewert D3DERR_INVALIDCALL oder D3DERR_WASSTILLDRAWING sein.
Hinweise
Wenn das flag D3DLOCK_DONOTWAIT angegeben ist und der Treiber die Oberfläche nicht sofort sperren kann, gibt IDirect3DSurface9::LockRect D3DERR_WASSTILLDRAWING zurück, sodass eine Anwendung die CPU-Zyklen verwenden kann, während sie darauf wartet, dass der Treiber die Oberfläche sperrt.
Das einzige abschließbare Format für eine Tiefenschablonenoberfläche ist D3DFMT_D16_LOCKABLE. Siehe D3DFORMAT.
Aus Leistungsgründen werden modifiziert Regionen nur für ebene null einer Textur aufgezeichnet. Fehlerhafte Regionen werden automatisch aufgezeichnet, wenn IDirect3DSurface9::LockRect ohne D3DLOCK_NO_DIRTY_UPDATE oder D3DLOCK_READONLY aufgerufen wird. Weitere Informationen finden Sie unter IDirect3DDevice9::UpdateTexture .
Ein Multisample-Backpuffer kann nicht gesperrt werden.
Diese Methode kann keine Daten von einer Oberfläche abrufen, die in einer Texturressource enthalten ist, die mit D3DUSAGE_RENDERTARGET erstellt wurde, da eine solche Textur D3DPOOL_DEFAULT Speicher zugewiesen werden muss und daher nicht gesperrt werden kann. Verwenden Sie in diesem Fall stattdessen IDirect3DDevice9::GetRenderTargetData , um Texturdaten aus dem Gerätespeicher in den Systemspeicher zu kopieren.
Anforderungen
Zielplattform | Windows |
Kopfzeile | d3d9helper.h (include D3D9.h) |
Bibliothek | D3D9.lib |