diff --git a/demo/viewer/mapwidget.cpp b/demo/viewer/mapwidget.cpp index b190128f6..6117fb366 100644 --- a/demo/viewer/mapwidget.cpp +++ b/demo/viewer/mapwidget.cpp @@ -534,7 +534,7 @@ void render_grid(mapnik::Map const& map, double scaling_factor, QPixmap & pix) void render_cairo(mapnik::Map const& map, double scaling_factor, QPixmap & pix) { // FIXME -#if 0 //def HAVE_CAIRO +#ifdef HAVE_CAIRO mapnik::cairo_surface_ptr image_surface(cairo_image_surface_create(CAIRO_FORMAT_ARGB32,map.width(),map.height()), mapnik::cairo_surface_closer()); mapnik::cairo_ptr cairo = mapnik::create_context(image_surface); diff --git a/src/cairo/process_debug_symbolizer.cpp b/src/cairo/process_debug_symbolizer.cpp index b5a28d03a..137e16f95 100644 --- a/src/cairo/process_debug_symbolizer.cpp +++ b/src/cairo/process_debug_symbolizer.cpp @@ -80,6 +80,8 @@ void cairo_renderer::process(debug_symbolizer const& sym, } else if (mode == DEBUG_SYM_MODE_VERTEX) { +// FIXME +#if 0 for (auto const& geom : feature.paths()) { double x; @@ -100,6 +102,7 @@ void cairo_renderer::process(debug_symbolizer const& sym, context_.stroke(); } } +#endif } } diff --git a/src/cairo/process_line_pattern_symbolizer.cpp b/src/cairo/process_line_pattern_symbolizer.cpp index 46c72cd77..5a55aa5f5 100644 --- a/src/cairo/process_line_pattern_symbolizer.cpp +++ b/src/cairo/process_line_pattern_symbolizer.cpp @@ -118,6 +118,8 @@ void cairo_renderer::process(line_pattern_symbolizer const& sym, if (simplify_tolerance > 0.0) converter.set(); // optional simplify converter if (smooth > 0.0) converter.set(); // optional smooth converter +// FIXME +#if 0 for (auto const& geom : feature.paths()) { @@ -127,6 +129,7 @@ void cairo_renderer::process(line_pattern_symbolizer const& sym, converter.apply(va); } } +#endif } template void cairo_renderer::process(line_pattern_symbolizer const&, diff --git a/src/cairo/process_line_symbolizer.cpp b/src/cairo/process_line_symbolizer.cpp index 109bbbeda..435488be2 100644 --- a/src/cairo/process_line_symbolizer.cpp +++ b/src/cairo/process_line_symbolizer.cpp @@ -95,14 +95,23 @@ void cairo_renderer::process(line_symbolizer const& sym, if (simplify_tolerance > 0.0) converter.set(); // optional simplify converter if (smooth > 0.0) converter.set(); // optional smooth converter - for (geometry_type const& geom : feature.paths()) + mapnik::new_geometry::geometry const& geometry = feature.get_geometry(); + if (geometry.is()) { - if (geom.size() > 1) + auto const& line = mapnik::util::get(geometry); + mapnik::new_geometry::line_string_vertex_adapter va(line); + converter.apply(va); + } + else if (geometry.is()) + { + auto const& multi_line = mapnik::util::get(geometry); + for (auto const& line : multi_line) { - vertex_adapter va(geom); + mapnik::new_geometry::line_string_vertex_adapter va(line); converter.apply(va); } } + // stroke context_.set_fill_rule(CAIRO_FILL_RULE_WINDING); context_.stroke(); diff --git a/src/cairo/process_polygon_pattern_symbolizer.cpp b/src/cairo/process_polygon_pattern_symbolizer.cpp index b20d6bd99..33b5ed009 100644 --- a/src/cairo/process_polygon_pattern_symbolizer.cpp +++ b/src/cairo/process_polygon_pattern_symbolizer.cpp @@ -66,7 +66,8 @@ void cairo_renderer::process(polygon_pattern_symbolizer const& sym, { double x0 = 0.0; double y0 = 0.0; - +// FIXME +#if 0 if (feature.num_geometries() > 0) { using clipped_geometry_type = agg::conv_clip_polygon; @@ -80,6 +81,7 @@ void cairo_renderer::process(polygon_pattern_symbolizer const& sym, } offset_x = std::abs(clip_box.width() - x0); offset_y = std::abs(clip_box.height() - y0); +#endif } if ((*marker)->is_bitmap()) @@ -112,6 +114,8 @@ void cairo_renderer::process(polygon_pattern_symbolizer const& sym, if (simplify_tolerance > 0.0) converter.set(); // optional simplify converter if (smooth > 0.0) converter.set(); // optional smooth converter +// FIXME +#if 0 for ( geometry_type const& geom : feature.paths()) { if (geom.size() > 2) @@ -120,6 +124,7 @@ void cairo_renderer::process(polygon_pattern_symbolizer const& sym, converter.apply(va); } } +#endif // fill polygon context_.set_fill_rule(CAIRO_FILL_RULE_EVEN_ODD); context_.fill();