evas/evas_render - added evas_object_change_reset internal function to remove much duplicated code

SVN revision: 71169
This commit is contained in:
ChunEon Park 2012-05-16 12:59:33 +00:00
parent f243db26ac
commit 14e43d84fd
3 changed files with 20 additions and 60 deletions

View File

@ -30,6 +30,17 @@ evas_object_new(Evas *e __UNUSED__)
return obj; return obj;
} }
void
evas_object_change_reset(Evas_Object *obj)
{
obj->changed = EINA_FALSE;
obj->changed_move_only = EINA_FALSE;
obj->changed_nomove = EINA_FALSE;
obj->changed_move = EINA_FALSE;
obj->changed_map = EINA_FALSE;
obj->changed_pchange = EINA_FALSE;
}
void void
evas_object_free(Evas_Object *obj, int clean_layer) evas_object_free(Evas_Object *obj, int clean_layer)
{ {

View File

@ -593,33 +593,12 @@ pending_change(void *data, void *gdata __UNUSED__)
{ {
RD(" OBJ [%p] pending change %i -> 0, pre %i\n", obj, obj->changed, obj->pre_render_done); RD(" OBJ [%p] pending change %i -> 0, pre %i\n", obj, obj->changed, obj->pre_render_done);
obj->pre_render_done = 0; obj->pre_render_done = 0;
//// FIXME: this wipes out changes evas_object_change_reset(obj);
obj->changed = 0;
obj->changed_move_only = 0;
obj->changed_nomove = 0;
obj->changed_move = 0;
obj->changed_map = 0;
obj->changed_pchange = 0;
} }
return obj->changed ? EINA_TRUE : EINA_FALSE; return obj->changed ? EINA_TRUE : EINA_FALSE;
} }
/* /*
static void
unchange(Evas_Object *obj)
{
Evas_Object *obj2;
if (!obj->changed) return;
obj->changed = 0;
obj->changed_move_only = 0;
obj->changed_nomove = 0;
obj->changed_move = 0;
EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(obj), obj2)
{
unchange(obj2);
}
}
static int static int
chlist(Evas_Object *obj, int i) chlist(Evas_Object *obj, int i)
{ {
@ -968,34 +947,18 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface,
if (!evas_object_is_visible(o2) && if (!evas_object_is_visible(o2) &&
!evas_object_was_visible(o2)) !evas_object_was_visible(o2))
{ {
o2->changed = 0; evas_object_change_reset(o2);
o2->changed_move_only = 0;
o2->changed_nomove = 0;
o2->changed_move = 0;
o2->changed_map = 0;
o2->changed_pchange = 0;
continue; continue;
} }
if (o2->changed) if (o2->changed)
{ {
// chlist(o2, 0); // chlist(o2, 0);
changed = 1; changed = 1;
o2->changed = 0; evas_object_change_reset(o2);
o2->changed_move_only = 0;
o2->changed_nomove = 0;
o2->changed_move = 0;
o2->changed_map = 0;
o2->changed_pchange = 0;
break; break;
} }
} }
// unchange(obj); evas_object_change_reset(obj);
obj->changed = 0;
obj->changed_move_only = 0;
obj->changed_nomove = 0;
obj->changed_move = 0;
obj->changed_map = 0;
obj->changed_pchange = 0;
} }
else else
{ {
@ -1003,12 +966,7 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface,
{ {
if ((obj->changed_pchange) && (obj->changed_map)) if ((obj->changed_pchange) && (obj->changed_map))
changed = 1; changed = 1;
obj->changed = 0; evas_object_change_reset(obj);
obj->changed_move_only = 0;
obj->changed_nomove = 0;
obj->changed_move = 0;
obj->changed_map = 0;
obj->changed_pchange = 0;
} }
} }
@ -1641,12 +1599,7 @@ evas_render_updates_internal(Evas *e,
RD(" OBJ [%p] post... func1\n", obj); RD(" OBJ [%p] post... func1\n", obj);
obj->func->render_post(obj); obj->func->render_post(obj);
obj->restack = 0; obj->restack = 0;
obj->changed = 0; evas_object_change_reset(obj);
obj->changed_move_only = 0;
obj->changed_nomove = 0;
obj->changed_move = 0;
obj->changed_map = 0;
obj->changed_pchange = 0;
} }
else if ((obj->cur.map != obj->prev.map) || else if ((obj->cur.map != obj->prev.map) ||
(obj->cur.usemap != obj->prev.usemap)) (obj->cur.usemap != obj->prev.usemap))
@ -1654,12 +1607,7 @@ evas_render_updates_internal(Evas *e,
RD(" OBJ [%p] post... func2\n", obj); RD(" OBJ [%p] post... func2\n", obj);
obj->func->render_post(obj); obj->func->render_post(obj);
obj->restack = 0; obj->restack = 0;
obj->changed = 0; evas_object_change_reset(obj);
obj->changed_move_only = 0;
obj->changed_nomove = 0;
obj->changed_move = 0;
obj->changed_map = 0;
obj->changed_pchange = 0;
} }
/* moved to other pre-process phase 1 /* moved to other pre-process phase 1
if (obj->delete_me == 2) if (obj->delete_me == 2)

View File

@ -892,6 +892,7 @@ extern "C" {
#endif #endif
Evas_Object *evas_object_new(Evas *e); Evas_Object *evas_object_new(Evas *e);
void evas_object_change_reset(Evas_Object *obj);
void evas_object_free(Evas_Object *obj, int clean_layer); void evas_object_free(Evas_Object *obj, int clean_layer);
void evas_object_update_bounding_box(Evas_Object *obj); void evas_object_update_bounding_box(Evas_Object *obj);
void evas_object_inject(Evas_Object *obj, Evas *e); void evas_object_inject(Evas_Object *obj, Evas *e);