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 für eine Texturressource.
Syntax
HRESULT LockRect(
[in] UINT Level,
[out] D3DLOCKED_RECT *pLockedRect,
[in] const RECT *pRect,
[in] DWORD Flags
);
Parameter
[in] Level
Typ: UINT
Gibt die Ebene der zu sperrenden Texturressource an.
[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 Angeben von NULL für diesen Parameter wird der modifiziert Bereich erweitert, um die gesamte Textur abzudecken.
[in] Flags
Typ: DWORD
Kombination von 0 oder mehr Sperrflags, die den Typ der auszuführenden Sperre beschreiben. Für diese Methode gelten die folgenden Flags:
- D3DLOCK_DISCARD
- 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 werden.
Hinweise
Mit D3DPOOL_DEFAULT erstellte Texturen können nicht gesperrt werden. Im Videospeicher erstellte Texturen können gesperrt werden, wenn sie mit USAGE_DYNAMIC erstellt werden.
Aus Leistungsgründen werden modifiziert Regionen nur für ebene null einer Textur aufgezeichnet. Fehlerhafte Regionen werden automatisch aufgezeichnet, wenn IDirect3DTexture9::LockRect ohne D3DLOCK_NO_DIRTY_UPDATE oder D3DLOCK_READONLY aufgerufen wird. Weitere Informationen finden Sie unter IDirect3DDevice9::UpdateTexture .
Das einzige sperrbare Format für eine Tiefenschablonentextur ist D3DLOCK_D16_LOCKABLE.
Videospeichertexturen können nicht gesperrt werden, müssen jedoch durch Aufrufen von IDirect3DDevice9::UpdateSurface oder IDirect3DDevice9::UpdateTexture geändert werden. Es gibt Ausnahmen für einige proprietäre Treiberpixelformate, die Direct3D 9 nicht erkennt. Diese können gesperrt werden.
Diese Methode kann keine Daten aus einer Texturressource abrufen, die mit D3DUSAGE_RENDERTARGET erstellt wurde, da eine solche Textur D3DPOOL_DEFAULT Arbeitsspeicher 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 | d3d9.h (einschließlich D3D9.h) |
| Bibliothek | D3D9.lib |
Weitere Informationen
IDirect3DDevice9::GetRenderTargetData