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


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

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

Синтаксис

HRESULT ProcessVertices(
  [in] UINT                        SrcStartIndex,
  [in] UINT                        DestIndex,
  [in] UINT                        VertexCount,
  [in] IDirect3DVertexBuffer9      *pDestBuffer,
  [in] IDirect3DVertexDeclaration9 *pVertexDecl,
  [in] DWORD                       Flags
);

Параметры

[in] SrcStartIndex

Тип: UINT

Индекс загружаемой первой вершины.

[in] DestIndex

Тип: UINT

Индекс первой вершины в буфере вершин назначения, в который помещаются результаты.

[in] VertexCount

Тип: UINT

Число вершин для обработки.

[in] pDestBuffer

Тип: IDirect3DVertexBuffer9*

Указатель на интерфейс IDirect3DVertexBuffer9 , буфер вершин назначения, представляющий поток данных чередующихся вершин.

[in] pVertexDecl

Тип: IDirect3DVertexDeclaration9*

Указатель на интерфейс IDirect3DVertexDeclaration9 , представляющий объявление выходных данных вершины. Если в качестве текущего вершинного шейдера задан шейдер вершин 3.0 или более поздней версии, должно присутствовать выходное объявление вершины.

[in] Flags

Тип: DWORD

Параметры обработки. Задайте для этого параметра значение 0 для обработки по умолчанию. Задайте значение D3DPV_DONOTCOPYDATA, чтобы предотвратить копирование системой данных вершин, не затронутых операцией с вершинами, в буфер назначения. Значение D3DPV_DONOTCOPYDATA может быть объединено с одним или несколькими значениями D3DLOCK , подходящими для буфера назначения.

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

Тип: HRESULT

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

Комментарии

Порядок операций для этого метода выглядит следующим образом:

  • Преобразуйте вершины в пространство проекции с помощью матрицы мира + представление + проекция.
  • Вычисление координат экрана с использованием параметров окна просмотра.
  • Если обрезка включена, вычислить коды отсечения и сохранить их во внутреннем буфере, связанном с буфером вершин назначения. Если вершина находится внутри области просмотра, вычисляются ее экранные координаты. Если вершина находится за пределами области просмотра, вершина хранится в буфере вершин назначения в координатах пространства проекции.
  • Другие примечания. У пользователя нет доступа к внутреннему буферу кода клипа. Обрезка не выполняется для треугольников или других примитивов.
Буфер вершин назначения pDestBuffer должен быть создан с ненулевым параметром FVF в IDirect3Device9::CreateVertexBuffer. Код FVF, указанный во время вызова метода IDirect3DDevice9::CreateVertexBuffer , указывает элементы вершин, присутствующие в буфере вершин назначения.

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

Требования

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

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

Типы устройств и требования к обработке вершин (Direct3D 9)

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

IDirect3DDevice9