Skip to content

Latest commit

 

History

History
148 lines (92 loc) · 6.9 KB

nf-winddi-engbitblt.md

File metadata and controls

148 lines (92 loc) · 6.9 KB
UID title description helpviewer_keywords old-location tech.root ms.assetid ms.date ms.keywords req.header req.include-header req.target-type req.target-min-winverclnt req.target-min-winversvr req.kmdf-ver req.umdf-ver req.ddi-compliance req.unicode-ansi req.idl req.max-support req.namespace req.assembly req.type-library req.lib req.dll req.irql targetos req.typenames req.redist ms.custom f1_keywords dev_langs topic_type api_type api_location api_name
NF:winddi.EngBitBlt
EngBitBlt function (winddi.h)
The EngBitBlt function provides general bit-block transfer capabilities either between device-managed surfaces, or between a device-managed surface and a GDI-managed standard format bitmap.
EngBitBlt
EngBitBlt function [Display Devices]
display.engbitblt
gdifncs_ec19b94a-e653-4ecb-9c5a-2ddc8d1745c6.xml
winddi/EngBitBlt
display\engbitblt.htm
display
e99dbe54-485b-4a56-9956-2965f04020db
12/05/2018
EngBitBlt, EngBitBlt function [Display Devices], display.engbitblt, gdifncs_ec19b94a-e653-4ecb-9c5a-2ddc8d1745c6.xml, winddi/EngBitBlt
winddi.h
Winddi.h
Universal
Available in Windows 2000 and later versions of the Windows operating systems.
Win32k.lib
Win32k.sys
Windows
19H1
EngBitBlt
winddi/EngBitBlt
c++
APIRef
kbSyntax
DllExport
Win32k.sys
Ext-MS-Win-moderncore-Win32k-base-ntgdi-l1-1-0.dll
win32kfull.sys
win32kmin.sys
EngBitBlt

EngBitBlt function

-description

The EngBitBlt function provides general bit-block transfer capabilities either between device-managed surfaces, or between a device-managed surface and a GDI-managed standard format bitmap.

-parameters

-param psoTrg

Pointer to the SURFOBJ structure that identifies the surface on which to draw.

-param psoSrc

If the rop4 requires it, pointer to a SURFOBJ structure that defines the source for the bit-block transfer operation.

-param psoMask

Pointer to a SURFOBJ structure that defines a surface to be used as a mask. The mask is defined as a bitmap with 1 bit per pixel. Typically, a mask limits the area that is to be modified in the destination surface. Masking is selected by a rop4 with the value 0xAACC. The destination surface is unaffected when the mask is zero.

The mask is large enough to cover the destination rectangle.

If the value of this parameter is NULL and a mask is required by the rop4, then the implicit mask in the brush is used. If a mask is required, then psoMask overrides the implicit mask in the brush.

-param pco

Pointer to a CLIPOBJ structure. The CLIPOBJ_Xxx service routines are provided to enumerate the clip region as a set of rectangles. This enumeration limits the area of the destination that will be modified. Whenever possible, GDI simplifies the clipping involved; for example, this function is never called with a single clipping rectangle. GDI clips the destination rectangle before calling this function, making additional clipping unnecessary.

-param pxlo

Pointer to a XLATEOBJ structure that tells how color indices should be translated between the source and target surfaces.

-param prclTrg

Pointer to a RECTL structure in the coordinate system of the destination surface that defines the area to be modified. The rectangle is defined by two points; upper left and lower right. The lower and right edges of this rectangle are not part of the bit-block transfer, meaning the rectangle is lower right exclusive.

EngBitBlt is never called with an empty destination rectangle. The two points that define the rectangle are always well ordered.

-param pptlSrc

Pointer to a POINTL structure that defines the upper left corner of the source rectangle, if a source exists. If there is no source, the driver should ignore this parameter.

-param pptlMask

Pointer to a POINTL structure that defines which pixel in the mask corresponds to the upper left corner of the destination rectangle. If no mask is specified in psoMask the driver should ignore this parameter.

-param pbo

Pointer to the BRUSHOBJ structure to be used to define the pattern for the bit-block transfer. GDI's BRUSHOBJ_pvGetRbrush service routine retrieves the device's realization of the brush. The driver can ignore this parameter if the rop4 parameter does not require a pattern.

-param pptlBrush

Pointer to a POINTL structure that defines the origin of the brush in the destination surface. The upper left pixel of the brush is aligned at this point and the brush repeats according to its dimensions. Ignore this parameter if the rop4 parameter does not require a pattern.

-param rop4 [in]

Represents a raster operation that defines how the mask, pattern, source, and destination pixels are combined to write an output pixel to the destination surface.

This is a quaternary raster operation, which is a natural extension of the usual ternary Rop3 operation. A Rop4 has 16 relevant bits, which are similar to the 8 defining bits of a Rop3. (The other, redundant bits of the Rop3 are ignored.) The simplest way to implement a Rop4 is to consider its 2 bytes separately. The lower byte specifies a Rop3 that should be computed wherever the mask is 1. The high byte specifies a Rop3 that can be computed and applied wherever the mask is 0.

-returns

The return value is TRUE if the function is successful. Otherwise, it is FALSE, and an error code is logged.

-remarks

If a device's surface is organized as a standard-format bitmap, the driver can request that GDI perform the bit-block transfer by calling EngBitBlt. A driver might do this if it has special hardware to handle simple transfers quickly, but doesn't want to handle calls with complicated transfers.

See the Microsoft Windows SDK documentation for more information about raster operations.

-see-also

BRUSHOBJ

BRUSHOBJ_pvGetRbrush

CLIPOBJ

DrvBitBlt

EngAssociateSurface

SURFOBJ

XLATEOBJ