IDirect3DIndexBuffer9::Lock-Methode (d3d9.h)
Sperrt einen Bereich von Indexdaten und ruft einen Zeiger auf den Indexpufferspeicher ab.
Syntax
HRESULT Lock(
[in] UINT OffsetToLock,
[in] UINT SizeToLock,
[out] void **ppbData,
[in] DWORD Flags
);
Parameter
[in] OffsetToLock
Typ: UINT
Offset in die zu sperrenden Indexdaten in Byte. Sperren Sie den gesamten Indexpuffer, indem Sie 0 für beide Parameter angeben, SizeToLock und OffsetToLock.
[in] SizeToLock
Typ: UINT
Größe der zu sperrenden Indexdaten in Bytes. Sperren Sie den gesamten Indexpuffer, indem Sie 0 für beide Parameter angeben, SizeToLock und OffsetToLock.
[out] ppbData
Typ: VOID**
VOID*-Zeiger auf einen Speicherpuffer, der die zurückgegebenen Indexdaten enthält.
[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_NO_DIRTY_UPDATE
- D3DLOCK_NOSYSLOCK
- D3DLOCK_READONLY
- D3DLOCK_NOOVERWRITE
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
Im Allgemeinen gilt: Halten Sie keine Sperre für mehr als einen Frame. Wenn Sie mit Indexpuffern arbeiten, können Sie mehrere Sperraufrufe ausführen. Sie müssen jedoch sicherstellen, dass die Anzahl der Sperranrufe mit der Anzahl der Entsperrungsaufrufe übereinstimmt. IDirect3DDevice9::D rawIndexedPrimitive-Aufrufe sind nicht erfolgreich mit einer ausstehenden Sperranzahl für einen aktuell festgelegten Indexpuffer.
Die flags D3DLOCK_DISCARD und D3DLOCK_NOOVERWRITE sind nur für Puffer gültig, die mit D3DUSAGE_DYNAMIC erstellt wurden.
Informationen zur Verwendung von D3DLOCK_DISCARD oder D3DLOCK_NOOVERWRITE finden Sie unter Programmiertipps (Direct3D 9).
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Windows |
Kopfzeile | d3d9.h (einschließlich D3D9.h) |
Bibliothek | D3D9.lib |