#include "allegro5/allegro.h" #include #include "common.c" static void redraw(void) { ALLEGRO_COLOR black, white; int w, h; white = al_map_rgba_f(1, 1, 1, 1); black = al_map_rgba_f(0, 0, 0, 1); al_clear_to_color(white); w = al_get_bitmap_width(al_get_target_bitmap()); h = al_get_bitmap_height(al_get_target_bitmap()); al_draw_line(0, h, w / 2, 0, black, 0); al_draw_line(w / 2, 0, w, h, black, 0); al_draw_line(w / 4, h / 2, 3 * w / 4, h / 2, black, 0); al_flip_display(); } int main(int argc, char **argv) { ALLEGRO_DISPLAY *display; ALLEGRO_TIMER *timer; ALLEGRO_EVENT_QUEUE *events; ALLEGRO_EVENT event; int rs = 100; bool resize = false; (void)argc; (void)argv; /* Initialize Allegro and create an event queue. */ if (!al_init()) { abort_example("Could not init Allegro.\n"); } al_init_primitives_addon(); events = al_create_event_queue(); /* Setup a display driver and register events from it. */ al_set_new_display_flags(ALLEGRO_RESIZABLE); display = al_create_display(rs, rs); if (!display) { abort_example("Could not create display.\n"); } al_register_event_source(events, al_get_display_event_source(display)); timer = al_create_timer(0.1); al_start_timer(timer); /* Setup a keyboard driver and register events from it. */ al_install_keyboard(); al_register_event_source(events, al_get_keyboard_event_source()); al_register_event_source(events, al_get_timer_event_source(timer)); /* Display a pulsating window until a key or the closebutton is pressed. */ redraw(); while (true) { if (resize) { int s; rs += 10; if (rs == 300) rs = 100; s = rs; if (s > 200) s = 400 - s; al_resize_display(display, s, s); redraw(); resize = false; } al_wait_for_event(events, &event); if (event.type == ALLEGRO_EVENT_TIMER) { resize = true; } else if (event.type == ALLEGRO_EVENT_DISPLAY_CLOSE) { break; } else if (event.type == ALLEGRO_EVENT_KEY_DOWN) { break; } } return 0; } /* vim: set sts=4 sw=4 et: */