[cairo-commit] src/cairo-gstate.c
Chris Wilson
ickle at kemper.freedesktop.org
Thu May 13 01:33:24 PDT 2010
src/cairo-gstate.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
New commits:
commit 4741d33cf67409a6fddbc32a5d0c8d68224cd939
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu May 13 09:31:10 2010 +0100
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.
diff --git a/src/cairo-gstate.c b/src/cairo-gstate.c
index caed88b..78aab50 100644
--- a/src/cairo-gstate.c
+++ b/src/cairo-gstate.c
@@ -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;
More information about the cairo-commit
mailing list