From fb12fc8b68edc14dc955ca3ee706d7fc984e41bd Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Mon, 4 Aug 2014 16:20:12 -0700 Subject: [PATCH] default to global alignment for polygon patterns - refs #2325 --- .../process_polygon_pattern_symbolizer.cpp | 2 +- src/cairo/cairo_renderer.cpp | 2 +- ...ate-patterns-200-200-1.0-agg-reference.png | Bin 8597 -> 8582 bytes ...ate-patterns-200-200-2.0-agg-reference.png | Bin 8816 -> 8779 bytes 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/agg/process_polygon_pattern_symbolizer.cpp b/src/agg/process_polygon_pattern_symbolizer.cpp index cc92e74d4..bc0ceb89c 100644 --- a/src/agg/process_polygon_pattern_symbolizer.cpp +++ b/src/agg/process_polygon_pattern_symbolizer.cpp @@ -128,7 +128,7 @@ void agg_renderer::process(polygon_pattern_symbolizer const& sym, agg::pixfmt_rgba32_pre pixf_pattern(pattern_rbuf); img_source_type img_src(pixf_pattern); - pattern_alignment_enum alignment = get(sym, keys::alignment, feature, common_.vars_, LOCAL_ALIGNMENT); + pattern_alignment_enum alignment = get(sym, keys::alignment, feature, common_.vars_, GLOBAL_ALIGNMENT); unsigned offset_x=0; unsigned offset_y=0; diff --git a/src/cairo/cairo_renderer.cpp b/src/cairo/cairo_renderer.cpp index a441f0b5d..5cbfcc88e 100644 --- a/src/cairo/cairo_renderer.cpp +++ b/src/cairo/cairo_renderer.cpp @@ -735,7 +735,7 @@ void cairo_renderer_base::process(polygon_pattern_symbolizer const& sym, } - //pattern_alignment_e align = sym.get_alignment(); + pattern_alignment_enum alignment = get(sym, keys::alignment, feature, common_.vars_, GLOBAL_ALIGNMENT); //unsigned offset_x=0; //unsigned offset_y=0; diff --git a/tests/visual_tests/images/geometry-transform-translate-patterns-200-200-1.0-agg-reference.png b/tests/visual_tests/images/geometry-transform-translate-patterns-200-200-1.0-agg-reference.png index cdd2814edf156fe59e60357fbbc5dc66c7c41019..fa06b37f2d5480f30c272f7fc885a61397712a2c 100644 GIT binary patch literal 8582 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 U!qxWk|B4qXikb?w?<}GJ2V_RwH~;_u diff --git a/tests/visual_tests/images/geometry-transform-translate-patterns-200-200-2.0-agg-reference.png b/tests/visual_tests/images/geometry-transform-translate-patterns-200-200-2.0-agg-reference.png index d752e7c9d5b6a16c6c03b8298d1f86616fe5648b..c584eb6fadc544bd0effca33d17e916d71b35a59 100644 GIT binary patch delta 8755 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