evas: multiply the parent color with the object color.

It is necessary to actually propagate the Evas_Object_VG own color to all its
Evas_VG_Base object.
This commit is contained in:
Cedric BAIL 2015-04-03 16:31:51 +02:00
parent 8e05c58f2b
commit 1b4647bee8
1 changed files with 13 additions and 2 deletions

View File

@ -3530,7 +3530,7 @@ eng_ector_renderer_draw(void *data EINA_UNUSED, void *context, void *surface, Ec
Eina_Rectangle *r; Eina_Rectangle *r;
Eina_Rectangle clip; Eina_Rectangle clip;
Eina_Array_Iterator it; Eina_Array_Iterator it;
unsigned int i; unsigned int i, col;
if (dc->clip.use) if (dc->clip.use)
{ {
@ -3571,10 +3571,21 @@ eng_ector_renderer_draw(void *data EINA_UNUSED, void *context, void *surface, Ec
if (eina_array_count(c) == 0) if (eina_array_count(c) == 0)
eina_array_push(c, eina_rectangle_new(clip.x, clip.y, clip.w, clip.h)); eina_array_push(c, eina_rectangle_new(clip.x, clip.y, clip.w, clip.h));
{
unsigned int mul_col = dc->mul.use ? dc->mul.col : 0xffffffff;
int r, g, b, a;
r = (R_VAL(&mul_col) * R_VAL(&dc->col.col)) >> 8;
g = (G_VAL(&mul_col) * G_VAL(&dc->col.col)) >> 8;
b = (B_VAL(&mul_col) * B_VAL(&dc->col.col)) >> 8;
a = (A_VAL(&mul_col) * A_VAL(&dc->col.col)) >> 8;
col = ARGB_JOIN(r, g, b, a);
}
ector.r = eo_ref(renderer); ector.r = eo_ref(renderer);
ector.clips = c; ector.clips = c;
ector.render_op = _evas_render_op_to_ector_rop(dc->render_op); ector.render_op = _evas_render_op_to_ector_rop(dc->render_op);
ector.mul_col = dc->mul.use ? dc->mul.col : 0xffffffff; ector.mul_col = col;
ector.x = x; ector.x = x;
ector.y = y; ector.y = y;
ector.free_it = EINA_FALSE; ector.free_it = EINA_FALSE;