diff options
author | Andrea Canciani <ranma42@gmail.com> | 2011-06-24 16:23:28 +0200 |
---|---|---|
committer | Andrea Canciani <ranma42@gmail.com> | 2011-06-25 10:19:36 +0200 |
commit | a468489270faabacbf89febc250c2d393fda1a13 (patch) | |
tree | 944e9612d8955afc7d52f070d1570d94021790f4 | |
parent | acfc00168571928a882787d3c6622efde22172e0 (diff) |
win32: Fallback upon PDF blend operators
GDI does not support PDF blend modes, so they are implemented by
falling back.
Fixes extended-blend-solid, extended-blend-solid-alpha.
Bug pointed out by Peter Frentrup <peter_frentrup@gmx.de> in
http://lists.cairographics.org/archives/cairo/2011-April/021908.html
-rw-r--r-- | src/cairo-win32-surface.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/cairo-win32-surface.c b/src/cairo-win32-surface.c index 4a36226b..1be21924 100644 --- a/src/cairo-win32-surface.c +++ b/src/cairo-win32-surface.c @@ -1402,10 +1402,28 @@ categorize_solid_dest_operator (cairo_operator_t op, else return DO_UNSUPPORTED; break; - } - ASSERT_NOT_REACHED; - return DO_UNSUPPORTED; + case CAIRO_OPERATOR_MULTIPLY: + case CAIRO_OPERATOR_SCREEN: + case CAIRO_OPERATOR_OVERLAY: + case CAIRO_OPERATOR_DARKEN: + case CAIRO_OPERATOR_LIGHTEN: + case CAIRO_OPERATOR_COLOR_DODGE: + case CAIRO_OPERATOR_COLOR_BURN: + case CAIRO_OPERATOR_HARD_LIGHT: + case CAIRO_OPERATOR_SOFT_LIGHT: + case CAIRO_OPERATOR_DIFFERENCE: + case CAIRO_OPERATOR_EXCLUSION: + case CAIRO_OPERATOR_HSL_HUE: + case CAIRO_OPERATOR_HSL_SATURATION: + case CAIRO_OPERATOR_HSL_COLOR: + case CAIRO_OPERATOR_HSL_LUMINOSITY: + return DO_UNSUPPORTED; + + default: + ASSERT_NOT_REACHED; + return DO_UNSUPPORTED; + } } static cairo_int_status_t |