Condividi tramite


Metodo IDirect3DVertexBuffer9::Lock (d3d9.h)

Blocca un intervallo di dati dei vertici e ottiene un puntatore alla memoria del buffer del vertice.

Sintassi

HRESULT Lock(
  [in]  UINT  OffsetToLock,
  [in]  UINT  SizeToLock,
  [out] void  **ppbData,
  [in]  DWORD Flags
);

Parametri

[in] OffsetToLock

Tipo: UINT

Offset nei dati del vertice per bloccare, in byte. Per bloccare l'intero buffer del vertice, specificare 0 per entrambi i parametri, SizeToLock e OffsetToLock.

[in] SizeToLock

Tipo: UINT

Dimensioni dei dati del vertice da bloccare, in byte. Per bloccare l'intero buffer del vertice, specificare 0 per entrambi i parametri, SizeToLock e OffsetToLock.

[out] ppbData

Tipo: VOID**

PUNTATORE VOID* a un buffer di memoria contenente i dati dei vertici restituiti.

[in] Flags

Tipo: DWORD

Combinazione di flag di blocco zero o più che descrivono il tipo di blocco da eseguire. Per questo metodo, i flag validi sono:

  • D3DLOCK_DISCARD
  • D3DLOCK_NO_DIRTY_UPDATE
  • D3DLOCK_NOSYSLOCK
  • D3DLOCK_READONLY
  • D3DLOCK_NOOVERWRITE
Per una descrizione dei flag, vedere D3DLOCK.

Valore restituito

Tipo: HRESULT

Se il metodo ha esito positivo, il valore restituito è D3D_OK. Se il metodo ha esito negativo, il valore restituito può essere D3DERR_INVALIDCALL.

Commenti

Come regola generale, non contenere un blocco su più fotogrammi. Quando si usano i buffer dei vertici, è possibile eseguire più chiamate di blocco; È tuttavia necessario assicurarsi che il numero di chiamate di blocco corrisponda al numero di chiamate di sblocco. Le chiamate DrawPrimitive non avranno esito positivo con alcun conteggio dei blocchi in sospeso in qualsiasi buffer dei vertici attualmente impostato.

I flag D3DLOCK_DISCARD e D3DLOCK_NOOVERWRITE sono validi solo nei buffer creati con D3DUSAGE_DYNAMIC.

Per informazioni sull'uso di D3DLOCK_DISCARD o D3DLOCK_NOOVERWRITE con IDirect3DVertexBuffer9::Lock, vedere Uso di buffer di vertice dinamici e buffer di indice.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione d3d9.h (includere D3D9.h)
Libreria D3D9.lib

Vedi anche

IDirect3DVertexBuffer9

IDirect3DVertexBuffer9::Unlock

Buffer vertex (Direct3D 9)