Previous Next

EngTransparentBlt

The EngTransparentBlt function provides bit-block transfer capabilities with transparency.

BOOL
  EngTransparentBlt(
    IN SURFOBJ  *psoDst,
    IN SURFOBJ  *psoSrc,
    IN CLIPOBJ  *pco,
    IN XLATEOBJ  *pxlo,
    IN RECTL  *prclDst,
    IN RECTL  *prclSrc,
    IN ULONG  iTransColor,
    IN ULONG  ulReserved
    );

Parameters

psoDst
Pointer to the SURFOBJ structure that identifies the target surface on which to draw.
psoSrc
Pointer to the SURFOBJ structure that identifies the source surface of the bit-block transfer.
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 is modified. Whenever possible, GDI simplifies the clipping involved.
pxlo
Pointer to a XLATEOBJ structure that tells how the source color indices should be translated for writing to the target surface.
prclDst
Pointer to a RECTL structure that defines the rectangular area to be modified. This rectangle is specified in the coordinate system of the destination surface and is defined by two points: upper left and lower right. The rectangle is lower-right exclusive; that is, its lower and right edges are not a part of the bit-block transfer. The two points that define the rectangle are always well ordered.

The driver must never call EngTransparentBlt with an empty destination rectangle.

prclSrc
Pointer to a RECTL structure that defines the rectangular area to be copied. This rectangle is specified in the coordinate system of the source surface and is defined by two points: upper left and lower right. The two points that define the rectangle are always well ordered.

The source rectangle will never exceed the bounds of the source surface, and so will never overhang the source surface.

This rectangle is mapped to the destination rectangle defined by prclDst. The driver must never call EngTransparentBlt with an empty source rectangle.

iTransColor
Specifies the physical transparent color, in the source surface's format. This is a color index value that has been translated to the source surface's palette. For more information, see the Comments section.
ulReserved
Reserved. This parameter must be set to zero.

Return Value

EngTransparentBlt returns TRUE upon success. Otherwise, it returns FALSE.

Headers

Declared in winddi.h. Include winddi.h.

Comments

The driver should call EngTransparentBlt if it has hooked DrvTransparentBlt and it is called to do something that it does not support.

Bit-block transfer with transparency is supported between two device-managed surfaces or between a device-managed surface and a GDI-managed standard format bitmap. Currently, GDI supports only BMF_4BPP and BMF_8BPP source surfaces.

The pixels on the source surface that match the transparent color specified by iTransparentColor are not copied. For a detailed explanation of transparent blts, see Copying Bitmaps.

See Also

DrvBitBlt, DrvPlgBlt, DrvStretchBlt, DrvStretchBltROP, DrvTransparentBlt, EngBitBlt, EngPlgBlt, EngStretchBlt, EngStretchBltROP