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


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

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

Синтаксис

HRESULT DrawRectPatch(
  [in] UINT                    Handle,
  [in] const float             *pNumSegs,
  [in] const D3DRECTPATCH_INFO *pRectPatchInfo
);

Параметры

[in] Handle

Тип: UINT

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

[in] pNumSegs

Тип: const float*

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

[in] pRectPatchInfo

Тип: const D3DRECTPATCH_INFO*

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

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

Тип: HRESULT

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

Комментарии

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

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

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

Требования

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

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

IDirect3DDevice9

IDirect3DDevice9::D eletePatch

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