static DFBResult system_shutdown( bool emergency ) { DFBX11 *x11 = dfb_system_data(); DFBX11Shared *shared = x11->shared; int i; D_DEBUG_AT( X11_Core, "%s()\n", __FUNCTION__ ); //dfb_x11_eglimpl_unregister(); /* * Master deinit */ if (shared->x11_pool_bridge) dfb_surface_pool_bridge_destroy( shared->x11_pool_bridge ); if (shared->vpsmem_pool) dfb_surface_pool_destroy( shared->vpsmem_pool ); if (shared->glx_pool) dfb_surface_pool_destroy( shared->glx_pool ); if (shared->x11window_pool) dfb_surface_pool_destroy( shared->x11window_pool ); if (shared->x11image_pool) dfb_surface_pool_destroy( shared->x11image_pool ); /* * Shared deinit (master only) */ fusion_call_destroy( &shared->call ); /* close remaining windows */ for( i=0; i<shared->outputs; i++ ) { dfb_x11_close_window( x11, shared->output[i].xw ); } SHFREE( dfb_core_shmpool( x11->core ), shared ); /* * Local deinit (master and slave) */ if (x11->display) XCloseDisplay( x11->display ); D_FREE( x11 ); return DFB_OK; }
static DFBResult system_shutdown( bool emergency ) { DFBX11 *x11 = dfb_system_data(); DFBX11Shared *shared = x11->shared; /* * Master deinit */ if (shared->x11_pool_bridge) dfb_surface_pool_bridge_destroy( shared->x11_pool_bridge ); if (shared->vpsmem_pool) dfb_surface_pool_destroy( shared->vpsmem_pool ); if (shared->glx_pool) dfb_surface_pool_destroy( shared->glx_pool ); if (shared->x11image_pool) dfb_surface_pool_destroy( shared->x11image_pool ); /* * Shared deinit (master only) */ fusion_call_destroy( &shared->call ); fusion_skirmish_prevail( &shared->lock ); if (shared->xw) dfb_x11_close_window( x11, shared->xw ); fusion_skirmish_destroy( &shared->lock ); SHFREE( dfb_core_shmpool( x11->core ), shared ); /* * Local deinit (master and slave) */ if (x11->display) XCloseDisplay( x11->display ); D_FREE( x11 ); return DFB_OK; }
static DFBResult system_shutdown( bool emergency ) { FusionSHMPoolShared *pool; D_ASSERT( dfb_sdl != NULL ); /* Stop update thread. */ if (dfb_sdl->update.thread) { if (!emergency) { dfb_sdl->update.quit = true; pthread_cond_signal( &dfb_sdl->update.cond ); direct_thread_join( dfb_sdl->update.thread ); } direct_thread_destroy( dfb_sdl->update.thread ); } dfb_surface_pool_destroy( dfb_sdl->sdl_pool ); fusion_call_destroy( &dfb_sdl->call ); fusion_skirmish_prevail( &dfb_sdl->lock ); SDL_Quit(); fusion_skirmish_destroy( &dfb_sdl->lock ); pool = dfb_core_shmpool(dfb_sdl_core); while (dfb_sdl->modes) { VideoMode *next = dfb_sdl->modes->next; SHFREE( pool, dfb_sdl->modes ); dfb_sdl->modes = next; } SHFREE( pool, dfb_sdl ); dfb_sdl = NULL; dfb_sdl_core = NULL; return DFB_OK; }
static DFBResult system_shutdown( bool emergency ) { D_ASSERT( dfb_vnc != NULL ); fusion_call_destroy( &dfb_vnc->call ); fusion_skirmish_prevail( &dfb_vnc->lock ); fusion_skirmish_destroy( &dfb_vnc->lock ); SHFREE( dfb_core_shmpool(dfb_vnc_core), dfb_vnc ); dfb_vnc = NULL; dfb_vnc_core = NULL; return DFB_OK; }
static DFBResult system_shutdown( bool emergency ) { D_ASSERT( dfb_rtd != NULL ); fusion_call_destroy( &dfb_rtd->call ); fusion_skirmish_prevail( &dfb_rtd->lock ); fusion_skirmish_destroy( &dfb_rtd->lock ); SHFREE( dfb_core_shmpool(dfb_rtd_core), dfb_rtd ); dfb_rtd = NULL; dfb_rtd_core = NULL; libk_uninit(); return DFB_OK; }
static DFBResult system_shutdown( bool emergency ) { D_ASSERT( dfb_x11 != NULL ); dfb_surface_pool_destroy( dfb_x11->surface_pool ); fusion_call_destroy( &dfb_x11->call ); fusion_skirmish_prevail( &dfb_x11->lock ); if (dfb_x11->xw) dfb_x11_close_window( dfb_x11->xw ); if (dfb_x11->display) XCloseDisplay( dfb_x11->display ); fusion_skirmish_destroy( &dfb_x11->lock ); SHFREE( dfb_core_shmpool(dfb_x11_core), dfb_x11 ); dfb_x11 = NULL; dfb_x11_core = NULL; return DFB_OK; }
static DFBResult system_shutdown( bool emergency ) { DFBX11 *x11 = dfb_system_data(); DFBX11Shared *shared = x11->shared; int i; D_DEBUG_AT( X11_Core, "%s()\n", __FUNCTION__ ); /* * Master deinit */ if (shared->x11_pool_bridge) dfb_surface_pool_bridge_destroy( shared->x11_pool_bridge ); if (shared->vpsmem_pool) dfb_surface_pool_destroy( shared->vpsmem_pool ); if (shared->glx_pool) dfb_surface_pool_destroy( shared->glx_pool ); if (shared->x11image_pool) dfb_surface_pool_destroy( shared->x11image_pool ); /* * Shared deinit (master only) */ fusion_call_destroy( &shared->call ); fusion_skirmish_prevail( &shared->lock ); /* close remaining windows */ for( i=0; i<dfb_layer_num(); i++ ) { CoreLayer *layer; X11LayerData *lds; layer = dfb_layer_at( i ); lds = layer->layer_data; if( lds->xw ) { dfb_x11_close_window( x11, lds->xw ); lds->xw = 0; shared->window_count--; } } fusion_skirmish_destroy( &shared->lock ); SHFREE( dfb_core_shmpool( x11->core ), shared ); /* * Local deinit (master and slave) */ if (x11->display) XCloseDisplay( x11->display ); D_FREE( x11 ); return DFB_OK; }
void CoreSlave_Deinit_Dispatch( FusionCall *call ) { fusion_call_destroy( call ); }
void CoreInputDevice_Deinit_Dispatch( FusionCall *call ) { fusion_call_destroy( call ); }
void CoreLayerRegion_Deinit_Dispatch( FusionCall *call ) { fusion_call_destroy( call ); }
void ImageProvider_Deinit_Dispatch( FusionCall *call ) { fusion_call_destroy( call ); }