функция обратного вызова PFND3DDDI_CLEAR (d3dumddi.h)
Функция Clear выполняет аппаратное очистку целевого объекта отрисовки, буфера глубины или буфера наборов элементов.
Синтаксис
PFND3DDDI_CLEAR Pfnd3dddiClear;
HRESULT Pfnd3dddiClear(
[in] HANDLE hDevice,
const D3DDDIARG_CLEAR *unnamedParam2,
UINT unnamedParam3,
const RECT *unnamedParam4
)
{...}
Параметры
[in] hDevice
Дескриптор устройства отображения (графический контекст).
unnamedParam2
pData [in]
Указатель на структуру D3DDDIARG_CLEAR, описывающую параметры аппаратной операции очистки.
unnamedParam3
NumRect [in]
Число прямоугольников в массиве в pRect очистки. Если число прямоугольников равно нулю, Clear должен очистить весь целевой объект отрисовки, буфер глубины и буфер элементов. В этой ситуации содержимое массива в pRect не определено, и драйвер не должен пытаться считывать их.
unnamedParam4
pRect [in]
Массив структуры RECT, указывающие прямоугольные области буфера, которые драйвер должен очистить.
Возвращаемое значение
Clear возвращает S_OK или соответствующий результат ошибки, если операция очистки с помощью оборудования не выполнена.
Замечания
Как драйвер выполняет операцию очистки, зависит от количества прямоугольных областей, указанных в параметре NumRect, а также от значений, заданных в элементе D3DDDIARG_CLEARфлагов . Значения D3DCLEAR_TARGET, D3DCLEAR_STENCIL и D3DCLEAR_ZBUFFER (определенные в D3d8types.h) указывают тип буфера для очистки. Значение D3DCLEAR_COMPUTERECTS (определенное в D3dhal.h) указывает, как очистить буфер. Следующие параметры указывают, как драйвер должен очистить указанный тип буфера:
- Если NumRect имеет значение 0 (NumRect== 0) и D3DCLEAR_COMPUTERECTS не заданы в Флаги, драйвер очищает 0 пикселей (то есть no-op).
- Если NumRect задано значение 0 и D3DCLEAR_COMPUTERECTS задано в Flags, драйвер очищает весь порт просмотра (не всю поверхность).
- Если NumRect задано значение больше 0 (NumRect!= 0) и D3DCLEAR_COMPUTERECTS задано в Флаги, драйвер обрезает прямоугольные области, pRect указывает для текущего окна просмотра.
Если NumRect задано значение больше 0 (NumRect> 0) и D3DCLEAR_COMPUTERECTS задано в Флаги, драйвер обрезает указанные прямоугольные области в текущем представлении и прямоугольник ножницы, если приложение ранее задало D3DRS_SCISSORTESTENABLE. Если NumRect> 0 и D3DCLEAR_COMPUTERECTS не задано, драйвер определяет, что среда выполнения Direct3D уже обрезала указанные прямоугольные области с текущим окном просмотра и прямоугольник ножницы, если приложение ранее задало D3DRS_SCISSORTESTENABLE.
Требования
Требование | Ценность |
---|---|
целевая платформа | Настольный |
заголовка | d3dumddi.h (include D3dumddi.h) |