9 #include <allegro5/allegro_color.h> 10 #include <allegro5/allegro_font.h> 11 #include <allegro5/allegro_image.h> 12 #include <allegro5/allegro_primitives.h> 13 #include <allegro5/allegro_ttf.h> 22 throw std::logic_error(
"Already initialized.");
30 al_destroy_event_queue(
queue);
38 throw std::runtime_error(
"al_init error.");
40 if(!al_init_primitives_addon())
41 throw std::runtime_error(
"al_init_primitives_addon error.");
42 if(!al_init_image_addon())
43 throw std::runtime_error(
"al_init_image_addon error.");
44 if(!al_init_font_addon())
45 throw std::runtime_error(
"al_init_font_addon error.");
46 if(!al_init_ttf_addon())
47 throw std::runtime_error(
"al_init_ttf_addon error.");
49 if(!al_install_keyboard())
50 throw std::runtime_error(
"al_install_keyboard error.");
51 if(!al_install_mouse())
52 throw std::runtime_error(
"al_install_mouse error.");
57 display = al_create_display(640, 480);
59 throw std::runtime_error(
"al_create_display error.");
61 font = al_load_font(
"LSANSD.TTF", 30, 0);
63 throw std::runtime_error(
"Font \"LSANSD.TTF\" not loaded.");
68 queue = al_create_event_queue();
70 throw std::runtime_error(
"al_create_event_queue error.");
72 al_register_event_source(
queue, al_get_display_event_source(
display));
73 al_register_event_source(
queue, al_get_mouse_event_source());
74 al_register_event_source(
queue, al_get_keyboard_event_source());
99 al_wait_for_event(
queue, NULL);
104 while(al_get_next_event(
queue, &event))
106 if(event.type == ALLEGRO_EVENT_MOUSE_AXES)
110 else if(event.type == ALLEGRO_EVENT_MOUSE_BUTTON_DOWN)
114 else if(event.type == ALLEGRO_EVENT_MOUSE_BUTTON_UP)
118 else if(event.type == ALLEGRO_EVENT_KEY_DOWN)
122 else if(event.type == ALLEGRO_EVENT_KEY_UP)
125 else if(event.type == ALLEGRO_EVENT_KEY_CHAR)
129 else if(event.type == ALLEGRO_EVENT_MOUSE_ENTER_DISPLAY)
132 else if(event.type == ALLEGRO_EVENT_MOUSE_LEAVE_DISPLAY)
135 else if(event.type == ALLEGRO_EVENT_DISPLAY_RESIZE)
138 else if(event.type == ALLEGRO_EVENT_DISPLAY_CLOSE)