IDirect3DIndexBuffer9::Lock-Methode (d3d9helper.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 Bytes. 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 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
- 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
Halten Sie in der Regel keine Sperre für mehr als einen Frame. Beim Arbeiten mit Indexpuffern können Sie mehrere Sperraufrufe tätigen. Sie müssen jedoch sicherstellen, dass die Anzahl der Sperranrufe mit der Anzahl der Entsperrungsaufrufe übereinstimmt. IDirect3DDevice9::D rawIndexedPrimitive-Aufrufe werden nicht erfolgreich mit einer ausstehenden Sperranzahl für einen aktuell festgelegten Indexpuffer ausgeführt.
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
Zielplattform | Windows |
Kopfzeile | d3d9helper.h (einschließlich D3D9.h) |
Bibliothek | D3D9.lib |