more evas render 2 work - should not affect normal behavior or code

paths unless turned on at runtime
This commit is contained in:
Carsten Haitzler 2015-06-18 20:48:37 +09:00
parent e399e9df4a
commit 7bb2871102
2 changed files with 18 additions and 6 deletions

View File

@ -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

View File

@ -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);