Show exscale.c syntax highlighted
/*
* Example program for the Allegro library, by Grzegorz Ludorowski.
*
* This example demonstrates how to use pcx files, palettes and stretch
* blits. It loads a pcx file, sets its palette and does some random
* stretch_blits. Don't worry - it's VERY slowed down using al_vsync().
*/
#include "allegro.h"
int main(int argc, char *argv[])
{
AL_PALETTE my_palette;
AL_BITMAP *scr_buffer;
char pcx_name[256];
allegro_init();
al_install_keyboard();
if (al_set_gfx_mode(AL_GFX_SAFE, 320, 200, 0, 0) != 0) {
al_set_gfx_mode(AL_GFX_NONE, 0, 0, 0, 0);
al_show_message("Unable to set any graphic mode\n%s\n", al_error);
return 1;
}
al_replace_filename(pcx_name, argv[0], "mysha.pcx", sizeof(pcx_name));
scr_buffer = al_load_pcx(pcx_name, my_palette);
if (!scr_buffer) {
al_set_gfx_mode(AL_GFX_NONE, 0, 0, 0, 0);
al_show_message("Error loading %s!\n", pcx_name);
return 1;
}
al_set_palette(my_palette);
al_blit(scr_buffer, al_screen, 0, 0, 0, 0, scr_buffer->w, scr_buffer->h);
while (!al_key_pressed()) {
al_stretch(scr_buffer, al_screen, 0, 0, rand()%scr_buffer->w,
rand()%scr_buffer->h, rand()%AL_SCREEN_W, rand()%AL_SCREEN_H,
rand()%AL_SCREEN_W, rand()%AL_SCREEN_H);
al_vsync();
}
al_destroy_bitmap(scr_buffer);
return 0;
}
AL_END_OF_MAIN();
See more files for this project here