raster pushed a commit to branch master.

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

commit 7bb28711023254a023bc7578da5f52fd8f7479c4
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Thu Jun 18 20:48:37 2015 +0900

    more evas render 2 work - should not affect normal behavior or code
    paths unless turned on at runtime
---
 src/lib/evas/canvas/evas_object_rectangle.c        |  6 +++---
 src/lib/evas/canvas/render2/evas_render2_th_main.c | 18 +++++++++++++++---
 2 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/src/lib/evas/canvas/evas_object_rectangle.c 
b/src/lib/evas/canvas/evas_object_rectangle.c
index 0de959c..7b0c00f 100644
--- a/src/lib/evas/canvas/evas_object_rectangle.c
+++ b/src/lib/evas/canvas/evas_object_rectangle.c
@@ -137,7 +137,7 @@ evas_object_rectangle_render2_walk(Evas_Object *eo_obj,
    // just became visible or invisible
    if (visible_is != visible_was)
      {
-        printf("       UP1 %p - %i %i %ix%i\n", eo_obj,
+        printf("       UP1 %p - %4i %4i %4ix%4i\n", eo_obj,
                obj->cur->cache.clip.x, obj->cur->cache.clip.y,
                obj->cur->cache.clip.w, obj->cur->cache.clip.h);
         evas_common_tilebuf_add_redraw
@@ -160,7 +160,7 @@ evas_object_rectangle_render2_walk(Evas_Object *eo_obj,
        (obj->restack)
       )
      {
-        printf("       UP2 %p - %i %i %ix%i\n", eo_obj,
+        printf("       UP2 %p - %4i %4i %4ix%4i\n", eo_obj,
                obj->prev->cache.clip.x, obj->prev->cache.clip.y,
                obj->prev->cache.clip.w, obj->prev->cache.clip.h);
         evas_common_tilebuf_add_redraw
@@ -177,7 +177,7 @@ nochange:
    // object hasn't really changed
    if ((visible_is) && (evas_object_is_opaque(eo_obj, obj)))
      {
-        printf("       NO- %p - %i %i %ix%i\n", eo_obj,
+        printf("       NO- %p - %4i %4i %4ix%4i\n", eo_obj,
                obj->cur->cache.clip.x, obj->cur->cache.clip.y,
                obj->cur->cache.clip.w, obj->cur->cache.clip.h);
         evas_common_tilebuf_del_redraw
diff --git a/src/lib/evas/canvas/render2/evas_render2_th_main.c 
b/src/lib/evas/canvas/render2/evas_render2_th_main.c
index 54b3428..6f66929 100644
--- a/src/lib/evas/canvas/render2/evas_render2_th_main.c
+++ b/src/lib/evas/canvas/render2/evas_render2_th_main.c
@@ -142,7 +142,6 @@ _evas_render2_th_main_obj_process(Evas_Public_Data *e,
    Evas_Object *eo_obj = obj->object;
    const Eina_Inlist *il;
 
-   if (!obj->changed) return;
    il = evas_object_smart_members_get_direct(eo_obj);
    if (il)
      {
@@ -177,7 +176,7 @@ _evas_render2_th_main_do(Eo *eo_e, Evas_Public_Data *e)
    double t;
    Tilebuf *updates = NULL;
    Tilebuf_Rect *rects, *r;
-   Eina_List *updates_list = NULL;
+   Eina_List *updates_list = NULL, *l;
    Eina_Rectangle *rect;
 
    updates = evas_common_tilebuf_new(e->output.w, e->output.h);
@@ -195,6 +194,19 @@ _evas_render2_th_main_do(Eo *eo_e, Evas_Public_Data *e)
                                                0);
           }
      }
+   // add explicitly exposed/damaged regions of the canvas
+   EINA_LIST_FREE(e->damages, rect)
+     {
+        evas_common_tilebuf_add_redraw(updates, rect->x, rect->y,
+                                       rect->w, rect->h);
+        eina_rectangle_free(rect);
+     }
+   // build obscure objects list of active objects that obscure
+   EINA_LIST_FOREACH(e->obscures, l, rect)
+     {
+        evas_common_tilebuf_del_redraw(updates, rect->x, rect->y,
+                                       rect->w, rect->h);
+     }
    t = get_time() - t;
    printf("T: update generation: "); out_time(t);
 
@@ -204,7 +216,7 @@ _evas_render2_th_main_do(Eo *eo_e, Evas_Public_Data *e)
         rect = malloc(sizeof(Eina_Rectangle));
         if (rect)
           {
-             printf(" %i %i %ix%i\n", r->x, r->y, r->w, r->h);
+             printf(" Render Region [ %4i %4i %4ix%4i ]\n", r->x, r->y, r->w, 
r->h);
              rect->x = r->x; rect->y = r->y;
              rect->w = r->w; rect->h = r->h;
              updates_list = eina_list_append(updates_list, rect);

-- 


Reply via email to