Метод IDirect3DSurface9::LockRect (d3d9helper.h)
Блокирует прямоугольник на поверхности.
Синтаксис
HRESULT LockRect(
[out] D3DLOCKED_RECT *pLockedRect,
[in] const RECT *pRect,
[in] DWORD Flags
);
Параметры
[out] pLockedRect
Тип: D3DLOCKED_RECT*
Указатель на структуру D3DLOCKED_RECT , описывающую заблокированную область.
[in] pRect
Тип: const RECT*
Указатель на прямоугольник для блокировки. Определяется указателем на структуру RECT . Если указать значение NULL для этого параметра, область грязное будет охватывать всю поверхность.
[in] Flags
Тип: DWORD
Сочетание нулевых или более флагов блокировки, описывающих тип выполняемой блокировки. Для этого метода допустимыми флагами являются:
- D3DLOCK_DISCARD
- D3DLOCK_DONOTWAIT
- D3DLOCK_NO_DIRTY_UPDATE
- D3DLOCK_NOSYSLOCK
- D3DLOCK_READONLY
Возвращаемое значение
Тип: HRESULT
Если метод выполнен успешно, возвращаемое значение будет D3D_OK.
Если метод завершается сбоем, возвращаемое значение может быть D3DERR_INVALIDCALL или D3DERR_WASSTILLDRAWING.
Комментарии
Если указан флаг D3DLOCK_DONOTWAIT и драйвер не может немедленно заблокировать поверхность, IDirect3DSurface9::LockRect вернет D3DERR_WASSTILLDRAWING, чтобы приложение пользовалось циклами ЦП в ожидании блокировки драйвера поверхности.
Единственным блокируемым форматом для поверхности трафарета глубины является D3DFMT_D16_LOCKABLE. См . D3DFORMAT.
По соображениям производительности грязное области записываются только для нулевого уровня текстуры. Грязные области автоматически записываются при вызове IDirect3DSurface9::LockRect без D3DLOCK_NO_DIRTY_UPDATE или D3DLOCK_READONLY. Дополнительные сведения см. в разделе IDirect3DDevice9::UpdateTexture .
Не удается заблокировать обратный буфер с несколькими выборками.
Этот метод не может получить данные с поверхности, содержащейся в ресурсе текстуры, созданном с помощью D3DUSAGE_RENDERTARGET поскольку такая текстура должна быть назначена D3DPOOL_DEFAULT памяти и поэтому не блокируется. В этом случае используйте вместо него IDirect3DDevice9::GetRenderTargetData для копирования данных текстуры из памяти устройства в системную память.
Требования
Целевая платформа | Windows |
Header | d3d9helper.h (включая D3D9.h) |
Библиотека | D3D9.lib |