Функция EngTransparentBlt (winddi.h)
Функция EngTransparentBlt обеспечивает возможность передачи битовых блоков с прозрачностью.
Синтаксис
ENGAPI BOOL EngTransparentBlt(
[in] SURFOBJ *psoDst,
[in] SURFOBJ *psoSrc,
[in, optional] CLIPOBJ *pco,
[in, optional] XLATEOBJ *pxlo,
[in] RECTL *prclDst,
[in] RECTL *prclSrc,
[in] ULONG TransColor,
[in] ULONG bCalledFromBitBlt
);
Параметры
[in] psoDst
Указатель на структуру SURFOBJ , которая определяет целевую поверхность, на которой выполняется рисование.
[in] psoSrc
Указатель на структуру SURFOBJ, которая определяет исходную поверхность передачи битового блока.
[in, optional] pco
Указатель на структуру CLIPOBJ . Подпрограммы службы CLIPOBJ_Xxx предоставляются для перечисления области клипа в виде набора прямоугольников. Это перечисление ограничивает область измененного назначения. По возможности GDI упрощает обрезку.
[in, optional] pxlo
Указатель на структуру XLATEOBJ , которая указывает, как следует преобразовать исходные цветовые индексы для записи в целевую поверхность.
[in] prclDst
Указатель на структуру RECTL , которая определяет изменяемую прямоугольную область. Этот прямоугольник задается в системе координат поверхности назначения и определяется двумя точками: верхней левой и нижней правой. Прямоугольник является исключающим в правом нижнем углу; то есть нижний и правый края не являются частью передачи битового блока. Две точки, определяющие прямоугольник, всегда хорошо упорядочены.
Драйвер никогда не должен вызывать EngTransparentBlt с пустым прямоугольником назначения.
[in] prclSrc
Указатель на структуру RECTL, которая определяет прямоугольную область для копирования. Этот прямоугольник задается в системе координат исходной поверхности и определяется двумя точками: верхней левой и нижней правой. Две точки, определяющие прямоугольник, всегда хорошо упорядочены.
Исходный прямоугольник никогда не будет превышать границы исходной поверхности и поэтому никогда не будет нависать над исходной поверхностью.
Этот прямоугольник сопоставляется с прямоугольником назначения, определенным prclDst. Драйвер никогда не должен вызывать EngTransparentBlt с пустым прямоугольником источника.
[in] TransColor
Задает физический прозрачный цвет в формате исходной поверхности. Это значение индекса цвета, преобразованное в палитру исходной поверхности. Дополнительные сведения см. в разделе Примечания.
[in] bCalledFromBitBlt
Зарезервировано. Для этого параметра необходимо задать нулевое значение.
Возвращаемое значение
EngTransparentBlt возвращает значение TRUE при успешном выполнении. В противном случае возвращается значение FALSE.
Комментарии
Драйвер должен вызвать EngTransparentBlt , если он подключил DrvTransparentBlt и вызывается для выполнения действий, которые он не поддерживает.
Передача битовых блоков с прозрачностью поддерживается между двумя управляемыми устройством поверхностями или между поверхностью, управляемой устройством, и растровым изображением стандартного формата, управляемым GDI. В настоящее время GDI поддерживает только BMF_4BPP и BMF_8BPP исходных поверхностей.
Пиксели на исходной поверхности, соответствующие прозрачному цвету, указанному в iTransparentColor , не копируются. Подробное описание прозрачных blts см. в разделе Копирование точечных изображений.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows 2000 и более поздних версиях операционных систем Windows. |
Целевая платформа | Универсальное |
Верхняя часть | winddi.h (включая Winddi.h) |
Библиотека | Win32k.lib |
DLL | Win32k.sys |