Метод IDirect3DDevice9::P rocessVertices (d3d9.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.
Комментарии
Порядок операций для этого метода выглядит следующим образом:
- Преобразуйте вершины в пространство проекции с помощью матрицы мира + представление + проекция.
- Вычисление координат экрана с использованием параметров окна просмотра.
- Если обрезка включена, вычислить коды отсечения и сохранить их во внутреннем буфере, связанном с буфером вершин назначения. Если вершина находится внутри области просмотра, вычисляются ее экранные координаты. Если вершина находится за пределами области просмотра, вершина хранится в буфере вершин назначения в координатах пространства проекции.
- Другие примечания. У пользователя нет доступа к внутреннему буферу кода клипа. Обрезка не выполняется для треугольников или других примитивов.
Когда Direct3D создает координаты текстуры, копирует или преобразует координаты входной текстуры, а выходной формат координат текстуры определяет больше компонентов координат текстуры, чем создает Direct3D, Direct3D не изменяет эти дополнительные компоненты.
Требования
Целевая платформа | Windows |
Header | d3d9.h (включая D3D9.h) |
Библиотека | D3D9.lib |
См. также раздел
Типы устройств и требования к обработке вершин (Direct3D 9)