devilhorns pushed a commit to branch master.

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

commit 99962a58936402bb1939ea0a4946fc12e95f75c4
Author: Chris Michael <[email protected]>
Date:   Wed Apr 9 09:44:16 2014 +0100

    ecore-evas-wl: Reduce useless compositor redraws during render update
    and update input & opaque regions after resizing.
    
    @bugfix: We do not need to call ecore_wl_window_damage & commit here.
    The damages are already handled in the evas engine for both shm & egl.
    Those damages are sent to the compositor Already from the evas engine,
    so we don't need to send the same damages twice. This reduces more
    useless compositor redraws as we are not constantly sending damages &
    calling commit twice for every frame.
    
    Signed-off-by: Chris Michael <[email protected]>
---
 .../engines/wayland/ecore_evas_wayland_common.c    | 25 ++++++++++++----------
 1 file changed, 14 insertions(+), 11 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 ef5ec4a..e1ef5a6 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
@@ -69,19 +69,18 @@ _ecore_evas_wl_common_render_updates_process(Ecore_Evas 
*ee, Eina_List *updates)
 
    if ((ee->visible) && (updates))
      {
-        Eina_List *l = NULL;
-        Eina_Rectangle *r;
-        Ecore_Evas_Engine_Wl_Data *wdata;
+        /* Eina_List *l = NULL; */
+        /* Eina_Rectangle *r; */
+        /* Ecore_Evas_Engine_Wl_Data *wdata; */
 
-        if (!(wdata = ee->engine.data)) return 0;
+        /* if (!(wdata = ee->engine.data)) return 0; */
 
-        EINA_LIST_FOREACH(updates, l, r)
-          ecore_wl_window_damage(wdata->win,
-                                 r->x, r->y, r->w, r->h);
+        /* EINA_LIST_FOREACH(updates, l, r) */
+        /*   ecore_wl_window_damage(wdata->win, */
+        /*                          r->x, r->y, r->w, r->h); */
 
-        ecore_wl_window_commit(wdata->win);
-
-        ecore_wl_flush();
+        /* ecore_wl_window_commit(wdata->win); */
+        /* ecore_wl_flush(); */
 
         _ecore_evas_idle_timeout_update(ee);
         rend = 1;
@@ -740,7 +739,11 @@ _ecore_evas_wl_common_resize(Ecore_Evas *ee, int w, int h)
           evas_object_resize(wdata->frame, w, h);
 
         if (wdata->win)
-          ecore_wl_window_update_size(wdata->win, w, h);
+          {
+             ecore_wl_window_update_size(wdata->win, w, h);
+             ecore_wl_window_input_region_set(wdata->win, 0, 0, w, h);
+             ecore_wl_window_opaque_region_set(wdata->win, 0, 0, w, h);
+          }
 
         if (ee->func.fn_resize) ee->func.fn_resize(ee);
      }

-- 


Reply via email to