функция обратного вызова PFND3D10DDI_SETRENDERTARGETS (d3d10umddi.h)

Наборы функций обратного вызова SetRenderTargets отрисовки целевых поверхностей.

Синтаксис

PFND3D10DDI_SETRENDERTARGETS Pfnd3d10ddiSetrendertargets;

void Pfnd3d10ddiSetrendertargets(
  [in] D3D10DDI_HDEVICE unnamedParam1,
  [in] const D3D10DDI_HRENDERTARGETVIEW *unnamedParam2,
  [in] UINT NumViews,
  [in] UINT ClearSlots,
  [in] D3D10DDI_HDEPTHSTENCILVIEW unnamedParam5
)
{...}

Параметры

[in] unnamedParam1

hDevice: дескриптор устройства отображения (графический контекст).

[in] unnamedParam2

phRenderTargetView: массив дескрипторов для заданных объектов целевого представления отрисовки. Обратите внимание, что некоторые значения дескриптора могут иметь значение NULL.

[in] NumViews

: количество элементов в массиве, указанного phRenderTargetView .

[in] ClearSlots

Число целевых слотов отрисовки после числа слотов, заданных NumViews , для которых задано значение NULL. Это число представляет разницу между предыдущим количеством объектов целевого представления отрисовки (то есть, когда среда выполнения Microsoft Direct3D ранее называлась SetRenderTargets) и новым числом объектов целевого представления отрисовки.

Обратите внимание, что число, указанное ClearTargets , является лишь помощником по оптимизации, так как драйвер отображения пользовательского режима может вычислить это число.

[in] unnamedParam5

hDepthStencilView: обработка представления трафарета глубины.

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

None

Remarks

Драйвер может использовать функцию обратного вызова pfnSetErrorCb , чтобы задать код ошибки.

Драйвер отображения пользовательского режима должен задать все целевые поверхности отрисовки и буфер трафарета глубины атомарно в виде одной операции.

Хотя параметр NumViews указывает количество дескрипторов в массиве, указанное параметром phRenderTargetView , некоторые значения дескрипторов в массиве могут иметь значение NULL.

Диапазон целевых поверхностей отрисовки между числом, которое указывает NumViews , и максимальным количеством допустимых целевых поверхностей отрисовки должен содержать все значения NULL или несвязанные значения. Число, указанное параметром ClearTargets , сообщает драйверу о том, сколько точек привязки драйвер должен очистить для текущей атомарной операции.

Если предыдущий вызов SetRenderTargets передавал значение 2 в параметре NumViews , а текущий вызов SetRenderTargets передает значение 4 в NumViews, текущий вызов SetRenderTargets также передает значение 0 в параметре ClearTargets . Если следующий последовательный вызов SetRenderTargets передает значение 1 в NumViews, последующий вызов также передает значение 3 (4 –1) в ClearTargets.

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

Драйвер не должен столкнуться с какой-либо ошибкой, за исключением D3DDDIERR_DEVICEREMOVED. Таким образом, если драйвер передает любую ошибку, за исключением D3DDDIERR_DEVICEREMOVED, в вызове функции pfnSetErrorCb , среда выполнения Microsoft Direct3D определит, что ошибка является критической. Даже если устройство было удалено, драйвер не должен возвращать D3DDDIERR_DEVICEREMOVED; Однако если удаление устройства мешало работе SetRenderTargets (что обычно не должно происходить), драйвер может вернуть D3DDDIERR_DEVICEREMOVED.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows Vista и более поздних версиях операционных систем Windows.
Целевая платформа Персональный компьютер
Верхняя часть d3d10umddi.h (включая D3d10umddi.h)

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

D3D10DDI_DEVICEFUNCS

pfnSetErrorCb