Метод 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
Возвращаемое значение
Тип: 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 |