示例#1
0
static void win_shutdown(void)
{
    ALLEGRO_SYSTEM *s;
    ASSERT(vt);

    /* Close all open displays. */
    s = al_get_system_driver();
    while (_al_vector_size(&s->displays) > 0) {
        ALLEGRO_DISPLAY **dptr = _al_vector_ref(&s->displays, 0);
        ALLEGRO_DISPLAY *d = *dptr;
        al_destroy_display(d);
    }

    _al_vector_free(&s->displays);

#ifdef ALLEGRO_CFG_D3D
    _al_d3d_shutdown_display();
#endif

    _al_win_shutdown_time();

    if (using_higher_res_timer) {
        timeEndPeriod(1);
    }

    al_free(vt);
    vt = NULL;

    ASSERT(_al_win_system);
    al_free(_al_win_system);
}
示例#2
0
static void win_shutdown(void)
{
   ALLEGRO_SYSTEM *s;
   ALLEGRO_DISPLAY_INTERFACE *display_driver;
   ASSERT(vt);

   /* Close all open displays. */
   s = al_get_system_driver();
   while (_al_vector_size(&s->displays) > 0) {
      ALLEGRO_DISPLAY **dptr = _al_vector_ref(&s->displays, 0);
      ALLEGRO_DISPLAY *d = *dptr;
      _al_destroy_display_bitmaps(d);
      al_destroy_display(d);
   }

   _al_vector_free(&s->displays);

   display_driver = vt->get_display_driver();
   if (display_driver && display_driver->shutdown) {
      display_driver->shutdown();
   }

   _al_win_shutdown_time();

   if (using_higher_res_timer) {
      timeEndPeriod(1);
   }

   al_free(vt);
   vt = NULL;

   ASSERT(_al_win_system);
   al_free(_al_win_system);
}