---
name: "masked_blit"
section: "3alleg"
platform: "linux"
package: "liballegro-doc"
version: "2:4.2.2-2.2"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/masked_blit"
---

# masked\_blit(3alleg)

Copies a rectangle skipping pixels with the mask color. Allegro game programming library.

## NAME

masked\_blit - Copies a rectangle skipping pixels with the mask color. Allegro game programming library.

## SYNOPSIS

**#include \<allegro.h\>**

**void masked\_blit(BITMAP \*source, BITMAP \*dest, int source\_x, int source\_y,** **int dest\_x, int dest\_y, int width, int height);**

## DESCRIPTION

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:

```
   BITMAP *hud_overlay;
   ...
   /* Paint hud overlay on the screen. */
   masked_blit(hud_overlay, screen, 0, 0, 0, 0,
               hud_overlay->w, hud_overlay->h);
```

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.

## SEE ALSO

[**blit**(3alleg)](/blit/3alleg.md), [**masked\_stretch\_blit**(3alleg)](/masked_stretch_blit/3alleg.md), [**draw\_sprite**(3alleg)](/draw_sprite/3alleg.md), [**bitmap\_mask\_color**(3alleg)](/bitmap_mask_color/3alleg.md), [**ex12bit**(3alleg)](/ex12bit/3alleg.md), [**expat**(3alleg)](/expat/3alleg.md)
