static void IDirectFBSurface_Layer_Destruct( IDirectFBSurface *thiz ) { IDirectFBSurface_Layer_data *data = (IDirectFBSurface_Layer_data*) thiz->priv; D_DEBUG_AT( Surface, "%s( %p )\n", __FUNCTION__, thiz ); dfb_layer_region_unref( data->region ); IDirectFBSurface_Destruct( thiz ); }
static void IDirectFBSurface_Window_Destruct( IDirectFBSurface *thiz ) { IDirectFBSurface_Window_data *data = (IDirectFBSurface_Window_data*)thiz->priv; if (data->flip_thread != -1) { pthread_cancel( data->flip_thread ); pthread_join( data->flip_thread, NULL ); } if (data->base.surface) { if (!(data->base.caps & DSCAPS_SUBSURFACE) && data->base.caps & DSCAPS_PRIMARY) { dfb_window_deinit( data->window ); dfb_window_destroy( data->window, true ); } } IDirectFBSurface_Destruct( thiz ); }