for (i = 0; i < length; ++i)
{
color_stops[i].offset = colors[i].offset;
- color_stops[i].r = colors[i].r;
- color_stops[i].g = colors[i].g;
- color_stops[i].b = colors[i].b;
- color_stops[i].a = colors[i].a;
+
+ int r, g, b, a;
+ r = colors[i].r;
+ g = colors[i].g;
+ b = colors[i].b;
+ a = colors[i].a;
+ evas_color_argb_unpremul(a, &r, &g, &b);
+ color_stops[i].r = (uint8_t)r;
+ color_stops[i].g = (uint8_t)g;
+ color_stops[i].b = (uint8_t)b;
+ color_stops[i].a = (uint8_t)a;
}
tvg_gradient_set_color_stops(gd->gradient, color_stops, length);
(*colors)[i].r = stop[i].r;
(*colors)[i].g = stop[i].g;
(*colors)[i].b = stop[i].b;
+ evas_color_argb_premul((*colors)[i].a, &(*colors)[i].r, &(*colors)[i].g, &(*colors)[i].b);
}
}
#endif
if (!sd->fill)
{
efl_gfx_color_get(obj, &r, &g, &b, &a);
+ evas_color_argb_unpremul(a, &r, &g, &b);
tvg_shape_set_fill_color(sd->shape, r, g, b, a);
}
else if (efl_isa(sd->fill, EFL_CANVAS_VG_GRADIENT_CLASS))