From 658c0637c79a42f52fe50c227d1055a96e6ad190 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Tue, 14 Aug 2018 14:32:07 -0700 Subject: Tons o' code generation --- cmake/core-files.cmake | 3 + include/mbgl/style/position.hpp | 2 +- include/mbgl/util/type_list.hpp | 29 -- scripts/generate-style-code.js | 68 +++- src/mbgl/layout/symbol_layout.cpp | 115 +++--- src/mbgl/layout/symbol_layout.hpp | 6 +- src/mbgl/programs/background_program.hpp | 4 +- src/mbgl/programs/clipping_mask_program.hpp | 2 +- src/mbgl/programs/collision_box_program.hpp | 26 +- src/mbgl/programs/debug_program.hpp | 2 +- src/mbgl/programs/extrusion_texture_program.hpp | 2 +- src/mbgl/programs/fill_extrusion_program.cpp | 8 +- src/mbgl/programs/heatmap_texture_program.hpp | 2 +- src/mbgl/programs/hillshade_prepare_program.hpp | 2 +- src/mbgl/programs/hillshade_program.hpp | 2 +- src/mbgl/programs/line_program.cpp | 16 +- src/mbgl/programs/program.hpp | 13 +- src/mbgl/programs/raster_program.hpp | 2 +- src/mbgl/renderer/buckets/circle_bucket.cpp | 24 +- src/mbgl/renderer/buckets/fill_bucket.cpp | 9 +- .../renderer/buckets/fill_extrusion_bucket.cpp | 10 +- src/mbgl/renderer/buckets/heatmap_bucket.cpp | 7 +- src/mbgl/renderer/buckets/line_bucket.cpp | 52 ++- src/mbgl/renderer/buckets/symbol_bucket.cpp | 10 +- .../renderer/layers/render_background_layer.cpp | 24 +- src/mbgl/renderer/layers/render_circle_layer.cpp | 34 +- .../layers/render_fill_extrusion_layer.cpp | 34 +- src/mbgl/renderer/layers/render_fill_layer.cpp | 42 +- src/mbgl/renderer/layers/render_heatmap_layer.cpp | 16 +- .../renderer/layers/render_hillshade_layer.cpp | 33 +- src/mbgl/renderer/layers/render_line_layer.cpp | 47 +-- src/mbgl/renderer/layers/render_line_layer.hpp | 7 +- src/mbgl/renderer/layers/render_raster_layer.cpp | 22 +- src/mbgl/renderer/layers/render_symbol_layer.cpp | 94 ++--- src/mbgl/renderer/layers/render_symbol_layer.hpp | 23 -- src/mbgl/renderer/paint_property_binder.hpp | 96 ----- src/mbgl/renderer/render_light.hpp | 2 +- src/mbgl/renderer/render_tile.cpp | 4 +- src/mbgl/renderer/renderer_impl.cpp | 12 +- src/mbgl/renderer/sources/render_image_source.cpp | 8 +- src/mbgl/style/layers/background_layer.cpp | 24 +- .../style/layers/background_layer_properties.cpp | 42 ++ .../style/layers/background_layer_properties.hpp | 38 +- src/mbgl/style/layers/circle_layer.cpp | 88 ++--- src/mbgl/style/layers/circle_layer_properties.cpp | 210 ++++++++++ src/mbgl/style/layers/circle_layer_properties.hpp | 123 +++++- src/mbgl/style/layers/fill_extrusion_layer.cpp | 56 +-- .../layers/fill_extrusion_layer_properties.cpp | 134 +++++++ .../layers/fill_extrusion_layer_properties.hpp | 91 ++++- src/mbgl/style/layers/fill_layer.cpp | 56 +-- src/mbgl/style/layers/fill_layer_properties.cpp | 134 +++++++ src/mbgl/style/layers/fill_layer_properties.hpp | 91 ++++- src/mbgl/style/layers/heatmap_layer.cpp | 40 +- src/mbgl/style/layers/heatmap_layer_properties.cpp | 110 ++++++ src/mbgl/style/layers/heatmap_layer_properties.hpp | 79 +++- src/mbgl/style/layers/hillshade_layer.cpp | 48 +-- .../style/layers/hillshade_layer_properties.cpp | 57 +++ .../style/layers/hillshade_layer_properties.hpp | 50 ++- src/mbgl/style/layers/layer.cpp.ejs | 18 +- src/mbgl/style/layers/layer_properties.cpp.ejs | 202 ++++++++++ src/mbgl/style/layers/layer_properties.hpp.ejs | 158 +++++++- src/mbgl/style/layers/line_layer.cpp | 103 ++--- src/mbgl/style/layers/line_layer_properties.cpp | 218 +++++++++++ src/mbgl/style/layers/line_layer_properties.hpp | 156 +++++++- src/mbgl/style/layers/raster_layer.cpp | 64 ++-- src/mbgl/style/layers/raster_layer_properties.cpp | 67 ++++ src/mbgl/style/layers/raster_layer_properties.hpp | 58 ++- src/mbgl/style/layers/symbol_layer.cpp | 295 +++++++------- src/mbgl/style/layers/symbol_layer_properties.cpp | 426 +++++++++++++++++++++ src/mbgl/style/layers/symbol_layer_properties.hpp | 377 +++++++++++++++--- src/mbgl/style/layout_property.hpp | 6 - src/mbgl/style/light.cpp | 32 +- src/mbgl/style/light.cpp.ejs | 8 +- src/mbgl/style/light_impl.hpp | 46 +-- src/mbgl/style/light_properties.cpp | 45 +++ src/mbgl/style/light_properties.cpp.ejs | 44 +++ src/mbgl/style/light_properties.hpp | 64 ++++ src/mbgl/style/light_properties.hpp.ejs | 54 +++ src/mbgl/style/light_property.hpp | 19 + src/mbgl/style/paint_property.hpp | 12 - src/mbgl/style/properties.hpp | 148 +------ src/mbgl/text/placement.cpp | 32 +- src/mbgl/text/quads.cpp | 24 +- test/style/conversion/layer.test.cpp | 4 +- 84 files changed, 3779 insertions(+), 1286 deletions(-) create mode 100644 src/mbgl/style/light_properties.cpp create mode 100644 src/mbgl/style/light_properties.cpp.ejs create mode 100644 src/mbgl/style/light_properties.hpp create mode 100644 src/mbgl/style/light_properties.hpp.ejs create mode 100644 src/mbgl/style/light_property.hpp diff --git a/cmake/core-files.cmake b/cmake/core-files.cmake index 02335fef7a..f486c6c387 100644 --- a/cmake/core-files.cmake +++ b/cmake/core-files.cmake @@ -392,6 +392,9 @@ set(MBGL_CORE_FILES src/mbgl/style/light_impl.cpp src/mbgl/style/light_impl.hpp src/mbgl/style/light_observer.hpp + src/mbgl/style/light_properties.cpp + src/mbgl/style/light_properties.hpp + src/mbgl/style/light_property.hpp src/mbgl/style/observer.hpp src/mbgl/style/paint_property.hpp src/mbgl/style/parser.cpp diff --git a/include/mbgl/style/position.hpp b/include/mbgl/style/position.hpp index 3be8d1c55e..078e62bda8 100644 --- a/include/mbgl/style/position.hpp +++ b/include/mbgl/style/position.hpp @@ -9,7 +9,7 @@ namespace style { class Position { public: Position() = default; - Position(std::array& position_) + Position(const std::array& position_) : radial(position_[0]), azimuthal(position_[1]), polar(position_[2]) { calculateCartesian(); }; diff --git a/include/mbgl/util/type_list.hpp b/include/mbgl/util/type_list.hpp index 4a5e95c8a4..f3db277e46 100644 --- a/include/mbgl/util/type_list.hpp +++ b/include/mbgl/util/type_list.hpp @@ -8,33 +8,4 @@ namespace mbgl { template class TypeList {}; -namespace detail { - -template -struct TypeCons; - -template -struct TypeCons> { - using Type = TypeList; -}; - -template class> -struct TypeFilter; - -template