cedric pushed a commit to branch master.

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

commit 3fd01561aed19c7a2274f46ae84344d206cbdca4
Author: Cedric BAIL <[email protected]>
Date:   Mon May 8 15:01:49 2017 -0700

    ecore_evas: refactor drm backend to use generic render infrastructure.
---
 .../ecore_evas/engines/drm/ecore_evas_drm.c        | 74 +++-------------------
 1 file changed, 8 insertions(+), 66 deletions(-)

diff --git a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c 
b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
index 3a8524d..82b7d0d 100644
--- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
+++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
@@ -183,78 +183,16 @@ _drm_rotation_do(Ecore_Evas *ee, int rotation, int resize 
EINA_UNUSED)
      ERR("evas_engine_info_set() for engine '%s' failed", ee->driver);
 }
 
-static int
-_drm_render_updates_process(Ecore_Evas *ee, Eina_List *updates)
-{
-   int rend = 0;
-
-   if ((ee->visible) && (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 void
-_drm_render_updates(void *data, Evas *evas EINA_UNUSED, void *event)
+_drm_render_updates(void *data, Evas *evas EINA_UNUSED, void *event 
EINA_UNUSED)
 {
-   Evas_Event_Render_Post *ev;
-   Ecore_Evas *ee;
-
-   ev = event;
-   if (!ev) return;
-
-   ee = data;
-   if (!ee) return;
-
-   ee->in_async_render = EINA_FALSE;
+   Ecore_Evas *ee = data;
 
    if (ee->delayed.rotation_changed)
      {
         _drm_rotation_do(ee, ee->delayed.rotation, 
ee->delayed.rotation_resize);
         ee->delayed.rotation_changed = EINA_FALSE;
      }
-
-   _drm_render_updates_process(ee, ev->updated_area);
-}
-
-static int
-_drm_render(Ecore_Evas *ee)
-{
-   int rend = 0;
-
-   if (ee->in_async_render) return 0;
-
-   rend = ecore_evas_render_prepare(ee);
-
-   if (!ee->visible)
-     {
-        evas_norender(ee->evas);
-        ee->func.fn_post_render(ee);
-        return 0;
-     }
-
-   if (!ee->can_async_render)
-     {
-        Eina_List *updates;
-
-        updates = evas_render_updates(ee->evas);
-        rend = _drm_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;
-     }
-
-   return rend;
 }
 
 static void
@@ -302,7 +240,10 @@ _drm_show(Ecore_Evas *ee)
    ee->should_be_visible = 1;
 
    if (ee->prop.avoid_damage)
-     _drm_render(ee);
+     {
+        ecore_evas_render(ee);
+        ecore_evas_render_wait(ee);
+     }
 
    if (ee->prop.override)
      {
@@ -724,7 +665,7 @@ static Ecore_Evas_Engine_Func _ecore_evas_drm_engine_func =
    NULL, //void (*fn_demands_attention_set) (Ecore_Evas *ee, Eina_Bool on);
    NULL, //void (*fn_focus_skip_set) (Ecore_Evas *ee, Eina_Bool on);
 
-   _drm_render,
+   NULL,
 
    _drm_screen_geometry_get,
    _drm_screen_dpi_get,
@@ -749,6 +690,7 @@ static Ecore_Evas_Engine_Func _ecore_evas_drm_engine_func =
    NULL, //fn_callback_focus_device_in_set
    NULL, //fn_callback_focus_device_out_set
    NULL, //fn_pointer_device_xy_get
+   NULL, //fn_prepare
 };
 
 static Ecore_Evas *

-- 


Reply via email to