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

Функция SetScissorRects помечает части целевых объектов отрисовки, к которым ограничена отрисовка.

Синтаксис

PFND3D10DDI_SETSCISSORRECTS Pfnd3d10ddiSetscissorrects;

void Pfnd3d10ddiSetscissorrects(
       D3D10DDI_HDEVICE unnamedParam1,
  [in] UINT NumRects,
  [in] UINT ClearRects,
       const D3D10_DDI_RECT *unnamedParam4
)
{...}

Параметры

unnamedParam1

hDevice [in]

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

[in] NumRects

Общее количество целевых частей отрисовки, указанное параметром pRects .

[in] ClearRects

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

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

unnamedParam4

pRects [in]

Массив структур RECT для пометки целевых частей отрисовки.

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

None

Remarks

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

Структура D3D10_DDI_RECT определяется как структура RECT .

typedef RECT D3D10_DDI_RECT;

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

Хотя параметр NumScissorRects указывает количество целевых частей в массиве, указанное параметром pRects , некоторые значения в массиве могут иметь значение NULL.

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

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

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

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

Требования

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

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

D3D10DDI_DEVICEFUNCS

RECT

pfnSetErrorCb