masked_stretch_blit − Scales a rectangular area skipping pixels with the mask color. Allegro game programming library.
#include <allegro.h>
void masked_stretch_blit(BITMAP *source, BITMAP *dest, int source_x, source_y, source_w, source_h, int dest_x, dest_y, dest_w, dest_h);
Like masked_blit(), except it can scale images (so the source and destination rectangles don’t need to be the same size). This routine doesn’t do as much safety checking as the regular masked_blit(): in particular you must take care not to copy from areas outside the source bitmap. Moreover, the source must be a memory bitmap. Example:
BITMAP *hud_overlay;
...
/* Stretch hud overlay over the screen. */
masked_stretch_blit(hud_overlay, screen, 0, 0,
hud_overlay->w, hud_overlay->h,
0, 0, SCREEN_W, SCREEN_H);