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

Отрисовывает указанный геометрический примитив с данными, заданными указателем пользовательской памяти.

Синтаксис

HRESULT DrawIndexedPrimitiveUP(
  [in] D3DPRIMITIVETYPE PrimitiveType,
  [in] UINT             MinVertexIndex,
  [in] UINT             NumVertices,
  [in] UINT             PrimitiveCount,
  [in] const void       *pIndexData,
  [in] D3DFORMAT        IndexDataFormat,
  [in] const void       *pVertexStreamZeroData,
  [in] UINT             VertexStreamZeroStride
);

Параметры

[in] PrimitiveType

Тип: D3DPRIMITIVETYPE

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

[in] MinVertexIndex

Тип: UINT

Минимальный индекс вершины. Это отсчитываемый от нуля индекс.

[in] NumVertices

Тип: UINT

Количество вершин, используемых во время этого вызова. Первая вершина находится по индексу: MinVertexIndex.

[in] PrimitiveCount

Тип: UINT

Число примитивов для отрисовки. Максимальное число примитивов определяется путем проверки элемента MaxPrimitiveCount структуры D3DCAPS9 (количество индексов является функцией числа примитива и типа примитива).

[in] pIndexData

Тип: const void*

Указатель памяти пользователя на данные индекса.

[in] IndexDataFormat

Тип: D3DFORMAT

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

[in] pVertexStreamZeroData

Тип: const void*

Указатель памяти пользователя на данные вершины. Данные вершины должны находиться в потоке 0.

[in] VertexStreamZeroStride

Тип: UINT

Количество байтов данных для каждой вершины. Это значение может быть не равно 0.

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

Тип: HRESULT

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

Комментарии

Этот метод предназначен для использования в приложениях, которые не могут хранить свои данные вершин в буферах вершин. Этот метод поддерживает только один поток вершин, который должен быть объявлен как поток 0.

После любого вызова IDirect3DDevice9::D rawIndexedPrimitiveUP параметры потока 0, на которые ссылается IDirect3Device9::GetStreamSource, имеют значение NULL. Кроме того, параметр буфера индекса для IDirect3Device9::SetIndices имеет значение NULL.

Данные вершин, передаваемые в IDirect3DDevice9::D rawIndexedPrimitiveUP , не должны сохраняться после вызова. Direct3D завершает доступ к этим данным перед возвратом из вызова.

При преобразовании устаревшего приложения в Direct3D 9 необходимо добавить вызов IDirect3DDevice9::SetFVF для использования конвейера фиксированной функции или IDirect3DDevice9::SetVertexDeclaration , чтобы использовать вершинный шейдер, прежде чем выполнять вызовы Draw.

Требования

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

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

IDirect3DDevice9

IDirect3DDevice9::DrawPrimitive

Отрисовка из буферов вершин и индексов (Direct3D 9)