So make the gradient shaders do that.
if (offset < next_offset) {
float f = (offset - curr_offset) / (next_offset - curr_offset);
- vec4 curr_color = gsk_premultiply(get_color(i));
- vec4 next_color = gsk_premultiply(get_color(i + 1));
+ vec4 curr_color = get_color(i);
+ vec4 next_color = get_color(i + 1);
vec4 color = mix(curr_color, next_color, f);
- gskSetScaledOutputColor(color, u_alpha);
+ gskSetScaledOutputColor(gsk_premultiply(color), u_alpha);
return;
}
}
if (offset < next_offset) {
float f = (offset - curr_offset) / (next_offset - curr_offset);
- vec4 curr_color = gsk_premultiply(get_color(i));
- vec4 next_color = gsk_premultiply(get_color(i + 1));
+ vec4 curr_color = get_color(i);
+ vec4 next_color = get_color(i + 1);
vec4 color = mix(curr_color, next_color, f);
- gskSetScaledOutputColor(color, u_alpha);
+ gskSetScaledOutputColor(gsk_premultiply (color), u_alpha);
return;
}
}
if (offset < next_offset) {
float f = (offset - curr_offset) / (next_offset - curr_offset);
- vec4 curr_color = gsk_premultiply(get_color(i));
- vec4 next_color = gsk_premultiply(get_color(i + 1));
+ vec4 curr_color = get_color(i);
+ vec4 next_color = get_color(i + 1);
vec4 color = mix(curr_color, next_color, f);
- gskSetScaledOutputColor(color, u_alpha);
+ gskSetScaledOutputColor(gsk_premultiply(color), u_alpha);
return;
}
}