diff options
author | Mike Blumenkrantz <zmike@osg.samsung.com> | 2015-12-15 17:14:43 -0500 |
---|---|---|
committer | Mike Blumenkrantz <zmike@osg.samsung.com> | 2015-12-15 17:24:52 -0500 |
commit | 54df1d9c6a5e42d72aadc59265fbd64e7f7871b3 (patch) | |
tree | b1210782a61d59686fe27ef7d4fd7ca887a87867 | |
parent | cb23fd2af2d07c17ae2d6c08a7c87cf8abf45814 (diff) | |
download | efl-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
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); |