• 文档 /
  • EngPlgBlt-使GDI执行旋转位块传输

显示和打印设备: Windows DDK

EngPlgBlt

EngPlgBlt使GDI执行旋转位块传输。

BOOL
  EngPlgBlt(    
	IN SURFOBJ  *psoTrg,    
	IN SURFOBJ  *psoSrc,    
	IN SURFOBJ  *psoMsk,    
	IN CLIPOBJ  *pco,    
	IN XLATEOBJ  *pxlo,    
	IN COLORADJUSTMENT  *pca,    
	IN POINTL  *pptlBrushOrg,    
	IN POINTFIX  *pptfx,    
	IN RECTL  *prcl,    
	IN POINTL  *pptl,    
	IN ULONG  iMode    
);

参数

  • psoTrg

  • 指向描述要绘制的曲面的SURFOBJ结构。

  • psoSrc

  • 指向描述位块传输操作的源表面的SURFOBJ结构。

  • psoMsk

  • 指向可选表面,表示源的掩码。 它由逻辑映射定义,逻辑映射是每像素一位的位图。

    此掩码限制复制的源的区域。 掩码具有0xCCAA的隐式rop4,这意味着应该在掩码为1的任何地方复制源,但是当掩码为零时,目标应该被保留。

    如果此参数为空,则存在0xCCCC的隐式rop4,这意味着应该在源矩形中的任何地方复制源。

    面具总是足够大以容纳相关来源; 平铺是不必要的。

  • pco

  • 指向限制要修改的目的地区域的CLIPOBJ结构。 GDI函数将剪辑区域枚举为一组矩形。

    只要有可能,GDI简化了所涉及的剪辑。 与DrvBitBlt函数不同,可以使用单个剪切矩形来调用EngPlgBlt。 这可以防止削波输出的舍入误差。

  • pxlo

  • 指向XLATEOBJ结构,定义颜色索引在源表面和目标曲面之间的转换。 可以查询XLATEOBJ结构,以查找任何源索引的RGB颜色。

    需要高质量的旋转位块传输来插值颜色。

  • pca

  • 指向COLORADJUSTMENT结构,该结构定义了在扩展位之前应用于源位图的颜色调整值。 有关更多信息,请参阅Platform SDK文档。

  • pptlBrushOrg

  • 指向半色调笔刷的起源。 使用半色调笔刷的驱动程序应将刷子图案的左上角像素与设备表面上的这一点对齐。

  • pptfx

  • 指向在目标表面中定义平行四边形的三个POINTFIX结构。 第四个隐含顶点给出为:D = B + C - A

    EngPlgBlt从不用A,B和C共线调用。

  • prcl

  • 指向RECTL结构,在源表面的坐标系中定义要复制的区域。 源矩形的点很好排序。 EngPlgBlt永远不会被给予一个空的源矩形..

  • pptl

  • 指向POINTL结构,指定给定掩码中的哪个像素对应于源矩形中的左上角像素。 如果psoMsk为NULL,则忽略此参数。

  • iMode

  • 定义源像素如何组合以获得输出像素。 此参数可以是以下值之一:

    含义
    BLACKONWHITE在缩小的位块传输时,像素应与AND运算组合。 在拉伸位块传输像素应该被复制。
    COLORONCOLOR在缩小的位块传输时,应忽略足够的像素,以使像素不需要组合。 在拉伸位块传输时,应复制像素。
    HALFTONE驱动器可以使用输出表面中的像素组来最佳地近似输入的颜色或灰度级。
    WHITEONBLACK在缩小的位块传输时,像素应与OR运算组合。 在拉伸块传输中,像素应该被复制。


    WHITEONBLACK,BLACKONWHITE和COLORONCOLOR的方法很简单,可以为旧应用程序提供兼容性,但不会产生最佳的颜色表面结果。

返回值

如果函数成功,返回值为TRUE。 否则,它为FALSE,并报告错误代码。

头文件

声明于winddi.h. 包含于 winddi.h.

注释


EngPlgBlt仅执行某些旋转类型。

该功能执行从prcl定义的矩形到任何平行四边形的位块传输。 平行四边形由pptfx定义,它指向三个数组。

prcl的源矩形被认为是一个几何矩形,它的角被从给定的整数坐标移位(-0.5,-0.5)。 这与EngStretchBlt的源矩形完全匹配。 源矩形总是很好的排序。

源矩形的左上角映射到第一个点A.源矩形的右上角映射到第二个点B.源矩形的左下角映射到第三个 点C.将源矩形的右下角映射到通过将三个给定点作为向量和计算来定义的平行四边形中的隐式点:

D = B + C - A

请注意,拉伸布局可以精确地表示为平行四边形,但目的地给出的坐标将被除以5。