Freigeben über


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
Eine Beschreibung der Flags finden Sie unter D3DLOCK.

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

Weitere Informationen

IDirect3DIndexBuffer9

IDirect3DIndexBuffer9::Unlock

Indexpuffer (Direct3D 9)