#define A5SES_IMAGE_ADDON #include #include using namespace a5; int main() { al_set_new_display_option(ALLEGRO_SINGLE_BUFFER, true, ALLEGRO_REQUIRE); Display display(320, 200, Display::Resizable | Display::GenerateExposeEvents); Bitmap bitmap("data/mysha.pcx"); Timer timer(2.0); Event_Queue queue; Keyboard keyboard; queue.Register(keyboard); queue.Register(display); queue.Register(timer); al_init_primitives_addon(); timer.Start(); while (true) { Event_Reader e(queue); e.WaitNext(); switch (e.SubType()) { case Display::Event::Close: return 0; case Display::Event::Resize: display.AcknowledgeResize(); break; case Display::Event::Expose: display.Target(); al_draw_filled_rectangle(e.Display().x, e.Display().y, e.Display().x + e.Display().width, e.Display().y + e.Display().height, Color(RGB(255, 0, 0))); display.Flip(); break; case Keyboard::Event::Down: if (e.Keyboard().keycode == Keyboard::Key::Escape) return 0; break; case Timer::Event::Type: for (int y = 0; y < display.Height(); y += 200) { for (int x = 0; x < display.Width(); x += 320) { display.BlitTinted(bitmap, RGBA(255, 255, 255, 25), x, y, 0); } } display.Flip(); break; } } }