From 9867b59558ccb8a9ff639aba73ed9de58d9825cc Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Fri, 3 Nov 2017 08:46:16 +0100 Subject: Set primitive filter area in feComposite and feMerge. Needed for tiling. --- src/display/nr-filter-composite.cpp | 3 +++ src/display/nr-filter-merge.cpp | 3 +++ 2 files changed, 6 insertions(+) (limited to 'src') diff --git a/src/display/nr-filter-composite.cpp b/src/display/nr-filter-composite.cpp index dc5e4278f..04f81f857 100644 --- a/src/display/nr-filter-composite.cpp +++ b/src/display/nr-filter-composite.cpp @@ -79,6 +79,9 @@ void FilterComposite::render_cairo(FilterSlot &slot) cairo_surface_t *out = ink_cairo_surface_create_output(input1, input2); set_cairo_surface_ci(out, ci_fp ); + Geom::Rect vp = filter_primitive_area( slot.get_units() ); + slot.set_primitive_area(_output, vp); // Needed for tiling + if (op == COMPOSITE_ARITHMETIC) { ink_cairo_surface_blend(input1, input2, out, ComposeArithmetic(k1, k2, k3, k4)); } else { diff --git a/src/display/nr-filter-merge.cpp b/src/display/nr-filter-merge.cpp index 2b9a24f25..fc2ce408f 100644 --- a/src/display/nr-filter-merge.cpp +++ b/src/display/nr-filter-merge.cpp @@ -38,6 +38,9 @@ void FilterMerge::render_cairo(FilterSlot &slot) ci_fp = (SPColorInterpolation)_style->color_interpolation_filters.computed; } + Geom::Rect vp = filter_primitive_area( slot.get_units() ); + slot.set_primitive_area(_output, vp); // Needed for tiling + // output is RGBA if at least one input is RGBA bool rgba32 = false; cairo_surface_t *out = NULL; -- cgit v1.2.3