summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2015-12-15 17:14:43 -0500
committerMike Blumenkrantz <zmike@osg.samsung.com>2015-12-15 17:24:52 -0500
commit54df1d9c6a5e42d72aadc59265fbd64e7f7871b3 (patch)
treeb1210782a61d59686fe27ef7d4fd7ca887a87867
parentcb23fd2af2d07c17ae2d6c08a7c87cf8abf45814 (diff)
downloadefl-54df1d9c6a5e42d72aadc59265fbd64e7f7871b3.tar.gz
ecore-evas wayland: move frame sending to pre-flush callback
it was possible to deadlock rendering if a pre-render occurred but the resulting render had no updated regions @fix
-rw-r--r--src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c11
-rw-r--r--src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c3
-rw-r--r--src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c3
3 files changed, 1 insertions, 16 deletions
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
index 75ac4288d4..f10f4d045b 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
@@ -1289,7 +1289,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;
@@ -1299,15 +1299,6 @@ _ecore_evas_wl_common_render_pre(void *data, Evas *evas EINA_UNUSED, void *event
wl_surface_frame(ecore_wl2_window_surface_get(wdata->win));
wl_callback_add_listener(wdata->anim_callback, &_anim_listener, ee);
ecore_evas_manual_render_set(ee, 1);
-}
-
-void
-_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;
-
- wdata = ee->engine.data;
if (wdata->win->configure_ack && wdata->win->configure_serial)
wdata->win->configure_ack(wdata->win->xdg_surface,
wdata->win->configure_serial);
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
index 88366306c5..c6def65d9a 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
@@ -314,9 +314,6 @@ ecore_evas_wayland_egl_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);
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
index c815f79945..be092fb660 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
@@ -312,9 +312,6 @@ 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);