poppler/CairoOutputDev.cc | 9 +++++++++ 1 file changed, 9 insertions(+)
New commits: commit 51aefe1423a068e8c119c21a8791d265aecbeaf5 Author: Carlos Garcia Campos <[email protected]> Date: Fri Apr 9 12:50:00 2010 +0200 [cairo] Implement colorizing image masks with pattern colorspace diff --git a/poppler/CairoOutputDev.cc b/poppler/CairoOutputDev.cc index 52941d8..49fb191 100644 --- a/poppler/CairoOutputDev.cc +++ b/poppler/CairoOutputDev.cc @@ -1511,6 +1511,9 @@ void CairoOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, return; } + if (state->getFillColorSpace()->getMode() == csPattern) + cairo_push_group_with_content (cairo, CAIRO_CONTENT_ALPHA); + /* shape is 1.0 for painted areas, 0.0 for unpainted ones */ cairo_matrix_t matrix; @@ -1522,6 +1525,12 @@ void CairoOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, } else { drawImageMaskRegular(state, ref, str, width, height, invert, interpolate, inlineImg); } + + if (state->getFillColorSpace()->getMode() == csPattern) { + if (mask) + cairo_pattern_destroy (mask); + mask = cairo_pop_group (cairo); + } } void CairoOutputDev::drawImageMaskRegular(GfxState *state, Object *ref, Stream *str, _______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
