Метод IDirect3DIndexBuffer9::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.

Комментарии

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

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

Сведения об использовании D3DLOCK_DISCARD или D3DLOCK_NOOVERWRITE см. в разделе Советы по программированию (Direct3D 9).

Требования

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

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

IDirect3DIndexBuffer9

IDirect3DIndexBuffer9::Unlock

Буферы индексов (Direct3D 9)