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
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 |