IDirect3DSurface9::LockRect-Methode (d3d9.h)
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
Anforderung | Wert |
---|---|
Zielplattform | Windows |
Kopfzeile | d3d9.h (einschließlich D3D9.h) |
Bibliothek | D3D9.lib |