Функция EngPlgBlt (winddi.h)
Функция EngPlgBlt приводит к тому, что GDI выполняет сменную передачу битовых блоков.
Синтаксис
ENGAPI BOOL EngPlgBlt(
SURFOBJ *psoTrg,
SURFOBJ *psoSrc,
SURFOBJ *psoMsk,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
COLORADJUSTMENT *pca,
POINTL *pptlBrushOrg,
POINTFIX *pptfx,
RECTL *prcl,
POINTL *pptl,
[in] ULONG iMode
);
Параметры
psoTrg
Указатель на структуру SURFOBJ , которая описывает поверхность для рисования.
psoSrc
Указатель на структуру SURFOBJ, которая описывает исходную поверхность для операции передачи битовых блоков.
psoMsk
Указатель на необязательную структуру SURFOBJ, представляющую маску для источника. Он определяется логической картой, которая представляет собой растровое изображение с одним битом на пиксель.
Эта маска ограничивает область копируемых источников. Маска имеет неявный rop4 0xCCAA, что означает, что источник должен быть скопирован везде, где маска равна 1, но назначение следует оставить в покое, где маска равна нулю.
Если этот параметр имеет значение NULL, существует неявное значение rop4 0xCCCC, что означает, что источник должен быть скопирован везде в исходном прямоугольнике.
Маска всегда будет достаточно большой, чтобы содержать соответствующий источник; плитка не требуется.
pco
Указатель на структуру CLIPOBJ , которая ограничивает область назначения для изменения. Функции GDI перечисляют область клипа в виде набора прямоугольников.
По возможности GDI упрощает обрезку. В отличие от функции DrvBitBlt , EngPlgBlt можно вызывать с одним прямоугольником обрезки. Это предотвращает ошибки округления при обрезке выходных данных.
pxlo
Указатель на структуру XLATEOBJ , которая определяет способ преобразования цветовых индексов между исходной и целевой поверхностями. Эту структуру XLATEOBJ можно запросить, чтобы найти цвет RGB для любого исходного индекса.
Для интерполяции цветов требуется высококачественная передача битовых блоков.
pca
Указатель на структуру COLORADJUSTMENT, которая определяет значения корректировки цвета, применяемые к исходному растровом рисунку перед растягиванием битов. Дополнительные сведения см. в документации по Microsoft Windows SDK.
pptlBrushOrg
Указатель на структуру POINTL , указывающую источник полутоновой кисти. Драйверы, использующие полутоновые кисти, должны выравнивать верхний левый пиксель шаблона кисти с этой точкой на поверхности устройства.
pptfx
Указатель на три структуры POINTFIX, которые определяют параллелограмм в области назначения. Четвертая, неявная, вершина присваивается следующим образом: D = B + C − A. Описание этого типа данных см. в разделе Типы данных GDI.
EngPlgBlt никогда не вызывается с помощью коллинеара A, B и C.
prcl
Указатель на структуру RECTL , которая определяет в системе координат исходной поверхности область для копирования. Точки исходного прямоугольника хорошо упорядочены. EngPlgBlt никогда не получит пустой исходный прямоугольник.
pptl
Указатель на структуру POINTL, указывающую, какой пиксель в заданной маске соответствует верхнему левому пикселю в исходном прямоугольнике. Игнорируйте этот параметр, если psoMsk имеет значение NULL.
[in] iMode
Определяет, как объединяются исходные пиксели для получения выходных пикселей. Этот параметр может иметь одно из следующих значений:
Значение | Значение |
---|---|
BLACKONWHITE | При сжатии битовых блоков пиксели должны быть объединены с операцией AND. На растянутом битовом блоке необходимо реплицировать пиксели передачи. |
COLORONCOLOR | При сжатии битового блока достаточное количество пикселей следует игнорировать, чтобы пиксели не комбинировались. При растягивая передачу битовых блоков пиксели должны реплицироваться. |
ПОЛУТОНАХ | Драйвер может использовать группы пикселей в выходной поверхности, чтобы наилучшим образом приблизить цвет или серый уровень входных данных. |
WHITEONBLACK | При сжатии битовых блоков пиксели должны быть объединены с операцией OR. При передаче растяжения блоков необходимо реплицировать пиксели. |
Методы WHITEONBLACK, BLACKONWHITE и COLORONCOLOR просты и обеспечивают совместимость для старых приложений, но не дают наилучшие результаты для цветовых поверхностей.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение равно TRUE . В противном случае — FALSE и отображается код ошибки.
Комментарии
EngPlgBlt выполняет только определенные типы поворотов.
Эта функция выполняет передачу битовых блоков из прямоугольника, определенного prcl, в любой параллелограмм. Параллелограмм определяется pptfx, который указывает на массив из трех точек.
Исходный прямоугольник в prcl считается геометрическим прямоугольником, углы которого смещаются (-0,5,-0,5) от заданных целочисленных координат. Это точно соответствует исходному прямоугольнику для EngStretchBlt. Исходный прямоугольник всегда хорошо упорядочен.
Левый верхний угол исходного прямоугольника сопоставляется с первой точкой A. Правый верхний угол исходного прямоугольника сопоставляется со второй точкой B. Левый нижний угол исходного прямоугольника сопоставляется с третьей точкой C. Правый нижний угол исходного прямоугольника сопоставляется с неявной точкой параллелограмма, определяемой путем обработки трех заданных точек как векторов и вычислений:
D = B + C - A
Обратите внимание, что растяжение может быть выражено точно в виде параллелограмма, но координаты, заданные для назначения, будут кратны на пять.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows 2000 и более поздних версиях операционных систем Windows. |
Целевая платформа | Универсальное |
Верхняя часть | winddi.h (включая Winddi.h) |
Библиотека | Win32k.lib |
DLL | Win32k.sys |