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;
}
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
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);
obj->pre_render_done = 0;
//// FIXME: this wipes out changes
obj->changed = 0;
obj->changed_move_only = 0;
obj->changed_nomove = 0;
obj->changed_move = 0;
obj->changed_map = 0;
obj->changed_pchange = 0;
evas_object_change_reset(obj);
}
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
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) &&
!evas_object_was_visible(o2))
{
o2->changed = 0;
o2->changed_move_only = 0;
o2->changed_nomove = 0;
o2->changed_move = 0;
o2->changed_map = 0;
o2->changed_pchange = 0;
evas_object_change_reset(o2);
continue;
}
if (o2->changed)
{
// chlist(o2, 0);
changed = 1;
o2->changed = 0;
o2->changed_move_only = 0;
o2->changed_nomove = 0;
o2->changed_move = 0;
o2->changed_map = 0;
o2->changed_pchange = 0;
evas_object_change_reset(o2);
break;
}
}
// unchange(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;
evas_object_change_reset(obj);
}
else
{
@ -1003,12 +966,7 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface,
{
if ((obj->changed_pchange) && (obj->changed_map))
changed = 1;
obj->changed = 0;
obj->changed_move_only = 0;
obj->changed_nomove = 0;
obj->changed_move = 0;
obj->changed_map = 0;
obj->changed_pchange = 0;
evas_object_change_reset(obj);
}
}
@ -1641,12 +1599,7 @@ evas_render_updates_internal(Evas *e,
RD(" OBJ [%p] post... func1\n", obj);
obj->func->render_post(obj);
obj->restack = 0;
obj->changed = 0;
obj->changed_move_only = 0;
obj->changed_nomove = 0;
obj->changed_move = 0;
obj->changed_map = 0;
obj->changed_pchange = 0;
evas_object_change_reset(obj);
}
else if ((obj->cur.map != obj->prev.map) ||
(obj->cur.usemap != obj->prev.usemap))
@ -1654,12 +1607,7 @@ evas_render_updates_internal(Evas *e,
RD(" OBJ [%p] post... func2\n", obj);
obj->func->render_post(obj);
obj->restack = 0;
obj->changed = 0;
obj->changed_move_only = 0;
obj->changed_nomove = 0;
obj->changed_move = 0;
obj->changed_map = 0;
obj->changed_pchange = 0;
evas_object_change_reset(obj);
}
/* moved to other pre-process phase 1
if (obj->delete_me == 2)

View File

@ -892,6 +892,7 @@ extern "C" {
#endif
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_update_bounding_box(Evas_Object *obj);
void evas_object_inject(Evas_Object *obj, Evas *e);