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


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

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

DrvBitBlt

DrvPlgBlt

DrvStretchBlt

DrvStretchBltROP

DrvTransparentBlt

EngBitBlt

EngPlgBlt

EngStretchBlt

EngStretchBltROP