bool flip() override { #ifdef ALLEGRO4_WITH_RESIZE_PATCH if (display_flags & DISPLAY_FLAG_WINDOW_RESIZE) { display_flags ^= DISPLAY_FLAG_WINDOW_RESIZE; acknowledge_resize(); int scale = m_scale; m_scale = 0; setScale(scale); return false; } #endif BITMAP* bmp = reinterpret_cast<BITMAP*>(m_surface->nativeHandle()); if (m_scale == 1) { blit(bmp, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H); } else { stretch_blit(bmp, screen, 0, 0, bmp->w, bmp->h, 0, 0, SCREEN_W, SCREEN_H); } return true; }
void process_display_events (void) { ALLEGRO_EVENT event; while (al_get_next_event (event_queue, &event)) switch (event.type) { case ALLEGRO_EVENT_DISPLAY_EXPOSE: show (); break; case ALLEGRO_EVENT_DISPLAY_RESIZE: acknowledge_resize (); show (); break; case ALLEGRO_EVENT_DISPLAY_CLOSE: quit_game (); break; } }