cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=e541c4f5001bd759555f7b15a4b487cd476b8553

commit e541c4f5001bd759555f7b15a4b487cd476b8553
Author: Cedric BAIL <[email protected]>
Date:   Mon May 8 15:03:51 2017 -0700

    ecore_evas: refactor wayland backend to use generic render infrastructure.
---
 .../engines/wayland/ecore_evas_wayland_common.c    | 78 +++-------------------
 1 file changed, 9 insertions(+), 69 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 24f91f9..ee96792 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
@@ -39,29 +39,6 @@ _ecore_evas_wl_common_state_update(Ecore_Evas *ee)
    if (ee->func.fn_state_change) ee->func.fn_state_change(ee);
 }
 
-static int 
-_ecore_evas_wl_common_render_updates_process(Ecore_Evas *ee, Eina_List 
*updates)
-{
-   int rend = 0;
-
-   if (((ee->visible) && (ee->draw_ok)) ||
-       ((ee->should_be_visible) && (ee->prop.fullscreen)) ||
-       ((ee->should_be_visible) && (ee->prop.override)))
-     {
-        if (updates)
-          {
-             _ecore_evas_idle_timeout_update(ee);
-             rend = 1;
-          }
-     }
-   else
-     evas_norender(ee->evas);
-
-   if (ee->func.fn_post_render) ee->func.fn_post_render(ee);
-
-   return rend;
-}
-
 static Eina_Bool
 _ecore_evas_wl_common_cb_mouse_in(void *data EINA_UNUSED, int type 
EINA_UNUSED, void *event)
 {
@@ -1501,10 +1478,6 @@ _ecore_evas_wl_common_render_updates(void *data, Evas 
*evas EINA_UNUSED, void *e
    Evas_Event_Render_Post *ev = event;
    Ecore_Evas *ee = data;
 
-   if (!(ee) || !(ev)) return;
-
-   ee->in_async_render = EINA_FALSE;
-
    if (ee->delayed.alpha_changed)
      {
         _ecore_evas_wayland_alpha_do(ee, ee->delayed.alpha);
@@ -1520,50 +1493,19 @@ _ecore_evas_wl_common_render_updates(void *data, Evas 
*evas EINA_UNUSED, void *e
         _rotation_do(ee, ee->delayed.rotation, ee->delayed.rotation_resize);
         ee->delayed.rotation_changed = EINA_FALSE;
      }
-
-   _ecore_evas_wl_common_render_updates_process(ee, ev->updated_area);
 }
 
-static int
-_ecore_evas_wl_common_render(Ecore_Evas *ee)
+static Eina_Bool
+_ecore_evas_wl_common_prepare(Ecore_Evas *ee)
 {
    Ecore_Evas_Engine_Wl_Data *wdata;
-   int rend = 0;
-
-   if (!ee) return 0;
-   if (!(wdata = ee->engine.data)) return 0;
-   if (!wdata->sync_done) return 0;
-
-   if (wdata->win->pending.configure) return 0;
-
-   /* TODO: handle comp no sync */
-
-   if (ee->in_async_render) return 0;
-   if (!ee->visible)
-     {
-        evas_norender(ee->evas);
-        return 0;
-     }
 
-   rend = ecore_evas_render_prepare(ee);
+   if (!(wdata = ee->engine.data)) return EINA_FALSE;
+   if (!wdata->sync_done) return EINA_FALSE;
 
-   if (!ee->can_async_render)
-     {
-        Eina_List *updates;
+   if (wdata->win->pending.configure) return EINA_FALSE;
 
-        updates = evas_render_updates(ee->evas);
-        rend = _ecore_evas_wl_common_render_updates_process(ee, updates);
-        evas_render_updates_free(updates);
-     }
-   else if (evas_render_async(ee->evas))
-     {
-        ee->in_async_render = EINA_TRUE;
-        rend = 1;
-     }
-   else if (ee->func.fn_post_render)
-     ee->func.fn_post_render(ee);
-
-   return rend;
+   return EINA_TRUE;
 }
 
 static void
@@ -2040,6 +1982,7 @@ static Ecore_Evas_Engine_Func _ecore_wl_engine_func =
    NULL, //fn_callback_device_mouse_in_set
    NULL, //fn_callback_device_mouse_out_set
    _ecore_evas_wl_common_pointer_device_xy_get,
+   _ecore_evas_wl_common_prepare,
 };
 
 Ecore_Evas *
@@ -2147,9 +2090,8 @@ _ecore_evas_wl_common_new_internal(const char *disp_name, 
unsigned int parent, i
    evas_output_size_set(ee->evas, ee->w + fw, ee->h + fh);
    evas_output_viewport_set(ee->evas, 0, 0, ee->w + fw, ee->h + fh);
 
-   if (ee->can_async_render)
-     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_POST,
+                           _ecore_evas_wl_common_render_updates, ee);
 
    evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE,
                            _ecore_evas_wl_common_render_flush_pre, ee);
@@ -2189,8 +2131,6 @@ _ecore_evas_wl_common_new_internal(const char *disp_name, 
unsigned int parent, i
         goto eng_err;
      }
 
-   ee->engine.func->fn_render = _ecore_evas_wl_common_render;
-
    _ecore_evas_register(ee);
    ecore_evas_input_event_register(ee);
 

-- 


Reply via email to