MGL_srcTransBltCoord

Copies a block of image data with source transparency.

Declaration

void MGLAPI MGL_srcTransBltCoord(
MGLDC *dst,
MGLDC *src,
int left,
int top,
int right,
int bottom,
int dstLeft,
int dstTop,
color_t transparent,
int op)

Prototype In

mgraph.h

Parameters

dst | Destination device context
src | Source device context
left | Left coordinate of source image
top | Top coordinate of source image
right | Right coordinate of source image
bottom | Bottom coordinate of source image
dstLeft | Left coordinate of destination
dstTop | Top coordinate of destination
transparent | Transparent color to skip in source image
op | Write mode to use during Blt

Description

Copies a block of bitmap data form one device context to another with either source or destination transparency. When transferring the data with source transparency, for pixels in the source image that are equal to the specified transparent color, the related pixel in the destination buffer will remain untouched. This allows you to quickly transfer sprites between device contexts with a single color being allocated as a transparent color.

This routine has been highly optimized for maximum performance in all pixel depths, so will provide a very fast method for performing transparent sprite animation. However you may find that if you can use alternative techniques to pre-compile the sprites (like using run length encoding etc.) you will be able to build faster software based sprite animation code that can directly access the device context surface. However this routine can also be used to perform hardware accelerated Blt's between offscreen memory device's and the display device when running in fullscreen modes, providing the hardware accelerator (if present) can support this operation. If you have a hardware accelerator capable of this, this will provide the ultimate performance for transparent sprite animation.

The source and destination rectangles are clipped according to the current clipping rectangles for the source and destination device contexts respectively.

Note: If you are doing pixel format conversion at the same time (ie: color depth for source bitmap is different to the destination bitmap), then the transparent color value must be set to the traslated destination pixel format. Ie: if you are blitting an 8bpp bitmap to a 32bpp device context, the transparent color must be a 32bpp value.

Note: This routine also only works with pixel depths that are at least 4 bits deep.

See Also

MGL_bitBlt, MGL_bitBltCoord, MGL_srcTransBlt, MGL_srcTransBltCoord, MGL_dstTransBlt, MGL_dstTransBltCoord, MGL_bitBltPatt, MGL_bitBltPattCoord, MGL_bitBltFx, MGL_bitBltFxCoord, MGL_stretchBlt, MGL_stretchBltCoord, MGL_stretchBltFx, MGL_stretchBltFxCoord, MGL_copyPage, MGL_copyPageCoord

Copyright © 2002 SciTech Software, Inc. Visit our web site at http://www.scitechsoft.com