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


Функция 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

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

DrvGradientFill