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


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

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

Синтаксис

HRESULT DrawTriPatch(
  [in] UINT                   Handle,
  [in] const float            *pNumSegs,
  [in] const D3DTRIPATCH_INFO *pTriPatchInfo
);

Параметры

[in] Handle

Тип: UINT

Дескриптор треугольного патч для рисования.

[in] pNumSegs

Тип: const float*

Указатель на массив из трех значений с плавающей запятой, определяющих количество сегментов, на которые следует разделить каждый край треугольного исправления при тесселяции. См . D3DTRIPATCH_INFO.

[in] pTriPatchInfo

Тип: const D3DTRIPATCH_INFO*

Указатель на D3DTRIPATCH_INFO структуру, описывающую треугольный высокий порядок отрисовки.

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

Тип: HRESULT

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

Комментарии

Для статических исправлений: задайте вершинный шейдер, задайте соответствующие потоки, укажите сведения об исправлениях в параметре pTriPatchInfo и укажите дескриптор, чтобы Direct3D хватил и кэшировали сведения. Чтобы эффективно нарисовать исправление, вызовите IDirect3DDevice9::D rawTriPatch с параметром pTriPatchInfo, имеющим значение NULL. При рисовании кэшированного исправления заданные в данный момент потоки игнорируются. Переопределите кэшированные pNumSegs, указав новое значение для pNumSegs. При отрисовке кэшированного исправления необходимо задать тот же вершинный шейдер, который был задан при его захвате.

Вызов IDirect3DDevice9::D rawTriPatch с дескриптором делает недействительным тот же дескриптор, кэшированный предыдущим вызовом IDirect3Device9::D rawRectPatch .

Для динамических исправлений данные исправлений изменяются при каждой отрисовке исправления, поэтому кэшировать информацию не будет эффективно. Приложение может передать это в Direct3D, задав handle значение 0. В этом случае Direct3D рисует исправление с использованием заданных в данный момент потоков и значений pNumSegs и не кэширует никакие сведения. Недопустимо одновременно задать для Handle значение 0, а для pTriPatchInfo — значение NULL.

Требования

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

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

IDirect3DDevice9

Использование примитивов Higher-Order (Direct3D 9)