From a468489270faabacbf89febc250c2d393fda1a13 Mon Sep 17 00:00:00 2001 From: Andrea Canciani Date: Fri, 24 Jun 2011 16:23:28 +0200 Subject: [PATCH] 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 in http://lists.cairographics.org/archives/cairo/2011-April/021908.html --- src/cairo-win32-surface.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/cairo-win32-surface.c b/src/cairo-win32-surface.c index 4a36226bf..1be219249 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