Add to free evas engine resourece before free evas and initialize ecore_evas's driver
@tizen_only
Change-Id: Ic097f3145f6530d7b8ddf960eca6ba52b265d065
efl_event_callback_array_del(ee->evas, _ecore_evas_device_cbs(), ee);
eina_hash_free(ee->prop.cursors);
ee->prop.cursors = NULL;
+ //TIZEN_ONLY(20171218) : Add to free evas engine rsc before free evas
+ if (ee->engine.func->fn_evas_engine_rsc_free)
+ ee->engine.func->fn_evas_engine_rsc_free(ee);
+ //
evas_free(ee->evas);
ee->evas = NULL;
ECORE_MAGIC_SET(ee, ECORE_MAGIC_NONE);
NULL, //fn_callback_device_mouse_out_set
NULL, //fn_pointer_device_xy_get
_ecore_evas_buffer_prepare,
+ NULL, //fn_last_tick_get
+ //TIZEN_ONLY(20171218) : Add to free evas engine rsc before free evas
+ NULL, //fn_evas_engine_rsc_free
};
static void *
NULL, //fn_callback_device_mouse_out_set
NULL, //fn_pointer_device_xy_get
_ecore_evas_ews_prepare,
+ NULL, //fn_last_tick_get
+ //TIZEN_ONLY(20171218) : Add to free evas engine rsc before free evas
+ NULL, //fn_evas_engine_rsc_free
};
void
Eina_Bool (*fn_prepare)(Ecore_Evas *ee);
double (*fn_last_tick_get)(Ecore_Evas *ee);
+
+ //TIZEN_ONLY : Evas Engine Resource Free
+ void (*fn_evas_engine_rsc_free) (Ecore_Evas *ee);
};
struct _Ecore_Evas_Interface
NULL, //fn_pointer_device_xy_get
NULL, //fn_prepare
NULL, //fn_last_tick_get
+ //TIZEN_ONLY(20171218) : Add to free evas engine rsc before free evas
+ NULL, //fn_evas_engine_rsc_free
};
static Ecore_Cocoa_Window *
NULL, //fn_pointer_device_xy_get
NULL, //fn_prepare
_drm_last_tick_get,
+ //TIZEN_ONLY(20171218) : Add to free evas engine rsc before free evas
+ NULL, //fn_evas_engine_rsc_free
};
static Ecore_Evas *
NULL, //fn_pointer_device_xy_get
NULL, //fn_prepare
NULL, //fn_last_tick_get
+ //TIZEN_ONLY(20171218) : Add to free evas engine rsc before free evas
+ NULL, //fn_evas_engine_rsc_free
};
static Eina_Bool
NULL, //fn_callback_device_mouse_out_set
NULL, //fn_pointer_device_xy_get
_ecore_evas_extn_socket_prepare,
+ NULL, //fn_last_tick_get
+ //TIZEN_ONLY(20171218) : Add to free evas engine rsc before free evas
+ NULL, //fn_evas_engine_rsc_free
};
EAPI Ecore_Evas *
NULL, //fn_pointer_device_xy_get
NULL, //fn_prepare
NULL, //fn_last_tick_get
+ //TIZEN_ONLY(20171218) : Add to free evas engine rsc before free evas
+ NULL, //fn_evas_engine_rsc_free
};
EAPI Ecore_Evas *
NULL, //fn_pointer_device_xy_get
NULL, //fn_prepare
NULL, //fn_last_tick_get
+ //TIZEN_ONLY(20171218) : Add to free evas engine rsc before free evas
+ NULL, //fn_evas_engine_rsc_free
};
static Ecore_Evas*
NULL, // wm_rot_manual_rotation_done_set
NULL, // wm_rot_manual_rotation_done
- NULL // aux_hints_set
+ NULL, // aux_hints_set
+
+ NULL, // fn_animator_register
+ NULL, // fn_animator_unregister
+
+ NULL, // fn_evas_changed
+ NULL, //fn_focus_device_set
+ NULL, //fn_callback_focus_device_in_set
+ NULL, //fn_callback_focus_device_out_set
+ NULL, //fn_callback_device_mouse_in_set
+ NULL, //fn_callback_device_mouse_out_set
+ NULL, //fn_pointer_device_xy_get
+ NULL, //fn_prepare
+ NULL, //fn_last_tick_get
+ //TIZEN_ONLY(20171218) : Add to free evas engine rsc before free evas
+ NULL, //fn_evas_engine_rsc_free
};
static void *
if (!ee) return;
+#if 0
// TIZEN_ONLY(20171120) : evas sw tbm_buf backend
if (!strcmp(ee->driver, "wayland_shm"))
{
wayland_tbm_client_deinit(einfo->info.tbm_client);
}
}
+#endif
wdata = ee->engine.data;
ee_list = eina_list_remove(ee_list, ee);
}
//
+//TIZEN_ONLY(20171218) : Add to free evas engine rsc before free evas
+static void
+_ecore_evas_wl_common_evas_engine_rsc_free(Ecore_Evas *ee)
+{
+ if (!ee) return;
+
+ // evas sw tbm_buf backend
+ if (!strcmp(ee->driver, "wayland_shm"))
+ {
+ Evas_Engine_Info_Wayland *einfo;
+ einfo = (Evas_Engine_Info_Wayland *)evas_engine_info_get(ee->evas);
+ if (einfo && einfo->info.tbm_client)
+ {
+ if (_ecore_evas_wl_init_count == 1)
+ wayland_tbm_client_deinit(einfo->info.tbm_client);
+ }
+ }
+}
+
static Eina_Bool
_ee_cb_sync_done(void *data, int type EINA_UNUSED, void *event EINA_UNUSED)
{
_ecore_evas_wl_common_pointer_device_xy_get,
_ecore_evas_wl_common_prepare,
NULL, //fn_last_tick_get
+ //TIZEN_ONLY(20171218) : Add to free evas engine rsc before free evas
+ _ecore_evas_wl_common_evas_engine_rsc_free,
};
Ecore_Evas *
NULL, //fn_pointer_device_xy_get
NULL, //fn_prepare
NULL, //fn_last_tick_get
+ //TIZEN_ONLY(20171218) : Add to free evas engine rsc before free evas
+ NULL, //fn_evas_engine_rsc_free
};
#endif /* BUILD_ECORE_EVAS_WIN32 */
NULL, //fn_pointer_device_xy_get
NULL, //fn_prepare
NULL, //fn_last_tick_get
+ //TIZEN_ONLY(20171218) : Add to free evas engine rsc before free evas
+ NULL, //fn_evas_engine_rsc_free
};
/*