Método IDirect3DTexture9::LockRect (d3d9helper.h)
Bloqueia um retângulo em um recurso de textura.
Sintaxe
HRESULT LockRect(
[in] UINT Level,
[out] D3DLOCKED_RECT *pLockedRect,
[in] const RECT *pRect,
[in] DWORD Flags
);
Parâmetros
[in] Level
Tipo: UINT
Especifica o nível do recurso de textura a ser bloqueado.
[out] pLockedRect
Tipo: D3DLOCKED_RECT*
Ponteiro para uma estrutura D3DLOCKED_RECT , descrevendo a região bloqueada.
[in] pRect
Tipo: const RECT*
Ponteiro para um retângulo a ser bloqueado. Especificado por um ponteiro para uma estrutura RECT. Especificar NULL para esse parâmetro expande a região sujo para cobrir toda a textura.
[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
Retornar valor
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
Texturas criadas com D3DPOOL_DEFAULT não são bloqueáveis. Texturas criadas na memória de vídeo são bloqueáveis quando criadas com USAGE_DYNAMIC.
Por motivos de desempenho, sujo regiões são registradas apenas para o nível zero de uma textura. Regiões sujas são registradas automaticamente quando IDirect3DTexture9::LockRect é chamado sem D3DLOCK_NO_DIRTY_UPDATE ou D3DLOCK_READONLY. Consulte IDirect3DDevice9::UpdateTexture para obter mais informações.
O único formato bloqueável para uma textura de estêncil de profundidade é D3DLOCK_D16_LOCKABLE.
As texturas de memória de vídeo não podem ser bloqueadas, mas devem ser modificadas chamando IDirect3DDevice9::UpdateSurface ou IDirect3DDevice9::UpdateTexture. Há exceções para alguns formatos de pixel de driver proprietários que o Direct3D 9 não reconhece. Eles podem ser bloqueados.
Esse método não pode recuperar dados de um recurso de textura criado com D3DUSAGE_RENDERTARGET porque essa textura deve ser atribuída a D3DPOOL_DEFAULT memória e, portanto, não é bloqueável. Nesse caso, use IDirect3DDevice9::GetRenderTargetData para copiar dados de textura da memória do dispositivo para a memória do sistema.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Windows |
Cabeçalho | d3d9helper.h (inclua D3D9.h) |
Biblioteca | D3D9.lib |
Confira também
IDirect3DDevice9::GetRenderTargetData