diff --git a/include/mapnik/cairo/render_polygon_pattern.hpp b/include/mapnik/cairo/render_polygon_pattern.hpp index 98bb518a3..9e6e82dda 100644 --- a/include/mapnik/cairo/render_polygon_pattern.hpp +++ b/include/mapnik/cairo/render_polygon_pattern.hpp @@ -52,10 +52,9 @@ struct cairo_renderer_process_visitor_p void operator() (marker_svg const& marker) { - mapnik::rasterizer ras; mapnik::box2d const& bbox_image = marker.get_data()->bounding_box() * image_tr_; mapnik::image_rgba8 image(bbox_image.width(), bbox_image.height()); - render_pattern(ras, marker, image_tr_, 1.0, image); + render_pattern(marker, image_tr_, 1.0, image); cairo_pattern pattern(image, opacity_); pattern.set_extend(CAIRO_EXTEND_REPEAT); pattern.set_origin(offset_x_, offset_y_); diff --git a/include/mapnik/renderer_common/render_pattern.hpp b/include/mapnik/renderer_common/render_pattern.hpp index 4ecac8a77..fe127cf62 100644 --- a/include/mapnik/renderer_common/render_pattern.hpp +++ b/include/mapnik/renderer_common/render_pattern.hpp @@ -38,8 +38,7 @@ struct rasterizer; struct marker_svg; template -void render_pattern(rasterizer & ras, - marker_svg const& marker, +void render_pattern(marker_svg const& marker, agg::trans_affine const& tr, double opacity, T & image); diff --git a/src/agg/process_line_pattern_symbolizer.cpp b/src/agg/process_line_pattern_symbolizer.cpp index 005c95744..2538b256a 100644 --- a/src/agg/process_line_pattern_symbolizer.cpp +++ b/src/agg/process_line_pattern_symbolizer.cpp @@ -199,7 +199,7 @@ struct agg_renderer_process_visitor_l if (image_transform) evaluate_transform(image_tr, feature_, common_.vars_, *image_transform, common_.scale_factor_); mapnik::box2d const& bbox_image = marker.get_data()->bounding_box() * image_tr; image_rgba8 image(bbox_image.width(), bbox_image.height()); - render_pattern(ras_, marker, image_tr, 1.0, image); + render_pattern(marker, image_tr, 1.0, image); render_by_pattern_type(image); } diff --git a/src/agg/process_polygon_pattern_symbolizer.cpp b/src/agg/process_polygon_pattern_symbolizer.cpp index 67e868c94..0e95317ec 100644 --- a/src/agg/process_polygon_pattern_symbolizer.cpp +++ b/src/agg/process_polygon_pattern_symbolizer.cpp @@ -85,7 +85,7 @@ struct agg_renderer_process_visitor_p if (image_transform) evaluate_transform(image_tr, feature_, common_.vars_, *image_transform, common_.scale_factor_); mapnik::box2d const& bbox_image = marker.get_data()->bounding_box() * image_tr; mapnik::image_rgba8 image(bbox_image.width(), bbox_image.height()); - render_pattern(*ras_ptr_, marker, image_tr, 1.0, image); + render_pattern(marker, image_tr, 1.0, image); render(image); } diff --git a/src/cairo/process_line_pattern_symbolizer.cpp b/src/cairo/process_line_pattern_symbolizer.cpp index ad7098b46..daa2d1056 100644 --- a/src/cairo/process_line_pattern_symbolizer.cpp +++ b/src/cairo/process_line_pattern_symbolizer.cpp @@ -65,13 +65,12 @@ struct prepare_pattern_visitor std::shared_ptr operator() (mapnik::marker_svg const& marker) { double opacity = get(sym_, feature_, common_.vars_); - mapnik::rasterizer ras; agg::trans_affine image_tr = agg::trans_affine_scaling(common_.scale_factor_); auto image_transform = get_optional(sym_, keys::image_transform); if (image_transform) evaluate_transform(image_tr, feature_, common_.vars_, *image_transform, common_.scale_factor_); mapnik::box2d const& bbox_image = marker.get_data()->bounding_box() * image_tr; mapnik::image_rgba8 image(bbox_image.width(), bbox_image.height()); - render_pattern(ras, marker, image_tr, 1.0, image); + render_pattern(marker, image_tr, 1.0, image); width_ = image.width(); height_ = image.height(); return std::make_shared(image, opacity); diff --git a/src/renderer_common/render_pattern.cpp b/src/renderer_common/render_pattern.cpp index 41ba3ee62..074fe6f00 100644 --- a/src/renderer_common/render_pattern.cpp +++ b/src/renderer_common/render_pattern.cpp @@ -41,8 +41,7 @@ namespace mapnik { template <> -void render_pattern(rasterizer & ras, - marker_svg const& marker, +void render_pattern(marker_svg const& marker, agg::trans_affine const& tr, double opacity, image_rgba8 & image) @@ -68,6 +67,7 @@ void render_pattern(rasterizer & ras, svg_attribute_type, renderer_solid, pixfmt> svg_renderer(svg_path, marker.get_data()->attributes()); + rasterizer ras; svg_renderer.render(ras, sl, renb, mtx, opacity, bbox); }