显示和打印设备: Windows DDK |
EngBitBlt在设备管理的表面之间或设备管理的表面和GDI管理的标准格式位图之间提供通用的位块传输功能。
BOOL EngBitBlt( IN SURFOBJ *psoTrg, IN SURFOBJ *psoSrc, IN SURFOBJ *psoMask, IN CLIPOBJ *pco, IN XLATEOBJ *pxlo, IN RECTL *prclTrg, IN POINTL *pptlSrc, IN POINTL *pptlMask, IN BRUSHOBJ *pbo, IN POINTL *pptlBrush, IN ROP4 rop4 );
psoTrg
指向SURFOBJ结构,以标识要绘制的曲面。
psoSrc
如果rop4需要它,则指向定义用于位块传输操作的源的SURFOBJ结构。
psoMask
指向定义要用作掩码的曲面的SURFOBJ结构。掩码被定义为每像素1位的位图。通常,掩模限制目的地表面中要修改的区域。屏蔽由具有值0xAACC的rop4选择。当掩模为零时,目标表面不受影响。
面罩足够大以覆盖目的地矩形。
如果该参数的值为空,并且rop4需要掩码,则使用画笔中的隐式掩码。如果需要掩码,则psoMask将覆盖画笔中的隐式掩码。
pco
指向CLIPOBJ结构。 提供CLIPOBJ_Xxx服务程序以将剪辑区域枚举为一组矩形。 此枚举限制将被修改的目标的区域。 只要有可能,GDI就简化了涉及的剪辑; 例如,这个函数从来不会用单个裁剪矩形来调用。 在调用此函数之前,GDI会剪切目标矩形,不需要额外的剪辑。
pxlo
指向一个XLATEOBJ结构,指示如何在源表面和目标曲面之间转换颜色索引。
prclTrg
指向目标曲面的坐标系中定义要修改区域的RECTL结构。 矩形由两点定义; 左上和右下 该矩形的下边缘和右边缘不是位块传输的一部分,意味着矩形是右下方的排除。
EngBitBlt从来没有调用空的目标矩形。 定义矩形的两个点总是很好的排序。
pptlSrc
指向定义源矩形左上角的POINTL结构(如果源存在)。 如果没有源,则驱动程序应忽略此参数。
pptlMask
指向POINTL结构,定义掩码中的哪个像素对应于目标矩形的左上角。 如果在psoMask中未指定掩码,则驱动程序应忽略此参数。
pbo
指向用于定义位块传输模式的画笔对象。 GDI的BRUSHOBJ_pvGetRbrush服务程序检索设备对画笔的实现。 如果rop4参数不需要模式,驱动程序可以忽略此参数。
pptlBrush
指向定义目标表面中画笔起点的POINTL结构。 刷子的左上方像素在这一点处对齐,并且刷子根据其尺寸重复。 如果therop4参数不需要模式,则忽略该参数。
rop4
表示光栅操作,它定义掩模,图案,源和目标像素如何组合以将输出像素写入目标曲面。
这是一个四元光栅操作,它是通常的三元Rop3操作的自然扩展。 Rop4具有16个相关位,类似于Rop3的8个定义位。 (另一个,Rop3的冗余位被忽略。)实现Rop4的最简单的方法是单独考虑它的2个字节。 低字节指定在掩码为1时应该计算的Rop3。高字节指定可以在掩码为0的任何地方计算和应用的Rop3。
返回值
如果函数成功,返回值为TRUE。 否则,它为FALSE,并记录错误代码。
声明于 winddi.h. 包含于 winddi.h.
注释
如果将设备的表面组织为标准格式位图,驱动程序可以通过调用EngBitBlt来请求GDI执行位块传输。 如果驱动程序具有特殊的硬件来快速处理简单的传输,但是不希望通过复杂的传输来处理呼叫,则可能会这样做。
有关栅格操作的更多信息,请参阅平台 SDK文档。