forked from enlightenment/efl
evas/evas_render - and should update the mapped objects when their color is changed since color should be multiplied again.
SVN revision: 71226
This commit is contained in:
parent
03995b4e98
commit
2a9f42c47e
|
@ -35,6 +35,7 @@ evas_object_change_reset(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
obj->changed = EINA_FALSE;
|
obj->changed = EINA_FALSE;
|
||||||
obj->changed_move = EINA_FALSE;
|
obj->changed_move = EINA_FALSE;
|
||||||
|
obj->changed_color = EINA_FALSE;
|
||||||
obj->changed_map = EINA_FALSE;
|
obj->changed_map = EINA_FALSE;
|
||||||
obj->changed_pchange = EINA_FALSE;
|
obj->changed_pchange = EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
@ -94,7 +95,6 @@ evas_object_change(Evas_Object *obj)
|
||||||
|
|
||||||
if (obj->changed) return;
|
if (obj->changed) return;
|
||||||
|
|
||||||
// obj->changed = EINA_TRUE;
|
|
||||||
evas_render_object_recalc(obj);
|
evas_render_object_recalc(obj);
|
||||||
/* set changed flag on all objects this one clips too */
|
/* set changed flag on all objects this one clips too */
|
||||||
if (!((movch) && (obj->is_static_clip)))
|
if (!((movch) && (obj->is_static_clip)))
|
||||||
|
@ -1264,8 +1264,10 @@ evas_object_color_set(Evas_Object *obj, int r, int g, int b, int a)
|
||||||
obj->cur.color.g = g;
|
obj->cur.color.g = g;
|
||||||
obj->cur.color.b = b;
|
obj->cur.color.b = b;
|
||||||
evas_object_clip_dirty(obj);
|
evas_object_clip_dirty(obj);
|
||||||
|
|
||||||
if ((obj->cur.color.a == 0) && (a == 0) && (obj->cur.render_op == EVAS_RENDER_BLEND)) return;
|
if ((obj->cur.color.a == 0) && (a == 0) && (obj->cur.render_op == EVAS_RENDER_BLEND)) return;
|
||||||
obj->cur.color.a = a;
|
obj->cur.color.a = a;
|
||||||
|
obj->changed_color = EINA_TRUE;
|
||||||
evas_object_change(obj);
|
evas_object_change(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -931,16 +931,15 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (obj->changed_color) changed = EINA_TRUE;
|
||||||
evas_object_change_reset(obj);
|
evas_object_change_reset(obj);
|
||||||
}
|
}
|
||||||
else
|
else if (obj->changed)
|
||||||
{
|
{
|
||||||
if (obj->changed)
|
if (((obj->changed_pchange) && (obj->changed_map)) ||
|
||||||
{
|
(obj->changed_color))
|
||||||
if ((obj->changed_pchange) && (obj->changed_map))
|
changed = EINA_TRUE;
|
||||||
changed = EINA_TRUE;
|
evas_object_change_reset(obj);
|
||||||
evas_object_change_reset(obj);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// clear surface before re-render
|
// clear surface before re-render
|
||||||
|
|
|
@ -616,6 +616,7 @@ struct _Evas_Object
|
||||||
|
|
||||||
Eina_Bool changed : 1;
|
Eina_Bool changed : 1;
|
||||||
Eina_Bool changed_move : 1;
|
Eina_Bool changed_move : 1;
|
||||||
|
Eina_Bool changed_color : 1;
|
||||||
Eina_Bool changed_map : 1;
|
Eina_Bool changed_map : 1;
|
||||||
Eina_Bool changed_pchange : 1;
|
Eina_Bool changed_pchange : 1;
|
||||||
Eina_Bool del_ref : 1;
|
Eina_Bool del_ref : 1;
|
||||||
|
|
Loading…
Reference in New Issue