Método IDirect3DSurface9::LockRect (d3d9helper.h)
Bloquea un rectángulo en una superficie.
Sintaxis
HRESULT LockRect(
[out] D3DLOCKED_RECT *pLockedRect,
[in] const RECT *pRect,
[in] DWORD Flags
);
Parámetros
[out] pLockedRect
Tipo: D3DLOCKED_RECT*
Puntero a una estructura de 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 superficie.
[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_DONOTWAIT
- D3DLOCK_NO_DIRTY_UPDATE
- D3DLOCK_NOSYSLOCK
- D3DLOCK_READONLY
Valor devuelto
Tipo: HRESULT
Si el método se realiza correctamente, el valor devuelto es D3D_OK.
Si se produce un error en el método, el valor devuelto puede ser D3DERR_INVALIDCALL o D3DERR_WASSTILLDRAWING.
Comentarios
Si se especifica la marca D3DLOCK_DONOTWAIT y el controlador no puede bloquear la superficie inmediatamente, IDirect3DSurface9::LockRect devolverá D3DERR_WASSTILLDRAWING para que una aplicación pueda usar los ciclos de CPU mientras espera a que el controlador bloquee la superficie.
El único formato bloqueable para una superficie de galería de símbolos de profundidad es D3DFMT_D16_LOCKABLE. Consulte D3DFORMAT.
Por motivos de rendimiento, las regiones desfasadas solo se registran en el nivel cero de una textura. Las regiones desfasadas se registran automáticamente cuando se llama a IDirect3DSurface9::LockRect sin D3DLOCK_NO_DIRTY_UPDATE ni D3DLOCK_READONLY. Consulte IDirect3DDevice9::UpdateTexture para obtener más información.
No se puede bloquear un búfer atrás de varios ejemplos.
Este método no puede recuperar datos de una superficie contenida en un recurso de textura creado con D3DUSAGE_RENDERTARGET porque dicha textura debe asignarse a D3DPOOL_DEFAULT memoria y, por lo 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
Plataforma de destino | Windows |
Encabezado | d3d9helper.h (incluya D3D9.h) |
Library | D3D9.lib |