Метод IDirect3DDevice9::CreateIndexBuffer (d3d9helper.h)

Создает буфер индекса.

Синтаксис

HRESULT CreateIndexBuffer(
  [in]          UINT                  Length,
  [in]          DWORD                 Usage,
  [in]          D3DFORMAT             Format,
  [in]          D3DPOOL               Pool,
  [out, retval] IDirect3DIndexBuffer9 **ppIndexBuffer,
  [in]          HANDLE                *pSharedHandle
);

Параметры

[in] Length

Тип: UINT

Размер буфера индекса в байтах.

[in] Usage

Тип: DWORD

Использование может иметь значение 0, что указывает на отсутствие значения использования. Однако, если требуется использование, используйте сочетание одной или нескольких констант D3DUSAGE . Рекомендуется сопоставить параметр использования в CreateIndexBuffer с флагами поведения в IDirect3D9::CreateDevice. Дополнительные сведения см. в подразделе "Примечания".

[in] Format

Тип: D3DFORMAT

Член перечисленного типа D3DFORMAT , описывающий формат буфера индекса. Дополнительные сведения см. в подразделе "Примечания". Допустимые параметры:

Элемент Описание
D3DFMT_INDEX16 Индексы — это по 16 бит каждый.
D3DFMT_INDEX32 Индексы имеют по 32 бита.

[in] Pool

Тип: D3DPOOL

Член перечисленного типа D3DPOOL , описывающий допустимый класс памяти, в который помещется ресурс.

[out, retval] ppIndexBuffer

Тип: IDirect3DIndexBuffer9**

Адрес указателя на интерфейс IDirect3DIndexBuffer9 , представляющий созданный ресурс буфера индекса.

[in] pSharedHandle

Тип: HANDLE*

Этот параметр можно использовать в Direct3D 9 для Windows Vista для совместного использования ресурсов; Присвойте ему значение NULL , чтобы не предоставлять общий доступ к ресурсу. Этот параметр не используется в Direct3D 9 для операционных систем, предшествующих Windows Vista; Задайте для него значение NULL.

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

Тип: HRESULT

Если метод выполнен успешно, возвращаемое значение будет D3D_OK. Если метод завершается ошибкой, возвращаемое значение может быть одним из следующих: D3DERR_INVALIDCALL, D3DERR_OUTOFVIDEOMEMORY, D3DXERR_INVALIDDATA E_OUTOFMEMORY.

Комментарии

Буферы индекса — это ресурсы памяти, используемые для хранения индексов. Они похожи как на поверхности, так и на буферы вершин. Использование буферов индексов позволяет Direct3D избежать ненужного копирования данных и поместить буфер в оптимальный тип памяти для ожидаемого использования.

Чтобы использовать буферы индексов, создайте буфер индекса, заблокируйте его, заполните индексами, разблокируйте его, передайте в IDirect3Device9::SetIndices, настройте вершины, настройте шейдер вершин и вызовите IDirect3DDevice9::D rawIndexedPrimitive для отрисовки.

Элемент MaxVertexIndex структуры D3DCAPS9 указывает типы буферов индекса, допустимые для отрисовки.

Требования

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

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

IDirect3DDevice9

IDirect3DIndexBuffer9::GetDesc

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