Método IDirect3DVertexBuffer9::Lock (d3d9helper.h)
Bloqueia um intervalo de dados de vértice e obtém um ponteiro para a memória do buffer de vértice.
Sintaxe
HRESULT Lock(
[in] UINT OffsetToLock,
[in] UINT SizeToLock,
[out] void **ppbData,
[in] DWORD Flags
);
Parâmetros
[in] OffsetToLock
Tipo: UINT
Deslocamento para os dados de vértice a serem bloqueados, em bytes. Para bloquear todo o buffer de vértice, especifique 0 para ambos os parâmetros, SizeToLock e OffsetToLock.
[in] SizeToLock
Tipo: UINT
Tamanho dos dados de vértice a serem bloqueados, em bytes. Para bloquear todo o buffer de vértice, especifique 0 para ambos os parâmetros, SizeToLock e OffsetToLock.
[out] ppbData
Tipo: VOID**
Void* ponteiro para um buffer de memória que contém os dados de vértice retornados.
[in] Flags
Tipo: DWORD
Combinação de zero ou mais sinalizadores de bloqueio que descrevem o tipo de bloqueio a ser executado. Para esse método, os sinalizadores válidos são:
- D3DLOCK_DISCARD
- D3DLOCK_NO_DIRTY_UPDATE
- D3DLOCK_NOSYSLOCK
- D3DLOCK_READONLY
- D3DLOCK_NOOVERWRITE
Valor retornado
Tipo: HRESULT
Se o método for bem-sucedido, o valor retornado será D3D_OK. Se o método falhar, o valor retornado poderá ser D3DERR_INVALIDCALL.
Comentários
Como regra geral, não mantenha um bloqueio em mais de um quadro. Ao trabalhar com buffers de vértice, você tem permissão para fazer várias chamadas de bloqueio; no entanto, você deve garantir que o número de chamadas de bloqueio corresponda ao número de chamadas de desbloqueio. As chamadas DrawPrimitive não terão êxito com nenhuma contagem de bloqueio pendente em nenhum buffer de vértice definido no momento.
Os sinalizadores D3DLOCK_DISCARD e D3DLOCK_NOOVERWRITE são válidos somente em buffers criados com D3DUSAGE_DYNAMIC.
Para obter informações sobre como usar D3DLOCK_DISCARD ou D3DLOCK_NOOVERWRITE com IDirect3DVertexBuffer9::Lock, consulte Usando buffers dinâmicos de vértice e índice.
Requisitos
Plataforma de Destino | Windows |
Cabeçalho | d3d9helper.h (inclua D3D9.h) |
Biblioteca | D3D9.lib |