Supported Browsers Home   
MGL_bitBlt Previous   
MGL_bitBltFx Next   
External Functions Up   

MGL_bitBltCoord

Blts a block of image data from one device context into another.

Declaration

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

Prototype In

mgraph.h

Parameters

dst

Destination device context

src

Source device context

left

Left coordinate of image to Blt from

top

Top coordinate of image to Blt from

right

Right coordinate of image to Blt from

bottom

Bottom coordinate of image to Blt from

dstLeft

Left coordinate to Blt to

dstTop

Right coordinate to Blt to

op

Write mode to use during Blt

 

Description

Copies a block of bitmap data from one device context to another. The source and destination rectangles may overlap even if the source and destination device contexts are the same, and MGL will correctly handle the overlapping regions. This routine has been highly optimized for absolute maximum performance, so it will provide the fastest method of copying bitmap data between device contexts. To obtain absolute maximum performance, you should align the source and destination bitmaps on DWORD boundaries (4 pixels for 8 bit, 2 pixels for 15/16 bit) and the low level device driver code will special case this for maximum performance.

This function will correctly handle Blt's across device contexts with differing pixel depths, and will perform the necessary pixel format translation to convert from the source device to the destination device. Note that although the code to implement this is highly optimized, this can be a time consuming operation so you should attempt to pre-convert all bitmaps to the current display device pixel format for maximum performance if using this routine for sprite animation.

When this function is called for 4 and 8 bit source bitmaps being copied to either 4 or 8bpp destination device contexts, MGL first checks if the color palettes for the source and destination bitmaps are the same. If they are not, MGL translates the pixel values from the source bitmap to the destination color palette, looking for the closest match color if an exact match is not found. In order to obtain maximum performance for blt’ing bitmaps in color index modes, you should ensure that the color palette in the source device matches the color palette in the destination device to avoid on the fly palette translation. If you know in advance that the palette is identical for a series of blit operations, you can turn off all identity palette checking in MGL with the MGL_checkIdentityPalette function.

When this function is called for 4 and 8 bit source bitmaps being copied to RGB destination device contexts, MGL will convert the pixels in the source bitmap using the source bitmap palette to map them to the destination pixel format. If however you know in advance that the palette for all source bitmaps is identical for a series of blit operations, you can use the MGL_checkIdentityPalette function to disable source palette translation. In this case the MGL will translate all color index bitmaps using the pre-defined color translation palette stored in the destination device context. You would then set the destination device context palette to the common palette for all blit operations using MGL_setPalette. If you are translating a lot of color index bitmaps, this will increase performance by avoiding the need to convert the palette entries to the destination pixel format for every blit operation.

This routine can also be used to perform hardware accelerated Blt's between offscreen memory devices and the display device when running in fullscreen modes, providing the hardware accelerator (if present) can support this operation.

The write mode operation specifies how the source image data should be combined with the destination image data.  Write modes supported by the SciTech MGL are enumerated in MGL_writeModeType.

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

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