Metodo IDirect3DIndexBuffer9::Lock (d3d9helper.h)
Blocca un intervallo di dati di indice e ottiene un puntatore alla memoria del buffer di indice.
Sintassi
HRESULT Lock(
[in] UINT OffsetToLock,
[in] UINT SizeToLock,
[out] void **ppbData,
[in] DWORD Flags
);
Parametri
[in] OffsetToLock
Tipo: UINT
Offset nei dati dell'indice da bloccare, in byte. Bloccare l'intero buffer di indice specificando 0 per entrambi i parametri, SizeToLock e OffsetToLock.
[in] SizeToLock
Tipo: UINT
Dimensioni dei dati dell'indice da bloccare, in byte. Bloccare l'intero buffer di indice specificando 0 per entrambi i parametri, SizeToLock e OffsetToLock.
[out] ppbData
Tipo: VOID**
PUNTATORE VOID* a un buffer di memoria contenente i dati dell'indice 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 buffer di indice, è possibile effettuare più chiamate di blocco. È tuttavia necessario assicurarsi che il numero di chiamate di blocco corrisponda al numero di chiamate di sblocco. Le chiamate IDirect3DDevice9::D rawIndexedPrimitive non avranno esito positivo con alcun conteggio dei blocchi in sospeso in qualsiasi buffer di indice 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, vedere Suggerimenti per la programmazione (Direct3D 9).
Requisiti
Piattaforma di destinazione | Windows |
Intestazione | d3d9helper.h (include D3D9.h) |
Libreria | D3D9.lib |