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