From 83bde5fef275b4f45e30e8a5b5d0375e1c53e875 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Wed, 22 Jan 2014 22:43:34 -0800 Subject: [PATCH 1/8] use premultiplied renderer for points/shields - closes #2117 --- src/agg/agg_renderer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/agg/agg_renderer.cpp b/src/agg/agg_renderer.cpp index 991d68206..f3822d307 100644 --- a/src/agg/agg_renderer.cpp +++ b/src/agg/agg_renderer.cpp @@ -321,7 +321,7 @@ void agg_renderer::render_marker(pixel_position const& pos, { typedef agg::rgba8 color_type; typedef agg::order_rgba order_type; - typedef agg::comp_op_adaptor_rgba blender_type; // comp blender + typedef agg::comp_op_adaptor_rgba_pre blender_type; // comp blender typedef agg::pixfmt_custom_blend_rgba pixfmt_comp_type; typedef agg::renderer_base renderer_base; typedef agg::renderer_scanline_aa_solid renderer_type; From 499d48515196e50783a45beb47fdca4ac78850d1 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Thu, 23 Jan 2014 00:13:39 -0800 Subject: [PATCH 2/8] another try to fix linking order on linux --- src/build.py | 52 +++++++++++++++++++++++++++++++++++----------------- 1 file changed, 35 insertions(+), 17 deletions(-) diff --git a/src/build.py b/src/build.py index fc665f57c..795a2a955 100644 --- a/src/build.py +++ b/src/build.py @@ -52,22 +52,35 @@ libmapnik_defines = copy(lib_env['CPPDEFINES']) ABI_VERSION = env['ABI_VERSION'] +enabled_imaging_libraries = [] filesystem = 'boost_filesystem%s' % env['BOOST_APPEND'] regex = 'boost_regex%s' % env['BOOST_APPEND'] system = 'boost_system%s' % env['BOOST_APPEND'] +thread = 'boost_thread%s' % env['BOOST_APPEND'] # clear out and re-set libs for this env -lib_env['LIBS'] = ['freetype',env['ICU_LIB_NAME'],filesystem,system,regex,'harfbuzz', 'harfbuzz-icu'] +# note: order matters on linux: see lorder | tsort +lib_env['LIBS'] = [filesystem, + regex, + thread + ] -if '-DMAPNIK_USE_PROJ4' in env['CPPDEFINES']: - lib_env['LIBS'].append('proj') +if env['HAS_CAIRO']: + lib_env.Append(LIBS=env['CAIRO_ALL_LIBS']) -enabled_imaging_libraries = [] +# maybe bz2 +if len(env['EXTRA_FREETYPE_LIBS']): + lib_env['LIBS'].extend(copy(env['EXTRA_FREETYPE_LIBS'])) + +lib_env['LIBS'].append('harfbuzz-icu') if '-DHAVE_PNG' in env['CPPDEFINES']: lib_env['LIBS'].append('png') enabled_imaging_libraries.append('png_reader.cpp') +if '-DMAPNIK_USE_PROJ4' in env['CPPDEFINES']: + lib_env['LIBS'].append('proj') + if '-DHAVE_TIFF' in env['CPPDEFINES']: lib_env['LIBS'].append('tiff') enabled_imaging_libraries.append('tiff_reader.cpp') @@ -76,25 +89,31 @@ if '-DHAVE_WEBP' in env['CPPDEFINES']: lib_env['LIBS'].append('webp') enabled_imaging_libraries.append('webp_reader.cpp') -if '-DHAVE_JPEG' in env['CPPDEFINES']: - lib_env['LIBS'].append('jpeg') - enabled_imaging_libraries.append('jpeg_reader.cpp') - -if len(env['EXTRA_FREETYPE_LIBS']): - lib_env['LIBS'].extend(copy(env['EXTRA_FREETYPE_LIBS'])) - lib_env['LIBS'].append('xml2') -lib_env['LIBS'].append('z') if '-DBOOST_REGEX_HAS_ICU' in env['CPPDEFINES']: lib_env['LIBS'].append('icui18n') -if env['RUNTIME_LINK'] == 'static': - if 'icuuc' in env['ICU_LIB_NAME']: - lib_env['LIBS'].append('icudata') -else: +lib_env['LIBS'].append(system) + +lib_env['LIBS'].append('harfbuzz') + +if '-DHAVE_JPEG' in env['CPPDEFINES']: + lib_env['LIBS'].append('jpeg') + enabled_imaging_libraries.append('jpeg_reader.cpp') + +lib_env['LIBS'].append(env['ICU_LIB_NAME']) + +lib_env['LIBS'].append('freetype') + +if env['RUNTIME_LINK'] == 'static' and 'icuuc' in env['ICU_LIB_NAME']: + lib_env['LIBS'].append('icudata') + +if env['RUNTIME_LINK'] != 'static': lib_env['LIBS'].insert(0, 'agg') +lib_env['LIBS'].append('z') + if env['PLATFORM'] == 'Darwin': mapnik_libname = env.subst(env['MAPNIK_LIB_NAME']) if env['FULL_LIB_PATH']: @@ -266,7 +285,6 @@ if env['PLUGIN_LINKING'] == 'static': if env['HAS_CAIRO']: lib_env.AppendUnique(LIBPATH=env['CAIRO_LIBPATHS']) - lib_env.Append(LIBS=env['CAIRO_ALL_LIBS']) lib_env.Append(CPPDEFINES = '-DHAVE_CAIRO') libmapnik_defines.append('-DHAVE_CAIRO') lib_env.AppendUnique(CPPPATH=copy(env['CAIRO_CPPPATHS'])) From cd4c645032211dd9d338182c430936e926a54672 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Thu, 23 Jan 2014 00:42:05 -0800 Subject: [PATCH 3/8] boost threads are no longer needed --- src/build.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/build.py b/src/build.py index 795a2a955..ace76c813 100644 --- a/src/build.py +++ b/src/build.py @@ -56,14 +56,10 @@ enabled_imaging_libraries = [] filesystem = 'boost_filesystem%s' % env['BOOST_APPEND'] regex = 'boost_regex%s' % env['BOOST_APPEND'] system = 'boost_system%s' % env['BOOST_APPEND'] -thread = 'boost_thread%s' % env['BOOST_APPEND'] # clear out and re-set libs for this env # note: order matters on linux: see lorder | tsort -lib_env['LIBS'] = [filesystem, - regex, - thread - ] +lib_env['LIBS'] = [filesystem,regex] if env['HAS_CAIRO']: lib_env.Append(LIBS=env['CAIRO_ALL_LIBS']) From 9944ca65eeb361c977446557a311bdda649c8cc3 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Thu, 23 Jan 2014 13:06:07 -0800 Subject: [PATCH 4/8] fix -pthread issue on linux - closes #2132 --- src/build.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/build.py b/src/build.py index ace76c813..a164f0576 100644 --- a/src/build.py +++ b/src/build.py @@ -102,8 +102,11 @@ lib_env['LIBS'].append(env['ICU_LIB_NAME']) lib_env['LIBS'].append('freetype') -if env['RUNTIME_LINK'] == 'static' and 'icuuc' in env['ICU_LIB_NAME']: - lib_env['LIBS'].append('icudata') +if env['RUNTIME_LINK'] == 'static': + if env['PLATFORM'] == 'Linux': + lib_env['LINKFLAGS'].append('-pthread') + if 'icuuc' in env['ICU_LIB_NAME']: + lib_env['LIBS'].append('icudata') if env['RUNTIME_LINK'] != 'static': lib_env['LIBS'].insert(0, 'agg') From 8181aa9dec25855ec8a29cd6651d9751f59a3b8e Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Sun, 26 Jan 2014 13:41:30 -0800 Subject: [PATCH 5/8] addLayer -> add_layer (change also coming in expr-v2 branch) --- demo/c++/rundemo.cpp | 12 ++++++------ include/mapnik/map.hpp | 8 ++++---- src/load_map.cpp | 2 +- src/map.cpp | 8 ++++---- tests/cpp_tests/exceptions_test.cpp | 2 +- tests/cpp_tests/fontset_runtime_test.cpp | 2 +- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/demo/c++/rundemo.cpp b/demo/c++/rundemo.cpp index 5ecb72f23..6539765fe 100644 --- a/demo/c++/rundemo.cpp +++ b/demo/c++/rundemo.cpp @@ -191,7 +191,7 @@ int main ( int argc , char** argv) lyr.set_datasource(datasource_cache::instance().create(p)); lyr.add_style("provinces"); lyr.set_srs(srs_lcc); - m.addLayer(lyr); + m.add_layer(lyr); } // Drainage @@ -203,7 +203,7 @@ int main ( int argc , char** argv) lyr.set_datasource(datasource_cache::instance().create(p)); lyr.set_srs(srs_lcc); lyr.add_style("drainage"); - m.addLayer(lyr); + m.add_layer(lyr); } { @@ -214,7 +214,7 @@ int main ( int argc , char** argv) lyr.set_datasource(datasource_cache::instance().create(p)); lyr.set_srs(srs_lcc); lyr.add_style("drainage"); - m.addLayer(lyr); + m.add_layer(lyr); } // Provincial boundaries @@ -226,7 +226,7 @@ int main ( int argc , char** argv) lyr.set_srs(srs_lcc); lyr.set_datasource(datasource_cache::instance().create(p)); lyr.add_style("provlines"); - m.addLayer(lyr); + m.add_layer(lyr); } // Roads @@ -243,7 +243,7 @@ int main ( int argc , char** argv) lyr.add_style("highway-border"); lyr.add_style("highway-fill"); - m.addLayer(lyr); + m.add_layer(lyr); } // popplaces { @@ -255,7 +255,7 @@ int main ( int argc , char** argv) lyr.set_srs(srs_lcc); lyr.set_datasource(datasource_cache::instance().create(p)); lyr.add_style("popplaces"); - m.addLayer(lyr); + m.add_layer(lyr); } m.zoom_to_box(box2d(-8024477.28459,5445190.38849,-7381388.20071,5662941.44855)); diff --git a/include/mapnik/map.hpp b/include/mapnik/map.hpp index e71946604..cd80013aa 100644 --- a/include/mapnik/map.hpp +++ b/include/mapnik/map.hpp @@ -205,24 +205,24 @@ public: /*! \brief Add a layer to the map. * @param l The layer to add. */ - void addLayer(layer const& l); + void add_layer(layer const& l); /*! \brief Get a layer. * @param index layer number. * @return Constant layer. */ - layer const& getLayer(size_t index) const; + layer const& get_layer(size_t index) const; /*! \brief Get a layer. * @param index layer number. * @return Non-constant layer. */ - layer& getLayer(size_t index); + layer& get_layer(size_t index); /*! \brief Remove a layer. * @param index layer number. */ - void removeLayer(size_t index); + void remove_layer(size_t index); /*! \brief Get all layers. * @return Constant layers. diff --git a/src/load_map.cpp b/src/load_map.cpp index fb168923f..bca484fb4 100644 --- a/src/load_map.cpp +++ b/src/load_map.cpp @@ -745,7 +745,7 @@ void map_parser::parse_layer(Map & map, xml_node const& node) } } } - map.addLayer(lyr); + map.add_layer(lyr); } catch (config_error const& ex) { diff --git a/src/map.cpp b/src/map.cpp index 64129d227..8d356718f 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -204,12 +204,12 @@ size_t Map::layer_count() const return layers_.size(); } -void Map::addLayer(layer const& l) +void Map::add_layer(layer const& l) { layers_.push_back(l); } -void Map::removeLayer(size_t index) +void Map::remove_layer(size_t index) { layers_.erase(layers_.begin()+index); } @@ -220,12 +220,12 @@ void Map::remove_all() styles_.clear(); } -layer const& Map::getLayer(size_t index) const +layer const& Map::get_layer(size_t index) const { return layers_[index]; } -layer& Map::getLayer(size_t index) +layer& Map::get_layer(size_t index) { return layers_[index]; } diff --git a/tests/cpp_tests/exceptions_test.cpp b/tests/cpp_tests/exceptions_test.cpp index abe6a47e3..bdfebfccf 100644 --- a/tests/cpp_tests/exceptions_test.cpp +++ b/tests/cpp_tests/exceptions_test.cpp @@ -62,7 +62,7 @@ int main(int argc, char** argv) l.set_datasource(ds); l.add_style("style"); mapnik::Map m = map; - m.addLayer(l); + m.add_layer(l); m.zoom_all(); mapnik::image_32 im(m.width(),m.height()); mapnik::agg_renderer ren(m,im); diff --git a/tests/cpp_tests/fontset_runtime_test.cpp b/tests/cpp_tests/fontset_runtime_test.cpp index e99e46bc3..2f6aa4125 100644 --- a/tests/cpp_tests/fontset_runtime_test.cpp +++ b/tests/cpp_tests/fontset_runtime_test.cpp @@ -56,7 +56,7 @@ int main(int argc, char** argv) mapnik::layer lyr("layer"); lyr.set_datasource(ds); lyr.add_style("style"); - m.addLayer(lyr); + m.add_layer(lyr); mapnik::feature_type_style the_style; mapnik::rule the_rule; mapnik::text_symbolizer text_sym(mapnik::parse_expression("[name]"),10,mapnik::color(0,0,0)); From 29e7b19007e4ca9fee7c9a9ee388560eeb196b7a Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Sun, 26 Jan 2014 13:44:30 -0800 Subject: [PATCH 6/8] boost::array -> std::array --- include/mapnik/vertex_converters.hpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/include/mapnik/vertex_converters.hpp b/include/mapnik/vertex_converters.hpp index fa9a5ea42..6e35ed130 100644 --- a/include/mapnik/vertex_converters.hpp +++ b/include/mapnik/vertex_converters.hpp @@ -38,7 +38,6 @@ // fusion #include #include -#include // mapnik #include @@ -320,7 +319,7 @@ struct dispatcher dispatch(geom, boost::false_type()); } - boost::array::value> vec_; + std::array::value> vec_; args_type args_; }; } From 0fc7b8bc01f9516d7f62efd41ff305131d933778 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Sun, 26 Jan 2014 13:45:29 -0800 Subject: [PATCH 7/8] include header for std::array --- include/mapnik/vertex_converters.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/include/mapnik/vertex_converters.hpp b/include/mapnik/vertex_converters.hpp index 6e35ed130..be78e519e 100644 --- a/include/mapnik/vertex_converters.hpp +++ b/include/mapnik/vertex_converters.hpp @@ -58,6 +58,7 @@ // stl #include +#include namespace mapnik { From 7b58b26df1c7e275b84fc93053d233eecfe277f9 Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Sun, 26 Jan 2014 13:51:16 -0800 Subject: [PATCH 8/8] catch another addLayer -> add_layer case --- .../cpp_tests/svg_renderer_tests/path_element_test.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/cpp_tests/svg_renderer_tests/path_element_test.cpp b/tests/cpp_tests/svg_renderer_tests/path_element_test.cpp index 9a9ab2361..9b99b981a 100644 --- a/tests/cpp_tests/svg_renderer_tests/path_element_test.cpp +++ b/tests/cpp_tests/svg_renderer_tests/path_element_test.cpp @@ -135,7 +135,7 @@ void prepare_map(Map& m) layer lyr("Provinces"); lyr.set_datasource(datasource_cache::instance().create(p)); lyr.add_style("provinces"); - m.addLayer(lyr); + m.add_layer(lyr); } // Drainage @@ -146,7 +146,7 @@ void prepare_map(Map& m) layer lyr("Quebec Hydrography"); lyr.set_datasource(datasource_cache::instance().create(p)); lyr.add_style("drainage"); - m.addLayer(lyr); + m.add_layer(lyr); } { @@ -157,7 +157,7 @@ void prepare_map(Map& m) layer lyr("Ontario Hydrography"); lyr.set_datasource(datasource_cache::instance().create(p)); lyr.add_style("drainage"); - m.addLayer(lyr); + m.add_layer(lyr); } // Provincial boundaries @@ -168,7 +168,7 @@ void prepare_map(Map& m) layer lyr("Provincial borders"); lyr.set_datasource(datasource_cache::instance().create(p)); lyr.add_style("provlines"); - m.addLayer(lyr); + m.add_layer(lyr); } // Roads @@ -184,7 +184,7 @@ void prepare_map(Map& m) lyr.add_style("highway-border"); lyr.add_style("highway-fill"); - m.addLayer(lyr); + m.add_layer(lyr); } }