Функция EngGradientFill (winddi.h)
Функция EngGradientFill затеняет указанные примитивы.
Синтаксис
ENGAPI BOOL EngGradientFill(
SURFOBJ *psoDest,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
TRIVERTEX *pVertex,
ULONG nVertex,
PVOID pMesh,
ULONG nMesh,
RECTL *prclExtents,
POINTL *pptlDitherOrg,
[in] ULONG ulMode
);
Параметры
psoDest
Указатель на структуру SURFOBJ , которая определяет поверхность, на которой выполняется рисование.
pco
Указатель на структуру CLIPOBJ . Подпрограммы службы CLIPOBJ_Xxx предоставляются для перечисления области клипа в виде набора прямоугольников. Это перечисление ограничивает область измененного назначения. По возможности GDI упрощает обрезку.
pxlo
Указатель на структуру XLATEOBJ . Эта структура указывает, как индексы цвета должны быть преобразованы между форматом RGB 32 бит/с и назначением. Драйвер отвечает за преобразование входных COLOR16 значений цвета в RGB.
pVertex
Указатель на массив структур TRIVERTEX, где каждая запись содержит сведения о положении и цвете. Структура TRIVERTEX описана в документации по Microsoft Windows SDK.
nVertex
Указывает количество структур TRIVERTEX в массиве, на которое указывает pVertex .
pMesh
Указатель на массив структур, определяющих подключение элементов TRIVERTEX, на которые указывает pVertex .
При рисовании прямоугольников pMesh указывает на массив GRADIENT_RECT структур, каждая из которых задает два элемента TRIVERTEX, определяющих прямоугольник. Элементы TRIVERTEX могут представлять любую противопоставленную по диагонали пару вершин прямоугольника. Прямоугольный рисунок является эксклюзивным в нижнем правом углу. Как TRIVERTEX, так и GRADIENT_RECT определены в документации windows SDK.
При рисовании треугольников pMesh указывает на массив GRADIENT_TRIANGLE структур, каждая из которых задает три элемента TRIVERTEX, определяющие треугольник. Рисунок треугольника является эксклюзивным в правом нижнем углу. Структура GRADIENT_TRIANGLE определена в документации по Windows SDK.
nMesh
Указывает количество элементов в массиве, на которое указывает pMesh .
prclExtents
Указатель на структуру RECTL , определяющую область, в которой будет выполняться рисование градиента. Точки указываются в системе координат поверхности назначения. Этот параметр полезен при оценке размера операций рисования.
pptlDitherOrg
Указатель на структуру POINTL , которая определяет источник на поверхности для смеления. Верхний левый пиксель узора dither выравнивается по этой точке.
[in] ulMode
Указывает текущий режим рисования и способ интерпретации массива, на который указывает pMesh . Этот параметр может иметь одно из следующих значений:
GRADIENT_FILL_RECT_H
Параметр pMesh указывает на массив GRADIENT_RECT структур. Каждый прямоугольник должен быть затенен слева направо.
GRADIENT_FILL_RECT_V
Параметр pMesh указывает на массив GRADIENT_RECT структур. Каждый прямоугольник должен быть затенен сверху вниз.
GRADIENT_FILL_TRIANGLE
Параметр pMesh указывает на массив GRADIENT_TRIANGLE структур.
Возвращаемое значение
При успешном выполнении функция EngGradientFill возвращает значение TRUE . В противном случае он сообщает об ошибке и возвращает значение FALSE.
Комментарии
Драйвер должен вызвать EngGradientFill, если он подключил DrvGradientFill и вызывается для выполнения действий, которые он не поддерживает.
Формулы, используемые для вычисления значения цвета в каждом пикселе, зависят от значения ulMode следующим образом:
GDI игнорирует альфа-значение вершин, оставляя альфа-канал без изменений для поверхностей, поддерживающих альфа-канал.
Требования
Минимальная версия клиента | Доступно в Windows 2000 и более поздних версиях операционных систем Windows. |
Целевая платформа | Универсальное |
Верхняя часть | winddi.h (включая Winddi.h) |
Библиотека | Win32k.lib |
DLL | Win32k.sys |