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


Функция EngBitBlt (winddi.h)

Функция EngBitBlt предоставляет общие возможности передачи битовых блоков между управляемыми устройством поверхностями или между поверхностью, управляемой устройством, и растровым изображением стандартного формата под управлением GDI.

Синтаксис

ENGAPI BOOL EngBitBlt(
       SURFOBJ  *psoTrg,
       SURFOBJ  *psoSrc,
       SURFOBJ  *psoMask,
       CLIPOBJ  *pco,
       XLATEOBJ *pxlo,
       RECTL    *prclTrg,
       POINTL   *pptlSrc,
       POINTL   *pptlMask,
       BRUSHOBJ *pbo,
       POINTL   *pptlBrush,
  [in] ROP4     rop4
);

Параметры

psoTrg

Указатель на структуру SURFOBJ , которая определяет поверхность, на которой выполняется рисование.

psoSrc

Если это требуется для rop4 , указатель на структуру SURFOBJ, которая определяет источник для операции передачи битового блока.

psoMask

Указатель на структуру SURFOBJ, которая определяет поверхность, используемую в качестве маски. Маска определяется как растровое изображение с 1 битом на пиксель. Как правило, маска ограничивает область, которая должна быть изменена в области назначения. Маскирование выбирается rop4 со значением 0xAACC. Область назначения не затрагивается, если маска равна нулю.

Маска достаточно велика, чтобы покрыть прямоугольник назначения.

Если значение этого параметра равно NULL и маска требуется для rop4, то используется неявная маска в кисти. Если маска является обязательной, psoMask переопределяет неявную маску в кисти.

pco

Указатель на структуру CLIPOBJ . Подпрограммы службы CLIPOBJ_Xxx предоставляются для перечисления области клипа в виде набора прямоугольников. Это перечисление ограничивает область назначения, которая будет изменена. По возможности GDI упрощает обрезку; Например, эта функция никогда не вызывается с одним прямоугольником обрезки. GDI обрезает прямоугольник назначения перед вызовом этой функции, делая дополнительную обрезку ненужной.

pxlo

Указатель на структуру XLATEOBJ , которая указывает, как следует претворять цветовые индексы между исходной и целевой поверхностями.

prclTrg

Указатель на структуру RECTL в системе координат поверхности назначения, которая определяет область для изменения. Прямоугольник определяется двумя точками; верхний левый и нижний правый. Нижний и правый края этого прямоугольника не являются частью передачи битового блока, то есть прямоугольник является монопольным в правом нижнем углу.

EngBitBlt никогда не вызывается с пустым прямоугольником назначения. Две точки, определяющие прямоугольник, всегда хорошо упорядочены.

pptlSrc

Указатель на структуру POINTL , которая определяет левый верхний угол исходного прямоугольника, если источник существует. Если источника нет, драйвер должен игнорировать этот параметр.

pptlMask

Указатель на структуру POINTL, которая определяет, какой пиксель в маске соответствует верхнему левому углу прямоугольника назначения. Если в psoMask не указана маска, драйвер должен игнорировать этот параметр.

pbo

Указатель на структуру BRUSHOBJ , используемую для определения шаблона для передачи битовых блоков. Подпрограмма службы BRUSHOBJ_pvGetRbrush GDI извлекает реализацию кисти устройства. Драйвер может игнорировать этот параметр, если для параметра rop4 не требуется шаблон.

pptlBrush

Указатель на структуру POINTL , которая определяет источник кисти в области назначения. Верхний левый пиксель кисти выравнивается в этом месте, и кисть повторяется в соответствии с ее размерами. Игнорируйте этот параметр, если для параметра rop4 не требуется шаблон.

[in] rop4

Представляет растровую операцию, которая определяет, как маски, шаблона, исходного и целевого пикселей объединяются для записи выходного пикселя на целевую поверхность.

Это кватернарная растровая операция, которая является естественным продолжением обычной тернарной операции Rop3. Rop4 имеет 16 соответствующих битов, которые аналогичны 8 определяющим битам Rop3. (Другие избыточные биты Rop3 игнорируются.) Самый простой способ реализации Rop4 — рассмотреть 2 байта отдельно. Нижний байт указывает Rop3, который должен вычисляться, где маска имеет значение 1. Высокий байт указывает Rop3, который можно вычислить и применить, где маска имеет значение 0.

Возвращаемое значение

Возвращаемое значение равно TRUE , если функция выполнена успешно. В противном случае это значение false, а код ошибки записывается в журнал.

Комментарии

Если поверхность устройства упорядочена в виде растрового изображения в стандартном формате, драйвер может запросить, чтобы GDI выполнил передачу битового блока, вызвав EngBitBlt. Драйвер может сделать это, если у него есть специальное оборудование для быстрой обработки простых передач, но он не хочет обрабатывать вызовы со сложными передачами.

Дополнительные сведения о растровых операциях см. в документации по Microsoft Windows SDK.

Требования

   
Минимальная версия клиента Доступно в Windows 2000 и более поздних версиях операционных систем Windows.
Целевая платформа Универсальное
Верхняя часть winddi.h (включая Winddi.h)
Библиотека Win32k.lib
DLL Win32k.sys

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

BRUSHOBJ

BRUSHOBJ_pvGetRbrush

CLIPOBJ

DrvBitBlt

EngAssociateSurface

SURFOBJ

XLATEOBJ