ecore-evas wayland: move frame sending to pre-flush callback 62/63262/2 accepted/tizen/ivi/20160323.141027 accepted/tizen/mobile/20160323.135751 accepted/tizen/tv/20160323.140013 accepted/tizen/wearable/20160323.135645 submit/tizen/20160323.100319
authorMike Blumenkrantz <zmike@osg.samsung.com>
Tue, 15 Dec 2015 22:14:43 +0000 (17:14 -0500)
committerJIIN MOON <jiin.moon@samsung.com>
Wed, 23 Mar 2016 09:50:50 +0000 (02:50 -0700)
it was possible to deadlock rendering if a pre-render occurred but
the resulting render had no updated regions

@fix

Conflicts:
src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c

Change-Id: I2c391f037c29310d1d66945c256ba8af98d9c22f

src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_private.h
src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c

index 437265f..bca87d2 100644 (file)
@@ -1623,7 +1623,7 @@ static const struct wl_callback_listener _anim_listener =
 };
 
 void
-_ecore_evas_wl_common_render_pre(void *data, Evas *evas EINA_UNUSED, void *event EINA_UNUSED)
+_ecore_evas_wl_common_render_flush_pre(void *data, Evas *evas EINA_UNUSED, void *event EINA_UNUSED)
 {
    Ecore_Evas *ee = data;
    Ecore_Evas_Engine_Wl_Data *wdata;
index 0c7c223..cf6f90d 100644 (file)
@@ -246,8 +246,8 @@ ecore_evas_wayland_egl_options_new_internal(const char *disp_name, unsigned int
      evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_POST, 
                              _ecore_evas_wl_common_render_updates, ee);
 
-   evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_PRE,
-                            _ecore_evas_wl_common_render_pre, ee);
+   evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE,
+                           _ecore_evas_wl_common_render_flush_pre, ee);
 
    /* FIXME: This needs to be set based on theme & scale */
    if (ee->prop.draw_frame)
index 0c9a31d..b14fe7e 100644 (file)
@@ -84,7 +84,7 @@ void _ecore_evas_wl_common_post_render(Ecore_Evas *ee);
 int  _ecore_evas_wl_common_render(Ecore_Evas *ee);
 void _ecore_evas_wl_common_screen_geometry_get(const Ecore_Evas *ee, int *x, int *y, int *w, int *h);
 void _ecore_evas_wl_common_screen_dpi_get(const Ecore_Evas *ee, int *xdpi, int *ydpi);
-void _ecore_evas_wl_common_render_pre(void *data, Evas *evas EINA_UNUSED, void *event);
+void _ecore_evas_wl_common_render_flush_pre(void *data, Evas *evas EINA_UNUSED, void *event);
 void _ecore_evas_wl_common_render_updates(void *data, Evas *evas, void *event);
 void _ecore_evas_wl_common_rotation_set(Ecore_Evas *ee, int rotation, int resize);
 void _ecore_evas_wl_common_borderless_set(Ecore_Evas *ee, Eina_Bool on);
index 49e6330..86c9e1a 100644 (file)
@@ -241,8 +241,8 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, unsigned int parent,
      evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_POST,
                             _ecore_evas_wl_common_render_updates, ee);
 
-   evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_PRE,
-                            _ecore_evas_wl_common_render_pre, ee);
+   evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE,
+                           _ecore_evas_wl_common_render_flush_pre, ee);
 
    /* FIXME: This needs to be set based on theme & scale */
    if (ee->prop.draw_frame)