Método IDirect3DTexture9::LockRect (d3d9helper.h)
Bloquea un rectángulo en un recurso de textura.
Sintaxis
HRESULT LockRect(
[in] UINT Level,
[out] D3DLOCKED_RECT *pLockedRect,
[in] const RECT *pRect,
[in] DWORD Flags
);
Parámetros
[in] Level
Tipo: UINT
Especifica el nivel del recurso de textura que se va a bloquear.
[out] pLockedRect
Tipo: D3DLOCKED_RECT*
Puntero a una estructura D3DLOCKED_RECT , que describe la región bloqueada.
[in] pRect
Tipo: const RECT*
Puntero a un rectángulo que se va a bloquear. Especificado por un puntero a una estructura RECT. Si se especifica NULL para este parámetro, se expande la región desfasada para cubrir toda la textura.
[in] Flags
Tipo: DWORD
Combinación de cero o más marcas de bloqueo que describen el tipo de bloqueo que se va a realizar. Para este método, las marcas válidas son:
- D3DLOCK_DISCARD
- D3DLOCK_NO_DIRTY_UPDATE
- D3DLOCK_NOSYSLOCK
- D3DLOCK_READONLY
Valor devuelto
Tipo: HRESULT
Si el método se ejecuta correctamente, el valor devuelto es D3D_OK. Si se produce un error en el método, el valor devuelto se puede D3DERR_INVALIDCALL.
Comentarios
Las texturas creadas con D3DPOOL_DEFAULT no se pueden bloquear. Las texturas creadas en la memoria de vídeo se pueden bloquear cuando se crean con USAGE_DYNAMIC.
Por motivos de rendimiento, las regiones desfasadas solo se registran para el nivel cero de una textura. Las regiones desfasadas se registran automáticamente cuando se llama a IDirect3DTexture9::LockRect sin D3DLOCK_NO_DIRTY_UPDATE o D3DLOCK_READONLY. Consulte IDirect3DDevice9::UpdateTexture para obtener más información.
El único formato bloqueable para una textura de galería de símbolos de profundidad es D3DLOCK_D16_LOCKABLE.
Las texturas de memoria de vídeo no se pueden bloquear, pero deben modificarse llamando a IDirect3DDevice9::UpdateSurface o IDirect3DDevice9::UpdateTexture. Hay excepciones para algunos formatos de píxeles de controlador propietarios que Direct3D 9 no reconoce. Se pueden bloquear.
Este método no puede recuperar datos de un recurso de textura creado con D3DUSAGE_RENDERTARGET porque dicha textura debe asignarse a D3DPOOL_DEFAULT memoria y, por tanto, no se puede bloquear. En este caso, use en su lugar IDirect3DDevice9::GetRenderTargetData para copiar datos de textura de la memoria del dispositivo a la memoria del sistema.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | d3d9helper.h (incluya D3D9.h) |
Library | D3D9.lib |
Consulte también
IDirect3DDevice9::GetRenderTargetData