The DrvTransparentBlt function provides bit-block transfer capabilities with transparency.
BOOL
DrvTransparentBlt(
IN SURFOBJ *psoDst,
IN SURFOBJ *psoSrc,
IN CLIPOBJ *pco,
IN XLATEOBJ *pxlo,
IN RECTL *prclDst,
IN RECTL *prclSrc,
IN ULONG iTransColor,
IN ULONG ulReserved
);
DrvTransparentBlt is never called with an empty destination rectangle.
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. DrvTransparentBlt is never called with an empty source rectangle.
DrvTransparentBlt returns TRUE upon success. Otherwise, it returns FALSE.
Declared in winddi.h. Include winddi.h.
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. Driver writers are encouraged to support the case of blting from off-screen device bitmaps in video memory to other surfaces in video memory; all other cases can be punted to EngTransparentBlt with little performance penalty. The driver can punt calls involving device-managed surfaces to EngTransparentBlt.
Any pixels on the source surface that match the transparent color specified by iTransColor are not copied. For a detailed explanation of transparent blts, see Copying Bitmaps.
The driver will never be called with overlapping source and destination rectangles on the same surface.
The driver should ignore any unused bits in the color key comparison, such as for the most significant bit when the bitmap format is 5:5:5 (five bits each of red, green, and blue).
The driver hooks DrvTransparentBlt by setting the HOOK_TRANSPARENTBLT flag when it calls EngAssociateSurface. If the driver has hooked DrvTransparentBlt and is called to perform an operation that it does not support, the driver should have GDI handle the operation by forwarding the data in a call to EngTransparentBlt.
DrvBitBlt, DrvPlgBlt, DrvStretchBlt, DrvStretchBltROP, EngAssociateSurface, EngBitBlt, EngPlgBlt, EngStretchBlt, EngStretchBltROP, EngTransparentBlt