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


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

SetViewports наборы представлений функций.

Синтаксис

PFND3D10DDI_SETVIEWPORTS Pfnd3d10ddiSetviewports;

void Pfnd3d10ddiSetviewports(
       D3D10DDI_HDEVICE unnamedParam1,
  [in] UINT NumViewports,
  [in] UINT ClearViewports,
       const D3D10_DDI_VIEWPORT *unnamedParam4
)
{...}

Параметры

unnamedParam1

hDevice [in]

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

[in] NumViewports

Общее количество портов просмотра, указанное параметром pViewports.

[in] ClearViewports

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

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

unnamedParam4

pViewports [in]

Массив структур D3D10_DDI_VIEWPORT для заданных представлений.

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

Никакой

Замечания

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

В окнах просмотра указывается клип после преобразования для целевого объекта отображения выходных данных и ресурсов набора элементов глубины. Все порты просмотра, которые не определены в вызове SetViewports, имеют значение NULL. Окно просмотра NULL определяется следующим образом.

struct D3D10_DDI_VIEWPORT {
  FLOAT  TopLeftX = NaN;
  FLOAT  TopLeftY = NaN;
  FLOAT  Width = NaN;
  FLOAT  Height = NaN;
  FLOAT  MinDepth = NaN;
  FLOAT  MaxDepth = NaN;
} D3D10_DDI_VIEWPORT;</pre>

Это определение означает, что окно просмотра отключено.

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

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

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

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

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

SetViewports гарантирует допустимость портов просмотра. То есть SetViewports гарантирует, что размеры портов просмотра находятся в диапазоне (D3D10_VIEWPORT_BOUNDS_MIN, D3D10_VIEWPORT_BOUNDS_MAX, D3D10_MIN_DEPTH и D3D10_MAX_DEPTH). SetViewports также гарантирует, что координаты не являются naN и сбрасывают денормализованные значения с плавающей запятой до нуля.

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows Vista и более поздних версиях операционных систем Windows.
целевая платформа Настольный
заголовка d3d10umddi.h (include D3d10umddi.h)

См. также

D3D10DDI_DEVICEFUNCS

D3D10_DDI_VIEWPORT

pfnSetErrorCb