Поделиться через


Метод IDirect3DVertexBuffer9::Lock (d3d9helper.h)

Блокирует диапазон данных вершин и получает указатель на память буфера вершин.

Синтаксис

HRESULT Lock(
  [in]  UINT  OffsetToLock,
  [in]  UINT  SizeToLock,
  [out] void  **ppbData,
  [in]  DWORD Flags
);

Параметры

[in] OffsetToLock

Тип: UINT

Смещение в данных вершины для блокировки в байтах. Чтобы заблокировать весь буфер вершин, укажите значение 0 для обоих параметров: SizeToLock и OffsetToLock.

[in] SizeToLock

Тип: UINT

Размер данных вершины для блокировки в байтах. Чтобы заблокировать весь буфер вершин, укажите значение 0 для обоих параметров: SizeToLock и OffsetToLock.

[out] ppbData

Тип: VOID**

VOID* — указатель на буфер памяти, содержащий возвращенные данные вершины.

[in] Flags

Тип: DWORD

Сочетание нулевых или более флагов блокировки, описывающих тип выполняемой блокировки. Для этого метода допустимыми флагами являются:

  • D3DLOCK_DISCARD
  • D3DLOCK_NO_DIRTY_UPDATE
  • D3DLOCK_NOSYSLOCK
  • D3DLOCK_READONLY
  • D3DLOCK_NOOVERWRITE
Описание флагов см. в разделе D3DLOCK.

Возвращаемое значение

Тип: HRESULT

Если метод выполнен успешно, возвращаемое значение будет D3D_OK. Если метод завершается сбоем, возвращаемое значение можно D3DERR_INVALIDCALL.

Комментарии

Как правило, не удерживайте блокировку на нескольких кадрах. При работе с буферами вершин можно выполнять несколько вызовов блокировки; однако необходимо убедиться, что количество вызовов блокировки совпадает с количеством вызовов разблокировки. Вызовы DrawPrimitive не будут успешными с каким-либо незавершенным числом блокировок для любого заданного в данный момент буфера вершин.

Флаги D3DLOCK_DISCARD и D3DLOCK_NOOVERWRITE допустимы только для буферов, созданных с помощью D3DUSAGE_DYNAMIC.

Сведения об использовании D3DLOCK_DISCARD или D3DLOCK_NOOVERWRITE с IDirect3DVertexBuffer9::Lock см. в статье Использование динамических буферов вершин и индексов.

Требования

   
Целевая платформа Windows
Header d3d9helper.h (включая D3D9.h)
Библиотека D3D9.lib

См. также раздел

IDirect3DVertexBuffer9

IDirect3DVertexBuffer9::Unlock

Буферы вершин (Direct3D 9)