gstate: Don't reduce solid source and mask for SOURCE and CLEAR

Not all operators are created equal, and this optimization breaks for
SOURCE and CLEAR where the mask operates on the clip and not the source.
This commit is contained in:
Chris Wilson 2010-05-13 09:31:10 +01:00
parent ee871940ff
commit 4741d33cf6

View file

@ -1113,7 +1113,8 @@ _cairo_gstate_mask (cairo_gstate_t *gstate,
_cairo_gstate_copy_transformed_mask (gstate, &mask_pattern.base, mask);
if (source->type == CAIRO_PATTERN_TYPE_SOLID &&
mask_pattern.type == CAIRO_PATTERN_TYPE_SOLID)
mask_pattern.type == CAIRO_PATTERN_TYPE_SOLID &&
_cairo_operator_bounded_by_source (op))
{
const cairo_solid_pattern_t *solid = (cairo_solid_pattern_t *) source;
cairo_color_t combined;