diff options
author | Andrea Canciani <ranma42@gmail.com> | 2015-04-09 00:17:24 +0200 |
---|---|---|
committer | Andrea Canciani <ranma42@gmail.com> | 2015-07-27 12:46:00 +0200 |
commit | 66bc7b8cb0e753006fa838a8badcf5cb7528d6f7 (patch) | |
tree | d4be81181beb41a1da7d851131bedf3eccfb3888 /src/cairo-quartz-surface.c | |
parent | 6210e347712127260dd72b0f03a8604c8d22fdca (diff) | |
download | cairo-66bc7b8cb0e753006fa838a8badcf5cb7528d6f7.tar.gz |
quartz: be more strict about the behavior of blend operators
Some blend operators have a (small, but potentially noticeable)
different behaviour in Quartz and pixman. Use the Quartz ones only for
the operators which match pixman except for rounding errors.
Fixes:
- extended-blend
- extended-blend-alpha
- extended-blend-mask
- extended-blend-alpha-mask
- extended-blend-solid
- extended-blend-solid-alpha
Diffstat (limited to 'src/cairo-quartz-surface.c')
-rw-r--r-- | src/cairo-quartz-surface.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/cairo-quartz-surface.c b/src/cairo-quartz-surface.c index 4c8c2e42f..5e9b37629 100644 --- a/src/cairo-quartz-surface.c +++ b/src/cairo-quartz-surface.c @@ -508,9 +508,13 @@ _cairo_cgcontext_set_cairo_operator (CGContextRef context, cairo_operator_t op) /* Quartz doesn't support SATURATE at all. COLOR_DODGE and * COLOR_BURN in Quartz follow the ISO32000 definition, but cairo - * uses the definition from the Adobe Supplement. + * uses the definition from the Adobe Supplement. Also fallback + * on SOFT_LIGHT and HSL_HUE, because their results are + * significantly different from those provided by pixman. */ if (op == CAIRO_OPERATOR_SATURATE || + op == CAIRO_OPERATOR_SOFT_LIGHT || + op == CAIRO_OPERATOR_HSL_HUE || op == CAIRO_OPERATOR_COLOR_DODGE || op == CAIRO_OPERATOR_COLOR_BURN) { |