summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrea Canciani <ranma42@gmail.com>2011-06-24 16:23:28 +0200
committerAndrea Canciani <ranma42@gmail.com>2011-06-25 10:19:36 +0200
commita468489270faabacbf89febc250c2d393fda1a13 (patch)
tree944e9612d8955afc7d52f070d1570d94021790f4
parentacfc00168571928a882787d3c6622efde22172e0 (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.c24
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