diff --git a/src/agg/agg_renderer.cpp b/src/agg/agg_renderer.cpp index 8bfd79c4a..0c3367496 100644 --- a/src/agg/agg_renderer.cpp +++ b/src/agg/agg_renderer.cpp @@ -455,7 +455,7 @@ void agg_renderer::debug_draw_box(R& buf, box2d const& box, // render the outline ras_ptr->reset(); ras_ptr->add_path(sbox); - ren.color(agg::rgba8(0x33, 0x33, 0xff, 0xcc)); // blue is fine + ren.color(agg::rgba8_pre(0x33, 0x33, 0xff, 0xcc)); // blue is fine agg::render_scanlines(*ras_ptr, sl_line, ren); } diff --git a/src/agg/process_line_pattern_symbolizer.cpp b/src/agg/process_line_pattern_symbolizer.cpp index 80c29f421..fd18d4242 100644 --- a/src/agg/process_line_pattern_symbolizer.cpp +++ b/src/agg/process_line_pattern_symbolizer.cpp @@ -60,18 +60,18 @@ public: pattern_source(mapnik::image_data_32 const& pattern) : pattern_(pattern) {} - unsigned int width() const + inline unsigned int width() const { return pattern_.width(); } - unsigned int height() const + inline unsigned int height() const { return pattern_.height(); } - agg::rgba8 pixel(int x, int y) const + inline agg::rgba8 pixel(int x, int y) const { unsigned c = pattern_(x,y); - return agg::rgba8(c & 0xff, + return agg::rgba8_pre(c & 0xff, (c >> 8) & 0xff, (c >> 16) & 0xff, (c >> 24) & 0xff); @@ -107,12 +107,10 @@ void agg_renderer::process(line_pattern_symbolizer const& sym, if (!(*mark)->is_bitmap()) { MAPNIK_LOG_DEBUG(agg_renderer) << "agg_renderer: Only images (not '" << filename << "') are supported in the line_pattern_symbolizer"; - return; } boost::optional pat = (*mark)->get_bitmap_data(); - if (!pat) return; agg::rendering_buffer buf(current_buffer_->raw_data(),current_buffer_->width(),current_buffer_->height(), current_buffer_->width() * 4); diff --git a/tests/visual_tests/grids/line-pattern-symbolizer-opacity-512-512-1.0-grid-reference.json b/tests/visual_tests/grids/line-pattern-symbolizer-opacity-512-512-1.0-grid-reference.json new file mode 100644 index 000000000..1efa6d583 --- /dev/null +++ b/tests/visual_tests/grids/line-pattern-symbolizer-opacity-512-512-1.0-grid-reference.json @@ -0,0 +1,144 @@ +{ + "keys": [ + "", + "4", + "3", + "2", + "1", + "8", + "7", + "6", + "5" + ], + "data": {}, + "grid": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " !!!!!!!! ##### ##### $$$$$$$$$$ %%%%%%%%% ", + " !! !! ### ## $$ $$ %% %% ", + " !! ! # # $$ $$ %% %% ", + " !! !! # # $$ $ % % ", + " ! !! # # $ $ % % ", + " ! ! # # $ $ % %", + "! ! # $ $ % ", + "! ! # $ $ % ", + "&&&&&&&&&&&&&&&&&&&&&&&&&& ''''''''''''''''''''''# (((((((((((((((((((((((((( )))))))))))))))))))))))))", + "! ! $ $ % ", + "! ! # # $ $ % %", + " ! ! ## # $ $ %% %", + " !! ! # # $ $ % % ", + " !! !! ## ## $ $ %% % ", + " ! ! ## # $$ $$ %% %% ", + " !!! !!! ### ### $$$ $$ %%% %% ", + " !!!!!!!!!! ##### $$$$$$$$ %%%%%%%% ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ] +} \ No newline at end of file diff --git a/tests/visual_tests/images/line-pattern-symbolizer-opacity-512-512-1.0-agg-reference.png b/tests/visual_tests/images/line-pattern-symbolizer-opacity-512-512-1.0-agg-reference.png new file mode 100644 index 000000000..8a8f5d50d Binary files /dev/null and b/tests/visual_tests/images/line-pattern-symbolizer-opacity-512-512-1.0-agg-reference.png differ diff --git a/tests/visual_tests/images/line-pattern-symbolizer-opacity-512-512-2.0-agg-reference.png b/tests/visual_tests/images/line-pattern-symbolizer-opacity-512-512-2.0-agg-reference.png new file mode 100644 index 000000000..8a8f5d50d Binary files /dev/null and b/tests/visual_tests/images/line-pattern-symbolizer-opacity-512-512-2.0-agg-reference.png differ diff --git a/tests/visual_tests/styles/line-pattern-symbolizer-opacity.xml b/tests/visual_tests/styles/line-pattern-symbolizer-opacity.xml new file mode 100644 index 000000000..82a92fb2a --- /dev/null +++ b/tests/visual_tests/styles/line-pattern-symbolizer-opacity.xml @@ -0,0 +1,21 @@ + + + My Style + + csv + ../data/line-offset.csv + + + + + + diff --git a/tests/visual_tests/test.py b/tests/visual_tests/test.py index 38615ea48..d8676c416 100755 --- a/tests/visual_tests/test.py +++ b/tests/visual_tests/test.py @@ -172,6 +172,7 @@ files = { 'marker-path-expression':{}, 'map-background-image-compositing':{'sizes':[(512,512)]}, 'building-symbolizer-opacity':{'sizes':[(512,512)]}, + 'line-pattern-symbolizer-opacity':{'sizes':[(512,512)]} } class Reporting: