EngTransparentBlt function (winddi.h)

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

Syntax

ENGAPI BOOL EngTransparentBlt(
  [in]           SURFOBJ  *psoDst,
  [in]           SURFOBJ  *psoSrc,
  [in, optional] CLIPOBJ  *pco,
  [in, optional] XLATEOBJ *pxlo,
  [in]           RECTL    *prclDst,
  [in]           RECTL    *prclSrc,
  [in]           ULONG    TransColor,
  [in]           ULONG    bCalledFromBitBlt
);

Parameters

[in] psoDst

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

[in] psoSrc

Pointer to the SURFOBJ structure that identifies the source surface of the bit-block transfer.

[in, optional] 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.

[in, optional] pxlo

Pointer to a XLATEOBJ structure that tells how the source color indices should be translated for writing to the target surface.

[in] 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.

[in] 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.

[in] TransColor

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 Remarks section.

[in] bCalledFromBitBlt

Reserved. This parameter must be set to zero.

Return value

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

Remarks

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.

Requirements

Requirement Value
Minimum supported client Available in Windows 2000 and later versions of the Windows operating systems.
Target Platform Universal
Header winddi.h (include Winddi.h)
Library Win32k.lib
DLL Win32k.sys

See also

DrvBitBlt

DrvPlgBlt

DrvStretchBlt

DrvStretchBltROP

DrvTransparentBlt

EngBitBlt

EngPlgBlt

EngStretchBlt

EngStretchBltROP