masked_blit - Copies a rectangle skipping pixels with the mask color. Allegro
game programming library.
void masked_blit(BITMAP *source, BITMAP *dest, int source_x, int
source_y, int dest_x, int dest_y, int width, int height);
Like blit(), but skips transparent pixels, which are marked by a zero in
256-color modes or bright pink for truecolor data (maximum red and blue, zero
green), and requires the source and destination bitmaps to be of the same
color depth. The source and destination regions must not overlap. Example:
/* Paint hud overlay on the screen. */
masked_blit(hud_overlay, screen, 0, 0, 0, 0,
If the GFX_HW_VRAM_BLIT_MASKED bit in the gfx_capabilities flag is set, the
current driver supports hardware accelerated masked blits from one part of the
screen onto another. This is extremely fast, so when this flag is set it may
be worth storing some of your more frequently used sprites in an offscreen
portion of the video memory.
Warning: if the hardware acceleration flag is not set, masked_blit() will not
work correctly when used with a source image in system or video memory so the
latter must be a memory bitmap.