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


Метод IDirect3DDevice9::D rawPrimitiveUP (d3d9.h)

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

Синтаксис

HRESULT DrawPrimitiveUP(
  [in] D3DPRIMITIVETYPE PrimitiveType,
  [in] UINT             PrimitiveCount,
  [in] const void       *pVertexStreamZeroData,
  [in] UINT             VertexStreamZeroStride
);

Параметры

[in] PrimitiveType

Тип: D3DPRIMITIVETYPE

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

[in] PrimitiveCount

Тип: UINT

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

[in] pVertexStreamZeroData

Тип: const void*

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

[in] VertexStreamZeroStride

Тип: UINT

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

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

Тип: HRESULT

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

Комментарии

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

После вызова IDirect3DDevice9::D rawPrimitiveUP параметры потока 0, на которые ссылается IDirect3DDevice9::GetStreamSource, имеют значение NULL.

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

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

Требования

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

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

IDirect3DDevice9

IDirect3DDevice9::DrawIndexedPrimitiveUP

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