stretch_blit - Scales a rectangular area from one bitmap to another. Allegro game programming library.
void stretch_blit(BITMAP *source, BITMAP *dest, int source_x, source_y, source_width, source_height, int dest_x, dest_y, dest_width, dest_height);
Like blit(), except it can scale images (so the source and destination rectangles don't need to be the same size) and requires the source and destination bitmaps to be of the same color depth. This routine doesn't do as much safety checking as the regular blit(): in particular you must take care not to copy from areas outside the source bitmap, and you cannot blit between overlapping regions, ie. you must use different bitmaps for the source and the destination. Moreover, the source must be a memory bitmap. Example:
/* Stretch bmp to fill the screen. */
stretch_blit(bmp, screen, 0, 0, bmp->w, bmp->h,
0, 0, SCREEN_W, SCREEN_H);
blit(3alleg4), masked_stretch_blit(3alleg4), stretch_sprite(3alleg4), exalpha(3alleg4), exconfig(3alleg4), exscale(3alleg4), extrans(3alleg4), extrans2(3alleg4)