From c902f9098b331302aaa1baac77d1575db624a132 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Tue, 26 Apr 2016 16:39:56 -0700 Subject: [PATCH] [core] Rationalize naming for style-related code --- include/mbgl/annotation/annotation.hpp | 3 +- include/mbgl/map/map.hpp | 15 ++-- include/mbgl/storage/offline.hpp | 4 +- include/mbgl/storage/resource.hpp | 2 +- include/mbgl/style/filter.hpp | 2 + include/mbgl/style/function.hpp | 27 ++++++++ include/mbgl/style/layer.hpp | 7 +- .../layers}/background_layer.hpp | 4 ++ .../{layer => style/layers}/circle_layer.hpp | 4 ++ .../{layer => style/layers}/custom_layer.hpp | 2 + .../{layer => style/layers}/fill_layer.hpp | 4 ++ .../{layer => style/layers}/line_layer.hpp | 4 ++ .../{layer => style/layers}/raster_layer.hpp | 4 ++ .../{layer => style/layers}/symbol_layer.hpp | 4 ++ .../mbgl/style/property_value.hpp | 6 +- ..._transition.hpp => transition_options.hpp} | 6 +- include/mbgl/style/types.hpp | 41 +---------- include/mbgl/util/color.hpp | 10 +++ include/mbgl/util/font_stack.hpp | 17 +++++ platform/android/src/example_custom_layer.cpp | 4 +- platform/android/src/jni.cpp | 10 +-- platform/default/glfw_view.cpp | 4 +- platform/default/mbgl/storage/offline.cpp | 8 +-- .../default/mbgl/storage/offline_download.cpp | 30 ++++---- .../default/mbgl/storage/offline_download.hpp | 19 ++--- platform/ios/src/MGLMapView.mm | 12 ++-- platform/qt/src/qmapboxgl.cpp | 10 +-- scripts/generate-style-code.js | 40 +++++++---- src/mbgl/annotation/annotation_manager.cpp | 10 +-- src/mbgl/annotation/annotation_manager.hpp | 5 +- src/mbgl/annotation/fill_annotation_impl.cpp | 4 +- src/mbgl/annotation/fill_annotation_impl.hpp | 2 +- src/mbgl/annotation/line_annotation_impl.cpp | 4 +- src/mbgl/annotation/line_annotation_impl.hpp | 2 +- src/mbgl/annotation/shape_annotation_impl.cpp | 1 + src/mbgl/annotation/shape_annotation_impl.hpp | 7 +- .../style_sourced_annotation_impl.cpp | 6 +- .../style_sourced_annotation_impl.hpp | 2 +- src/mbgl/geometry/feature_index.cpp | 14 ++-- src/mbgl/geometry/feature_index.hpp | 11 +-- src/mbgl/layer/background_layer_impl.hpp | 24 ------- src/mbgl/layer/raster_layer_impl.hpp | 24 ------- src/mbgl/map/map.cpp | 42 +++++------ src/mbgl/{style => map}/zoom_history.hpp | 0 src/mbgl/renderer/bucket.hpp | 7 +- src/mbgl/renderer/circle_bucket.cpp | 8 ++- src/mbgl/renderer/circle_bucket.hpp | 2 +- src/mbgl/renderer/fill_bucket.cpp | 22 +++--- src/mbgl/renderer/fill_bucket.hpp | 2 +- src/mbgl/renderer/line_bucket.cpp | 8 ++- src/mbgl/renderer/line_bucket.hpp | 7 +- src/mbgl/renderer/painter.cpp | 17 +++-- src/mbgl/renderer/painter.hpp | 45 ++++++------ src/mbgl/renderer/painter_background.cpp | 10 ++- src/mbgl/renderer/painter_circle.cpp | 10 ++- src/mbgl/renderer/painter_clipping.cpp | 2 +- src/mbgl/renderer/painter_fill.cpp | 10 ++- src/mbgl/renderer/painter_line.cpp | 10 ++- src/mbgl/renderer/painter_raster.cpp | 10 ++- src/mbgl/renderer/painter_symbol.cpp | 9 ++- src/mbgl/renderer/raster_bucket.cpp | 8 ++- src/mbgl/renderer/raster_bucket.hpp | 2 +- src/mbgl/renderer/symbol_bucket.cpp | 4 +- src/mbgl/renderer/symbol_bucket.hpp | 10 +-- ...t_parameters.cpp => bucket_parameters.cpp} | 6 +- ...t_parameters.hpp => bucket_parameters.hpp} | 7 +- src/mbgl/style/calculation_parameters.hpp | 30 ++++++++ src/mbgl/style/cascade_parameters.hpp | 22 ++++++ src/mbgl/style/class_dictionary.cpp | 2 + src/mbgl/style/class_dictionary.hpp | 2 + src/mbgl/style/filter_evaluator.hpp | 2 + src/mbgl/{layer => style}/layer.cpp | 4 +- src/mbgl/{layer => style}/layer_impl.cpp | 4 +- src/mbgl/{layer => style}/layer_impl.hpp | 16 +++-- .../layers}/background_layer.cpp | 6 +- .../layers}/background_layer_impl.cpp | 10 +-- .../style/layers/background_layer_impl.hpp | 26 +++++++ .../layers}/background_layer_properties.cpp | 8 ++- .../layers}/background_layer_properties.hpp | 10 +-- .../{layer => style/layers}/circle_layer.cpp | 6 +- .../layers}/circle_layer_impl.cpp | 12 ++-- .../layers}/circle_layer_impl.hpp | 14 ++-- .../layers}/circle_layer_properties.cpp | 8 ++- .../layers}/circle_layer_properties.hpp | 10 +-- .../{layer => style/layers}/custom_layer.cpp | 6 +- .../layers}/custom_layer_impl.cpp | 8 ++- .../layers}/custom_layer_impl.hpp | 13 ++-- .../{layer => style/layers}/fill_layer.cpp | 6 +- .../layers}/fill_layer_impl.cpp | 12 ++-- .../layers}/fill_layer_impl.hpp | 14 ++-- .../layers}/fill_layer_properties.cpp | 8 ++- .../layers}/fill_layer_properties.hpp | 10 +-- .../{layer => style/layers}/line_layer.cpp | 6 +- .../layers}/line_layer_impl.cpp | 16 +++-- .../layers}/line_layer_impl.hpp | 14 ++-- .../layers}/line_layer_properties.cpp | 10 +-- .../layers}/line_layer_properties.hpp | 12 ++-- .../{layer => style/layers}/raster_layer.cpp | 6 +- .../layers}/raster_layer_impl.cpp | 10 +-- src/mbgl/style/layers/raster_layer_impl.hpp | 26 +++++++ .../layers}/raster_layer_properties.cpp | 8 ++- .../layers}/raster_layer_properties.hpp | 10 +-- .../{layer => style/layers}/symbol_layer.cpp | 6 +- .../layers}/symbol_layer_impl.cpp | 22 +++--- .../layers}/symbol_layer_impl.hpp | 20 +++--- .../layers}/symbol_layer_properties.cpp | 10 +-- .../layers}/symbol_layer_properties.hpp | 12 ++-- src/mbgl/style/layout_property.hpp | 4 +- .../{style_observer.hpp => observer.hpp} | 14 ++-- src/mbgl/style/paint_property.hpp | 18 ++--- .../style/{style_parser.cpp => parser.cpp} | 69 ++++++++++--------- .../style/{style_parser.hpp => parser.hpp} | 21 +++--- src/mbgl/style/property_evaluator.cpp | 5 +- src/mbgl/style/property_evaluator.hpp | 15 ++-- src/mbgl/style/property_parsing.cpp | 7 +- src/mbgl/style/property_parsing.hpp | 7 +- ...ry_parameters.hpp => query_parameters.hpp} | 5 +- src/mbgl/style/render_item.hpp | 9 ++- src/mbgl/{source => style}/source.cpp | 52 +++++++------- src/mbgl/{source => style}/source.hpp | 26 ++++--- .../{source => style}/source_observer.hpp | 6 +- src/mbgl/style/style.cpp | 52 +++++++------- src/mbgl/style/style.hpp | 39 ++++++----- .../style/style_calculation_parameters.hpp | 28 -------- src/mbgl/style/style_cascade_parameters.hpp | 20 ------ src/mbgl/style/style_render_parameters.hpp | 15 ---- ...e_parameters.hpp => update_parameters.hpp} | 12 ++-- src/mbgl/text/glyph_pbf.hpp | 2 +- src/mbgl/text/glyph_store.hpp | 2 +- src/mbgl/text/glyph_store_observer.hpp | 1 + src/mbgl/text/quads.cpp | 4 +- src/mbgl/text/quads.hpp | 66 +++++++++--------- src/mbgl/text/shaping.cpp | 4 +- src/mbgl/text/shaping.hpp | 34 ++++----- src/mbgl/tile/raster_tile_data.cpp | 4 +- src/mbgl/tile/raster_tile_data.hpp | 8 ++- src/mbgl/tile/tile_data.hpp | 7 +- src/mbgl/tile/tile_worker.cpp | 18 +++-- src/mbgl/tile/tile_worker.hpp | 11 +-- src/mbgl/tile/vector_tile.cpp | 2 +- src/mbgl/tile/vector_tile_data.cpp | 6 +- src/mbgl/tile/vector_tile_data.hpp | 11 +-- .../{style/types.cpp => util/font_stack.cpp} | 2 +- .../source_info.hpp => util/tileset.hpp} | 5 +- src/mbgl/util/worker.cpp | 4 +- src/mbgl/util/worker.hpp | 2 +- test/api/custom_layer.cpp | 3 +- test/map/map.cpp | 3 +- test/src/mbgl/test/stub_style_observer.hpp | 11 ++- test/storage/offline.cpp | 32 ++++----- test/style/filter.cpp | 3 +- test/style/functions.cpp | 5 +- test/style/source.cpp | 58 ++++++++-------- test/style/style.cpp | 3 +- test/style/style_layer.cpp | 5 +- test/style/style_parser.cpp | 10 +-- 156 files changed, 1079 insertions(+), 805 deletions(-) create mode 100644 include/mbgl/style/function.hpp rename include/mbgl/{layer => style/layers}/background_layer.hpp (93%) rename include/mbgl/{layer => style/layers}/circle_layer.hpp (95%) rename include/mbgl/{layer => style/layers}/custom_layer.hpp (98%) rename include/mbgl/{layer => style/layers}/fill_layer.hpp (95%) rename include/mbgl/{layer => style/layers}/line_layer.hpp (97%) rename include/mbgl/{layer => style/layers}/raster_layer.hpp (95%) rename include/mbgl/{layer => style/layers}/symbol_layer.hpp (98%) rename {src => include}/mbgl/style/property_value.hpp (91%) rename include/mbgl/style/{property_transition.hpp => transition_options.hpp} (59%) create mode 100644 include/mbgl/util/color.hpp create mode 100644 include/mbgl/util/font_stack.hpp delete mode 100644 src/mbgl/layer/background_layer_impl.hpp delete mode 100644 src/mbgl/layer/raster_layer_impl.hpp rename src/mbgl/{style => map}/zoom_history.hpp (100%) rename src/mbgl/style/{style_bucket_parameters.cpp => bucket_parameters.cpp} (80%) rename src/mbgl/style/{style_bucket_parameters.hpp => bucket_parameters.hpp} (93%) create mode 100644 src/mbgl/style/calculation_parameters.hpp create mode 100644 src/mbgl/style/cascade_parameters.hpp rename src/mbgl/{layer => style}/layer.cpp (93%) rename src/mbgl/{layer => style}/layer_impl.cpp (81%) rename src/mbgl/{layer => style}/layer_impl.hpp (89%) rename src/mbgl/{layer => style/layers}/background_layer.cpp (90%) rename src/mbgl/{layer => style/layers}/background_layer_impl.cpp (54%) create mode 100644 src/mbgl/style/layers/background_layer_impl.hpp rename src/mbgl/{layer => style/layers}/background_layer_properties.cpp (73%) rename src/mbgl/{layer => style/layers}/background_layer_properties.hpp (74%) rename src/mbgl/{layer => style/layers}/circle_layer.cpp (94%) rename src/mbgl/{layer => style/layers}/circle_layer_impl.cpp (82%) rename src/mbgl/{layer => style/layers}/circle_layer_impl.hpp (60%) rename src/mbgl/{layer => style/layers}/circle_layer_properties.cpp (82%) rename src/mbgl/{layer => style/layers}/circle_layer_properties.hpp (78%) rename src/mbgl/{layer => style/layers}/custom_layer.cpp (82%) rename src/mbgl/{layer => style/layers}/custom_layer_impl.cpp (87%) rename src/mbgl/{layer => style/layers}/custom_layer_impl.hpp (71%) rename src/mbgl/{layer => style/layers}/fill_layer.cpp (95%) rename src/mbgl/{layer => style/layers}/fill_layer_impl.cpp (83%) rename src/mbgl/{layer => style/layers}/fill_layer_impl.hpp (60%) rename src/mbgl/{layer => style/layers}/fill_layer_properties.cpp (83%) rename src/mbgl/{layer => style/layers}/fill_layer_properties.hpp (80%) rename src/mbgl/{layer => style/layers}/line_layer.cpp (96%) rename src/mbgl/{layer => style/layers}/line_layer_impl.cpp (87%) rename src/mbgl/{layer => style/layers}/line_layer_impl.hpp (65%) rename src/mbgl/{layer => style/layers}/line_layer_properties.cpp (86%) rename src/mbgl/{layer => style/layers}/line_layer_properties.hpp (83%) rename src/mbgl/{layer => style/layers}/raster_layer.cpp (94%) rename src/mbgl/{layer => style/layers}/raster_layer_impl.cpp (54%) create mode 100644 src/mbgl/style/layers/raster_layer_impl.hpp rename src/mbgl/{layer => style/layers}/raster_layer_properties.cpp (84%) rename src/mbgl/{layer => style/layers}/raster_layer_properties.hpp (78%) rename src/mbgl/{layer => style/layers}/symbol_layer.cpp (98%) rename src/mbgl/{layer => style/layers}/symbol_layer_impl.cpp (77%) rename src/mbgl/{layer => style/layers}/symbol_layer_impl.hpp (52%) rename src/mbgl/{layer => style/layers}/symbol_layer_properties.cpp (93%) rename src/mbgl/{layer => style/layers}/symbol_layer_properties.hpp (92%) rename src/mbgl/style/{style_observer.hpp => observer.hpp} (59%) rename src/mbgl/style/{style_parser.cpp => parser.cpp} (91%) rename src/mbgl/style/{style_parser.hpp => parser.hpp} (74%) rename src/mbgl/style/{style_query_parameters.hpp => query_parameters.hpp} (80%) rename src/mbgl/{source => style}/source.cpp (89%) rename src/mbgl/{source => style}/source.hpp (85%) rename src/mbgl/{source => style}/source_observer.hpp (92%) delete mode 100644 src/mbgl/style/style_calculation_parameters.hpp delete mode 100644 src/mbgl/style/style_cascade_parameters.hpp delete mode 100644 src/mbgl/style/style_render_parameters.hpp rename src/mbgl/style/{style_update_parameters.hpp => update_parameters.hpp} (92%) rename src/mbgl/{style/types.cpp => util/font_stack.cpp} (91%) rename src/mbgl/{source/source_info.hpp => util/tileset.hpp} (86%) diff --git a/include/mbgl/annotation/annotation.hpp b/include/mbgl/annotation/annotation.hpp index 8b0c3026a..6cb26e6a8 100644 --- a/include/mbgl/annotation/annotation.hpp +++ b/include/mbgl/annotation/annotation.hpp @@ -1,9 +1,8 @@ #pragma once -#include - #include #include +#include #include #include diff --git a/include/mbgl/map/map.hpp b/include/mbgl/map/map.hpp index aadfdf9ad..b44b53ff9 100644 --- a/include/mbgl/map/map.hpp +++ b/include/mbgl/map/map.hpp @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include @@ -22,10 +22,13 @@ namespace mbgl { class FileSource; class View; class SpriteImage; -class Layer; struct CameraOptions; struct AnimationOptions; +namespace style { +class Layer; +} + class Map : private util::noncopyable { public: explicit Map(View&, FileSource&, @@ -47,9 +50,9 @@ public: void update(Update update); // Styling - void addClass(const std::string&, const PropertyTransition& = {}); - void removeClass(const std::string&, const PropertyTransition& = {}); - void setClasses(const std::vector&, const PropertyTransition& = {}); + void addClass(const std::string&, const style::TransitionOptions& = {}); + void removeClass(const std::string&, const style::TransitionOptions& = {}); + void setClasses(const std::vector&, const style::TransitionOptions& = {}); bool hasClass(const std::string&) const; std::vector getClasses() const; @@ -146,7 +149,7 @@ public: AnnotationIDs getPointAnnotationsInBounds(const LatLngBounds&); - void addLayer(std::unique_ptr, const optional& beforeLayerID = {}); + void addLayer(std::unique_ptr, const optional& beforeLayerID = {}); void removeLayer(const std::string& layerID); // Feature queries diff --git a/include/mbgl/storage/offline.hpp b/include/mbgl/storage/offline.hpp index e0c5ba624..990c8470b 100644 --- a/include/mbgl/storage/offline.hpp +++ b/include/mbgl/storage/offline.hpp @@ -12,7 +12,7 @@ namespace mbgl { class TileID; -class SourceInfo; +class Tileset; /* * An offline region defined by a style URL, geographic bounding box, zoom range, and @@ -30,7 +30,7 @@ public: OfflineTilePyramidRegionDefinition(const std::string&, const LatLngBounds&, double, double, float); /* Private */ - std::vector tileCover(SourceType, uint16_t tileSize, const SourceInfo&) const; + std::vector tileCover(SourceType, uint16_t tileSize, const Tileset&) const; const std::string styleURL; const LatLngBounds bounds; diff --git a/include/mbgl/storage/resource.hpp b/include/mbgl/storage/resource.hpp index 62ee54966..a75de380a 100644 --- a/include/mbgl/storage/resource.hpp +++ b/include/mbgl/storage/resource.hpp @@ -2,7 +2,7 @@ #include #include -#include +#include #include diff --git a/include/mbgl/style/filter.hpp b/include/mbgl/style/filter.hpp index 6ad6969fb..9cf84f5e1 100644 --- a/include/mbgl/style/filter.hpp +++ b/include/mbgl/style/filter.hpp @@ -7,6 +7,7 @@ #include namespace mbgl { +namespace style { typedef variant< class NullFilter, @@ -100,4 +101,5 @@ public: std::string key; }; +} // namespace style } // namespace mbgl diff --git a/include/mbgl/style/function.hpp b/include/mbgl/style/function.hpp new file mode 100644 index 000000000..da2659c76 --- /dev/null +++ b/include/mbgl/style/function.hpp @@ -0,0 +1,27 @@ +#pragma once + +#include +#include + +namespace mbgl { +namespace style { + +template +class Function { +public: + using Stop = std::pair; + using Stops = std::vector; + + explicit Function(const Stops& stops_, float base_) + : base(base_), stops(stops_) {} + + float getBase() const { return base; } + const std::vector>& getStops() const { return stops; } + +private: + float base = 1; + std::vector> stops; +}; + +} // namespace style +} // namespace mbgl diff --git a/include/mbgl/style/layer.hpp b/include/mbgl/style/layer.hpp index 4a40cc0cf..1f4a6fdf3 100644 --- a/include/mbgl/style/layer.hpp +++ b/include/mbgl/style/layer.hpp @@ -1,5 +1,4 @@ -#ifndef MBGL_LAYER -#define MBGL_LAYER +#pragma once #include #include @@ -7,6 +6,7 @@ #include namespace mbgl { +namespace style { /** * The runtime representation of a [layer](https://www.mapbox.com/mapbox-gl-style-spec/#layers) from the Mapbox Style @@ -79,6 +79,5 @@ protected: Layer(Type, std::unique_ptr); }; +} // namespace style } // namespace mbgl - -#endif diff --git a/include/mbgl/layer/background_layer.hpp b/include/mbgl/style/layers/background_layer.hpp similarity index 93% rename from include/mbgl/layer/background_layer.hpp rename to include/mbgl/style/layers/background_layer.hpp index bba16d383..2eb84ee49 100644 --- a/include/mbgl/layer/background_layer.hpp +++ b/include/mbgl/style/layers/background_layer.hpp @@ -6,7 +6,10 @@ #include #include +#include + namespace mbgl { +namespace style { class BackgroundLayer : public Layer { public: @@ -38,4 +41,5 @@ inline bool Layer::is() const { return type == Type::Background; } +} // namespace style } // namespace mbgl diff --git a/include/mbgl/layer/circle_layer.hpp b/include/mbgl/style/layers/circle_layer.hpp similarity index 95% rename from include/mbgl/layer/circle_layer.hpp rename to include/mbgl/style/layers/circle_layer.hpp index 81f84d36a..10d281b6a 100644 --- a/include/mbgl/layer/circle_layer.hpp +++ b/include/mbgl/style/layers/circle_layer.hpp @@ -6,7 +6,10 @@ #include #include +#include + namespace mbgl { +namespace style { class CircleLayer : public Layer { public: @@ -56,4 +59,5 @@ inline bool Layer::is() const { return type == Type::Circle; } +} // namespace style } // namespace mbgl diff --git a/include/mbgl/layer/custom_layer.hpp b/include/mbgl/style/layers/custom_layer.hpp similarity index 98% rename from include/mbgl/layer/custom_layer.hpp rename to include/mbgl/style/layers/custom_layer.hpp index 9782d9593..d3867e2c4 100644 --- a/include/mbgl/layer/custom_layer.hpp +++ b/include/mbgl/style/layers/custom_layer.hpp @@ -3,6 +3,7 @@ #include namespace mbgl { +namespace style { /** * Initialize any GL state needed by the custom layer. This method is called once, from the @@ -66,4 +67,5 @@ inline bool Layer::is() const { return type == Type::Custom; } +} // namespace style } // namespace mbgl diff --git a/include/mbgl/layer/fill_layer.hpp b/include/mbgl/style/layers/fill_layer.hpp similarity index 95% rename from include/mbgl/layer/fill_layer.hpp rename to include/mbgl/style/layers/fill_layer.hpp index 10cf4f3bb..a14bf4a39 100644 --- a/include/mbgl/layer/fill_layer.hpp +++ b/include/mbgl/style/layers/fill_layer.hpp @@ -6,7 +6,10 @@ #include #include +#include + namespace mbgl { +namespace style { class FillLayer : public Layer { public: @@ -59,4 +62,5 @@ inline bool Layer::is() const { return type == Type::Fill; } +} // namespace style } // namespace mbgl diff --git a/include/mbgl/layer/line_layer.hpp b/include/mbgl/style/layers/line_layer.hpp similarity index 97% rename from include/mbgl/layer/line_layer.hpp rename to include/mbgl/style/layers/line_layer.hpp index aeec36328..fb9e37811 100644 --- a/include/mbgl/layer/line_layer.hpp +++ b/include/mbgl/style/layers/line_layer.hpp @@ -6,9 +6,12 @@ #include #include +#include + #include namespace mbgl { +namespace style { class LineLayer : public Layer { public: @@ -84,4 +87,5 @@ inline bool Layer::is() const { return type == Type::Line; } +} // namespace style } // namespace mbgl diff --git a/include/mbgl/layer/raster_layer.hpp b/include/mbgl/style/layers/raster_layer.hpp similarity index 95% rename from include/mbgl/layer/raster_layer.hpp rename to include/mbgl/style/layers/raster_layer.hpp index 7dc2532a2..6d0c7dd91 100644 --- a/include/mbgl/layer/raster_layer.hpp +++ b/include/mbgl/style/layers/raster_layer.hpp @@ -6,7 +6,10 @@ #include #include +#include + namespace mbgl { +namespace style { class RasterLayer : public Layer { public: @@ -55,4 +58,5 @@ inline bool Layer::is() const { return type == Type::Raster; } +} // namespace style } // namespace mbgl diff --git a/include/mbgl/layer/symbol_layer.hpp b/include/mbgl/style/layers/symbol_layer.hpp similarity index 98% rename from include/mbgl/layer/symbol_layer.hpp rename to include/mbgl/style/layers/symbol_layer.hpp index 006506b3d..3806310c9 100644 --- a/include/mbgl/layer/symbol_layer.hpp +++ b/include/mbgl/style/layers/symbol_layer.hpp @@ -6,9 +6,12 @@ #include #include +#include + #include namespace mbgl { +namespace style { class SymbolLayer : public Layer { public: @@ -177,4 +180,5 @@ inline bool Layer::is() const { return type == Type::Symbol; } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/style/property_value.hpp b/include/mbgl/style/property_value.hpp similarity index 91% rename from src/mbgl/style/property_value.hpp rename to include/mbgl/style/property_value.hpp index 377e4f17e..d8f83a0fb 100644 --- a/src/mbgl/style/property_value.hpp +++ b/include/mbgl/style/property_value.hpp @@ -1,9 +1,10 @@ #pragma once #include -#include +#include namespace mbgl { +namespace style { class Undefined {}; @@ -33,4 +34,5 @@ public: } }; -} +} // namespace style +} // namespace mbgl diff --git a/include/mbgl/style/property_transition.hpp b/include/mbgl/style/transition_options.hpp similarity index 59% rename from include/mbgl/style/property_transition.hpp rename to include/mbgl/style/transition_options.hpp index b9a301fee..87faff21f 100644 --- a/include/mbgl/style/property_transition.hpp +++ b/include/mbgl/style/transition_options.hpp @@ -4,14 +4,16 @@ #include namespace mbgl { +namespace style { -class PropertyTransition { +class TransitionOptions { public: - PropertyTransition(const optional& duration_ = {}, const optional& delay_ = {}) + TransitionOptions(const optional& duration_ = {}, const optional& delay_ = {}) : duration(duration_), delay(delay_) {} optional duration; optional delay; }; +} // namespace style } // namespace mbgl diff --git a/include/mbgl/style/types.hpp b/include/mbgl/style/types.hpp index 56f357035..27b524a80 100644 --- a/include/mbgl/style/types.hpp +++ b/include/mbgl/style/types.hpp @@ -2,44 +2,9 @@ #include -#include -#include -#include -#include - namespace mbgl { -// Stores a premultiplied color, with all four channels ranging from 0..1 -using Color = std::array; - -// An array of font names -using FontStack = std::vector; - -std::string fontStackToString(const FontStack&); - -struct FontStackHash { - std::size_t operator()(const FontStack&) const; -}; - -template -class Function { -public: - using Stop = std::pair; - using Stops = std::vector; - - explicit Function(const Stops& stops_, float base_) - : base(base_), stops(stops_) {} - - float getBase() const { return base; } - const std::vector>& getStops() const { return stops; } - -private: - float base = 1; - std::vector> stops; -}; - -// ------------------------------------------------------------------------------------------------- - +// TODO: should be in public source.hpp header and style namespace enum class SourceType : uint8_t { Vector, Raster, @@ -56,7 +21,7 @@ MBGL_DEFINE_ENUM_CLASS(SourceTypeClass, SourceType, { { SourceType::Annotations, "annotations" }, }); -// ------------------------------------------------------------------------------------------------- +namespace style { enum class VisibilityType : bool { Visible, @@ -122,5 +87,5 @@ enum class TextTransformType : uint8_t { Lowercase, }; +} // namespace style } // namespace mbgl - diff --git a/include/mbgl/util/color.hpp b/include/mbgl/util/color.hpp new file mode 100644 index 000000000..d7fe61c64 --- /dev/null +++ b/include/mbgl/util/color.hpp @@ -0,0 +1,10 @@ +#pragma once + +#include + +namespace mbgl { + +// Stores a premultiplied color, with all four channels ranging from 0..1 +using Color = std::array; + +} // namespace mbgl diff --git a/include/mbgl/util/font_stack.hpp b/include/mbgl/util/font_stack.hpp new file mode 100644 index 000000000..d0b431e9e --- /dev/null +++ b/include/mbgl/util/font_stack.hpp @@ -0,0 +1,17 @@ +#pragma once + +#include +#include + +namespace mbgl { + +// An array of font names +using FontStack = std::vector; + +std::string fontStackToString(const FontStack&); + +struct FontStackHash { + std::size_t operator()(const FontStack&) const; +}; + +} // namespace mbgl diff --git a/platform/android/src/example_custom_layer.cpp b/platform/android/src/example_custom_layer.cpp index 99b6d7223..516a8f2cd 100644 --- a/platform/android/src/example_custom_layer.cpp +++ b/platform/android/src/example_custom_layer.cpp @@ -1,7 +1,7 @@ #include #include -#include +#include static const GLchar * vertexShaderSource = "attribute vec2 a_pos; void main() { gl_Position = vec4(a_pos, 0, 1); }"; static const GLchar * fragmentShaderSource = "void main() { gl_FragColor = vec4(0, 1, 0, 1); }"; @@ -64,7 +64,7 @@ void nativeInitialize(void *context) { reinterpret_cast(context)->initialize(); } -void nativeRender(void *context, const mbgl::CustomLayerRenderParameters& /*parameters*/) { +void nativeRender(void *context, const mbgl::style::CustomLayerRenderParameters& /*parameters*/) { reinterpret_cast(context)->render(); } diff --git a/platform/android/src/jni.cpp b/platform/android/src/jni.cpp index 2b6b4429f..5c0f7b153 100755 --- a/platform/android/src/jni.cpp +++ b/platform/android/src/jni.cpp @@ -14,7 +14,7 @@ #include #include #include -#include +#include #include #include #include @@ -1112,11 +1112,11 @@ void nativeAddCustomLayer(JNIEnv *env, jni::jobject* obj, jlong nativeMapViewPtr mbgl::Log::Debug(mbgl::Event::JNI, "nativeAddCustomLayer"); assert(nativeMapViewPtr != 0); NativeMapView *nativeMapView = reinterpret_cast(nativeMapViewPtr); - nativeMapView->getMap().addLayer(std::make_unique( + nativeMapView->getMap().addLayer(std::make_unique( std_string_from_jstring(env, reinterpret_cast(jni::GetField(*env, customLayer, *customLayerIdId))), - reinterpret_cast(jni::GetField(*env, customLayer, *customLayerInitializeFunctionId)), - reinterpret_cast(jni::GetField(*env, customLayer, *customLayerRenderFunctionId)), - reinterpret_cast(jni::GetField(*env, customLayer, *customLayerDeinitializeFunctionId)), + reinterpret_cast(jni::GetField(*env, customLayer, *customLayerInitializeFunctionId)), + reinterpret_cast(jni::GetField(*env, customLayer, *customLayerRenderFunctionId)), + reinterpret_cast(jni::GetField(*env, customLayer, *customLayerDeinitializeFunctionId)), reinterpret_cast(jni::GetField(*env, customLayer, *customLayerContextId))), before ? mbgl::optional(std_string_from_jstring(env, before)) : mbgl::optional()); } diff --git a/platform/default/glfw_view.cpp b/platform/default/glfw_view.cpp index 2280c3f2a..67e9748a7 100644 --- a/platform/default/glfw_view.cpp +++ b/platform/default/glfw_view.cpp @@ -1,7 +1,7 @@ #include #include #include -#include +#include #include #include #include @@ -146,7 +146,7 @@ void GLFWView::onKey(GLFWwindow *window, int key, int /*scancode*/, int action, break; case GLFW_KEY_R: if (!mods) { - static const mbgl::PropertyTransition transition { { mbgl::Milliseconds(300) } }; + static const mbgl::style::TransitionOptions transition { { mbgl::Milliseconds(300) } }; if (view->map->hasClass("night")) { view->map->removeClass("night", transition); } else { diff --git a/platform/default/mbgl/storage/offline.cpp b/platform/default/mbgl/storage/offline.cpp index b13aa0503..d8e0357ae 100644 --- a/platform/default/mbgl/storage/offline.cpp +++ b/platform/default/mbgl/storage/offline.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include #include #include @@ -23,9 +23,9 @@ OfflineTilePyramidRegionDefinition::OfflineTilePyramidRegionDefinition( } } -std::vector OfflineTilePyramidRegionDefinition::tileCover(SourceType type, uint16_t tileSize, const SourceInfo& info) const { - double minZ = std::max(util::coveringZoomLevel(minZoom, type, tileSize), info.minZoom); - double maxZ = std::min(util::coveringZoomLevel(maxZoom, type, tileSize), info.maxZoom); +std::vector OfflineTilePyramidRegionDefinition::tileCover(SourceType type, uint16_t tileSize, const Tileset& tileset) const { + double minZ = std::max(util::coveringZoomLevel(minZoom, type, tileSize), tileset.minZoom); + double maxZ = std::min(util::coveringZoomLevel(maxZoom, type, tileSize), tileset.maxZoom); assert(minZ >= 0); assert(maxZ >= 0); diff --git a/platform/default/mbgl/storage/offline_download.cpp b/platform/default/mbgl/storage/offline_download.cpp index 76a9c38c8..11ca86292 100644 --- a/platform/default/mbgl/storage/offline_download.cpp +++ b/platform/default/mbgl/storage/offline_download.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include #include #include @@ -46,7 +46,7 @@ void OfflineDownload::setState(OfflineRegionDownloadState state) { observer->statusChanged(status); } -std::vector OfflineDownload::spriteResources(const StyleParser& parser) const { +std::vector OfflineDownload::spriteResources(const style::Parser& parser) const { std::vector result; if (!parser.spriteURL.empty()) { @@ -57,7 +57,7 @@ std::vector OfflineDownload::spriteResources(const StyleParser& parser return result; } -std::vector OfflineDownload::glyphResources(const StyleParser& parser) const { +std::vector OfflineDownload::glyphResources(const style::Parser& parser) const { std::vector result; if (!parser.glyphURL.empty()) { @@ -71,11 +71,11 @@ std::vector OfflineDownload::glyphResources(const StyleParser& parser) return result; } -std::vector OfflineDownload::tileResources(SourceType type, uint16_t tileSize, const SourceInfo& info) const { +std::vector OfflineDownload::tileResources(SourceType type, uint16_t tileSize, const Tileset& tileset) const { std::vector result; - for (const auto& tile : definition.tileCover(type, tileSize, info)) { - result.push_back(Resource::tile(info.tiles[0], definition.pixelRatio, tile.x, tile.y, tile.z)); + for (const auto& tile : definition.tileCover(type, tileSize, tileset)) { + result.push_back(Resource::tile(tileset.tiles[0], definition.pixelRatio, tile.x, tile.y, tile.z)); } return result; @@ -94,7 +94,7 @@ OfflineRegionStatus OfflineDownload::getStatus() const { return result; } - StyleParser parser; + style::Parser parser; parser.parse(*styleResponse->data); result.requiredResourceCountIsPrecise = true; @@ -103,14 +103,14 @@ OfflineRegionStatus OfflineDownload::getStatus() const { switch (source->type) { case SourceType::Vector: case SourceType::Raster: - if (source->getInfo()) { - result.requiredResourceCount += tileResources(source->type, source->tileSize, *source->getInfo()).size(); + if (source->getTileset()) { + result.requiredResourceCount += tileResources(source->type, source->tileSize, *source->getTileset()).size(); } else { result.requiredResourceCount += 1; optional sourceResponse = offlineDatabase.get(Resource::source(source->url)); if (sourceResponse) { result.requiredResourceCount += tileResources(source->type, source->tileSize, - *StyleParser::parseTileJSON(*sourceResponse->data, source->url, source->type, source->tileSize)).size(); + *style::parseTileJSON(*sourceResponse->data, source->url, source->type, source->tileSize)).size(); } else { result.requiredResourceCountIsPrecise = false; } @@ -144,7 +144,7 @@ void OfflineDownload::activateDownload() { ensureResource(Resource::style(definition.styleURL), [&] (Response styleResponse) { status.requiredResourceCountIsPrecise = true; - StyleParser parser; + style::Parser parser; parser.parse(*styleResponse.data); for (const auto& source : parser.sources) { @@ -155,14 +155,14 @@ void OfflineDownload::activateDownload() { switch (type) { case SourceType::Vector: case SourceType::Raster: - if (source->getInfo()) { - ensureTiles(type, tileSize, *source->getInfo()); + if (source->getTileset()) { + ensureTiles(type, tileSize, *source->getTileset()); } else { status.requiredResourceCountIsPrecise = false; requiredSourceURLs.insert(url); ensureResource(Resource::source(url), [=] (Response sourceResponse) { - ensureTiles(type, tileSize, *StyleParser::parseTileJSON(*sourceResponse.data, url, type, tileSize)); + ensureTiles(type, tileSize, *style::parseTileJSON(*sourceResponse.data, url, type, tileSize)); requiredSourceURLs.erase(url); if (requiredSourceURLs.empty()) { @@ -198,7 +198,7 @@ void OfflineDownload::deactivateDownload() { requests.clear(); } -void OfflineDownload::ensureTiles(SourceType type, uint16_t tileSize, const SourceInfo& info) { +void OfflineDownload::ensureTiles(SourceType type, uint16_t tileSize, const Tileset& info) { for (const auto& resource : tileResources(type, tileSize, info)) { ensureResource(resource); } diff --git a/platform/default/mbgl/storage/offline_download.hpp b/platform/default/mbgl/storage/offline_download.hpp index 706cdf98d..1a0d7536d 100644 --- a/platform/default/mbgl/storage/offline_download.hpp +++ b/platform/default/mbgl/storage/offline_download.hpp @@ -1,7 +1,6 @@ - #pragma once +#pragma once #include -#include #include #include @@ -14,9 +13,11 @@ class FileSource; class AsyncRequest; class Resource; class Response; -class SourceInfo; -class StyleParser; -class Source; +class Tileset; + +namespace style { +class Parser; +} /** * Coordinates the request and storage of all resources for an offline region. @@ -37,9 +38,9 @@ private: void activateDownload(); void deactivateDownload(); - std::vector spriteResources(const StyleParser&) const; - std::vector glyphResources(const StyleParser&) const; - std::vector tileResources(SourceType, uint16_t, const SourceInfo&) const; + std::vector spriteResources(const style::Parser&) const; + std::vector glyphResources(const style::Parser&) const; + std::vector tileResources(SourceType, uint16_t, const Tileset&) const; /* * Ensure that the resource is stored in the database, requesting it if necessary. @@ -47,7 +48,7 @@ private: * is deactivated, all in progress requests are cancelled. */ void ensureResource(const Resource&, std::function = {}); - void ensureTiles(SourceType, uint16_t, const SourceInfo&); + void ensureTiles(SourceType, uint16_t, const Tileset&); bool checkTileCountLimit(const Resource& resource); int64_t id; diff --git a/platform/ios/src/MGLMapView.mm b/platform/ios/src/MGLMapView.mm index 338dd4805..cc2f7c351 100644 --- a/platform/ios/src/MGLMapView.mm +++ b/platform/ios/src/MGLMapView.mm @@ -15,9 +15,9 @@ #include #include #include -#include +#include +#include #include -#include #include #include #include @@ -2700,7 +2700,7 @@ mbgl::Duration MGLDurationInSeconds(NSTimeInterval duration) newAppliedClasses.insert(newAppliedClasses.end(), [appliedClass UTF8String]); } - mbgl::PropertyTransition transition { { MGLDurationInSeconds(transitionDuration) } }; + mbgl::style::TransitionOptions transition { { MGLDurationInSeconds(transitionDuration) } }; _mbglMap->setClasses(newAppliedClasses, transition); } @@ -4973,7 +4973,7 @@ void MGLPrepareCustomStyleLayer(void *context) } } -void MGLDrawCustomStyleLayer(void *context, const mbgl::CustomLayerRenderParameters ¶ms) +void MGLDrawCustomStyleLayer(void *context, const mbgl::style::CustomLayerRenderParameters ¶ms) { CGSize size = CGSizeMake(params.width, params.height); CLLocationCoordinate2D centerCoordinate = CLLocationCoordinate2DMake(params.latitude, params.longitude); @@ -5005,8 +5005,8 @@ void MGLFinishCustomStyleLayer(void *context) { NSAssert(identifier, @"Style layer needs an identifier"); MGLCustomStyleLayerHandlers *context = new MGLCustomStyleLayerHandlers(preparation, drawing, completion); - _mbglMap->addLayer(std::make_unique(identifier.UTF8String, MGLPrepareCustomStyleLayer, - MGLDrawCustomStyleLayer, MGLFinishCustomStyleLayer, context), + _mbglMap->addLayer(std::make_unique(identifier.UTF8String, MGLPrepareCustomStyleLayer, + MGLDrawCustomStyleLayer, MGLFinishCustomStyleLayer, context), otherIdentifier ? mbgl::optional(otherIdentifier.UTF8String) : mbgl::optional()); } diff --git a/platform/qt/src/qmapboxgl.cpp b/platform/qt/src/qmapboxgl.cpp index 4354eac75..144d545d3 100644 --- a/platform/qt/src/qmapboxgl.cpp +++ b/platform/qt/src/qmapboxgl.cpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include #include #include @@ -557,13 +557,13 @@ void QMapboxGL::addCustomLayer(const QString &id, void *context_, char *before) { - d_ptr->mapObj->addLayer(std::make_unique( + d_ptr->mapObj->addLayer(std::make_unique( id.toStdString(), - reinterpret_cast(initFn), + reinterpret_cast(initFn), // This cast is safe as long as both mbgl:: and QMapbox:: // CustomLayerRenderParameters members remains the same. - (mbgl::CustomLayerRenderFunction)renderFn, - reinterpret_cast(deinitFn), + (mbgl::style::CustomLayerRenderFunction)renderFn, + reinterpret_cast(deinitFn), context_), before ? mbgl::optional(before) : mbgl::optional()); } diff --git a/scripts/generate-style-code.js b/scripts/generate-style-code.js index 02f904983..0f2dcdc42 100644 --- a/scripts/generate-style-code.js +++ b/scripts/generate-style-code.js @@ -80,11 +80,14 @@ const layerHpp = ejs.compile(`<% #include #include +#include + <% if (type === 'line' || type === 'symbol') { -%> #include <% } -%> namespace mbgl { +namespace style { class <%- camelize(type) %>Layer : public Layer { public: @@ -138,6 +141,7 @@ inline bool Layer::is<<%- camelize(type) %>Layer>() const { return type == Type::<%- camelize(type) %>; } +} // namespace style } // namespace mbgl `, {strict: true}); @@ -148,10 +152,11 @@ const layerCpp = ejs.compile(`<% -%> // This file is generated. Edit scripts/generate-style-code.js, then run \`make style-code\`. -#include _layer.hpp> -#include _layer_impl.hpp> +#include _layer.hpp> +#include _layer_impl.hpp> namespace mbgl { +namespace style { <%- camelize(type) %>Layer::<%- camelize(type) %>Layer(const std::string& layerID) : Layer(Type::<%- camelize(type) %>, std::make_unique()) @@ -230,6 +235,7 @@ void <%- camelize(type) %>Layer::set<%- camelize(property.name) %>(PropertyValue } <% } -%> +} // namespace style } // namespace mbgl `, {strict: true}); @@ -247,15 +253,16 @@ const propertiesHpp = ejs.compile(`<% #include namespace mbgl { +namespace style { -class StyleCascadeParameters; -class StyleCalculationParameters; +class CascadeParameters; +class CalculationParameters; <% if (layoutProperties.length) { -%> class <%- camelize(type) %>LayoutProperties { public: void parse(const JSValue&); - void recalculate(const StyleCalculationParameters&); + void recalculate(const CalculationParameters&); <% for (const property of layoutProperties) { -%> LayoutProperty<<%- propertyType(property) %>> <%- camelizeWithLeadingLowercase(property.name) %> { <%- defaultValue(property) %> }; @@ -266,8 +273,8 @@ public: class <%- camelize(type) %>PaintProperties { public: void parse(const JSValue&); - void cascade(const StyleCascadeParameters&); - bool recalculate(const StyleCalculationParameters&); + void cascade(const CascadeParameters&); + bool recalculate(const CalculationParameters&); <% for (const property of paintProperties) { -%> <% if (/-pattern$/.test(property.name) || property.name === 'line-dasharray') { -%> @@ -280,6 +287,7 @@ public: <% } -%> }; +} // namespace style } // namespace mbgl `, {strict: true}); @@ -290,9 +298,10 @@ const propertiesCpp = ejs.compile(`<% -%> // This file is generated. Edit scripts/generate-style-code.js, then run \`make style-code\`. -#include _layer_properties.hpp> +#include _layer_properties.hpp> namespace mbgl { +namespace style { <% if (layoutProperties.length) { -%> void <%- camelize(type) %>LayoutProperties::parse(const JSValue& value) { @@ -301,7 +310,7 @@ void <%- camelize(type) %>LayoutProperties::parse(const JSValue& value) { <% } -%> } -void <%- camelize(type) %>LayoutProperties::recalculate(const StyleCalculationParameters& parameters) { +void <%- camelize(type) %>LayoutProperties::recalculate(const CalculationParameters& parameters) { <% for (const property of layoutProperties) { -%> <%- camelizeWithLeadingLowercase(property.name) %>.calculate(parameters); <% } -%> @@ -314,13 +323,13 @@ void <%- camelize(type) %>PaintProperties::parse(const JSValue& value) { <% } -%> } -void <%- camelize(type) %>PaintProperties::cascade(const StyleCascadeParameters& parameters) { +void <%- camelize(type) %>PaintProperties::cascade(const CascadeParameters& parameters) { <% for (const property of paintProperties) { -%> <%- camelizeWithLeadingLowercase(property.name) %>.cascade(parameters); <% } -%> } -bool <%- camelize(type) %>PaintProperties::recalculate(const StyleCalculationParameters& parameters) { +bool <%- camelize(type) %>PaintProperties::recalculate(const CalculationParameters& parameters) { bool hasTransitions = false; <% for (const property of paintProperties) { -%> @@ -330,6 +339,7 @@ bool <%- camelize(type) %>PaintProperties::recalculate(const StyleCalculationPar return hasTransitions; } +} // namespace style } // namespace mbgl `, {strict: true}); @@ -354,9 +364,9 @@ for (const type of spec.layer.type.values) { paintProperties: paintProperties, }; - fs.writeFileSync(`include/mbgl/layer/${type}_layer.hpp`, layerHpp(layer)); - fs.writeFileSync(`src/mbgl/layer/${type}_layer.cpp`, layerCpp(layer)); + fs.writeFileSync(`include/mbgl/style/layers/${type}_layer.hpp`, layerHpp(layer)); + fs.writeFileSync(`src/mbgl/style/layers/${type}_layer.cpp`, layerCpp(layer)); - fs.writeFileSync(`src/mbgl/layer/${type}_layer_properties.hpp`, propertiesHpp(layer)); - fs.writeFileSync(`src/mbgl/layer/${type}_layer_properties.cpp`, propertiesCpp(layer)); + fs.writeFileSync(`src/mbgl/style/layers/${type}_layer_properties.hpp`, propertiesHpp(layer)); + fs.writeFileSync(`src/mbgl/style/layers/${type}_layer_properties.cpp`, propertiesCpp(layer)); } diff --git a/src/mbgl/annotation/annotation_manager.cpp b/src/mbgl/annotation/annotation_manager.cpp index 09442b165..e33285035 100644 --- a/src/mbgl/annotation/annotation_manager.cpp +++ b/src/mbgl/annotation/annotation_manager.cpp @@ -4,15 +4,17 @@ #include #include #include -#include +#include #include -#include -#include +#include +#include #include namespace mbgl { +using namespace style; + const std::string AnnotationManager::SourceID = "com.mapbox.annotations"; const std::string AnnotationManager::PointLayerID = "com.mapbox.annotations.points"; @@ -105,7 +107,7 @@ std::unique_ptr AnnotationManager::getTile(const CanonicalTileID void AnnotationManager::updateStyle(Style& style) { // Create annotation source, point layer, and point bucket if (!style.getSource(SourceID)) { - std::unique_ptr source = std::make_unique(SourceType::Annotations, SourceID, "", util::tileSize, std::make_unique(), nullptr); + std::unique_ptr source = std::make_unique(SourceType::Annotations, SourceID, "", util::tileSize, std::make_unique(), nullptr); source->enabled = true; style.addSource(std::move(source)); diff --git a/src/mbgl/annotation/annotation_manager.hpp b/src/mbgl/annotation/annotation_manager.hpp index 6862739eb..73907e10c 100644 --- a/src/mbgl/annotation/annotation_manager.hpp +++ b/src/mbgl/annotation/annotation_manager.hpp @@ -18,7 +18,10 @@ class AnnotationTile; class AnnotationTileMonitor; class SymbolAnnotationImpl; class ShapeAnnotationImpl; + +namespace style { class Style; +} class AnnotationManager : private util::noncopyable { public: @@ -36,7 +39,7 @@ public: double getTopOffsetPixelsForIcon(const std::string& name); SpriteAtlas& getSpriteAtlas() { return spriteAtlas; } - void updateStyle(Style&); + void updateStyle(style::Style&); void addTileMonitor(AnnotationTileMonitor&); void removeTileMonitor(AnnotationTileMonitor&); diff --git a/src/mbgl/annotation/fill_annotation_impl.cpp b/src/mbgl/annotation/fill_annotation_impl.cpp index 17bdd9c38..31c9f6d72 100644 --- a/src/mbgl/annotation/fill_annotation_impl.cpp +++ b/src/mbgl/annotation/fill_annotation_impl.cpp @@ -1,11 +1,11 @@ #include #include #include -#include +#include namespace mbgl { -namespace geojsonvt = mapbox::geojsonvt; +using namespace style; FillAnnotationImpl::FillAnnotationImpl(const AnnotationID id_, const FillAnnotation& annotation_, const uint8_t maxZoom_) : ShapeAnnotationImpl(id_, maxZoom_), diff --git a/src/mbgl/annotation/fill_annotation_impl.hpp b/src/mbgl/annotation/fill_annotation_impl.hpp index c396499e3..b879860c0 100644 --- a/src/mbgl/annotation/fill_annotation_impl.hpp +++ b/src/mbgl/annotation/fill_annotation_impl.hpp @@ -9,7 +9,7 @@ class FillAnnotationImpl : public ShapeAnnotationImpl { public: FillAnnotationImpl(const AnnotationID, const FillAnnotation&, const uint8_t maxZoom); - void updateStyle(Style&) const final; + void updateStyle(style::Style&) const final; const ShapeAnnotationGeometry& geometry() const final; private: diff --git a/src/mbgl/annotation/line_annotation_impl.cpp b/src/mbgl/annotation/line_annotation_impl.cpp index 11febc7de..85177591f 100644 --- a/src/mbgl/annotation/line_annotation_impl.cpp +++ b/src/mbgl/annotation/line_annotation_impl.cpp @@ -1,11 +1,11 @@ #include #include #include -#include +#include namespace mbgl { -namespace geojsonvt = mapbox::geojsonvt; +using namespace style; LineAnnotationImpl::LineAnnotationImpl(const AnnotationID id_, const LineAnnotation& annotation_, const uint8_t maxZoom_) : ShapeAnnotationImpl(id_, maxZoom_), diff --git a/src/mbgl/annotation/line_annotation_impl.hpp b/src/mbgl/annotation/line_annotation_impl.hpp index 05d650c05..c9a37dd39 100644 --- a/src/mbgl/annotation/line_annotation_impl.hpp +++ b/src/mbgl/annotation/line_annotation_impl.hpp @@ -9,7 +9,7 @@ class LineAnnotationImpl : public ShapeAnnotationImpl { public: LineAnnotationImpl(const AnnotationID, const LineAnnotation&, const uint8_t maxZoom); - void updateStyle(Style&) const final; + void updateStyle(style::Style&) const final; const ShapeAnnotationGeometry& geometry() const final; private: diff --git a/src/mbgl/annotation/shape_annotation_impl.cpp b/src/mbgl/annotation/shape_annotation_impl.cpp index 283e736c6..be6e12558 100644 --- a/src/mbgl/annotation/shape_annotation_impl.cpp +++ b/src/mbgl/annotation/shape_annotation_impl.cpp @@ -10,6 +10,7 @@ namespace mbgl { +using namespace style; namespace geojsonvt = mapbox::geojsonvt; ShapeAnnotationImpl::ShapeAnnotationImpl(const AnnotationID id_, const uint8_t maxZoom_) diff --git a/src/mbgl/annotation/shape_annotation_impl.hpp b/src/mbgl/annotation/shape_annotation_impl.hpp index 7f36f8b88..e6ba9a4bd 100644 --- a/src/mbgl/annotation/shape_annotation_impl.hpp +++ b/src/mbgl/annotation/shape_annotation_impl.hpp @@ -9,16 +9,19 @@ namespace mbgl { -class Style; class AnnotationTile; class CanonicalTileID; +namespace style { +class Style; +} + class ShapeAnnotationImpl { public: ShapeAnnotationImpl(const AnnotationID, const uint8_t maxZoom); virtual ~ShapeAnnotationImpl() = default; - virtual void updateStyle(Style&) const = 0; + virtual void updateStyle(style::Style&) const = 0; virtual const ShapeAnnotationGeometry& geometry() const = 0; void updateTile(const CanonicalTileID&, AnnotationTile&); diff --git a/src/mbgl/annotation/style_sourced_annotation_impl.cpp b/src/mbgl/annotation/style_sourced_annotation_impl.cpp index e1e11a664..43a27c8aa 100644 --- a/src/mbgl/annotation/style_sourced_annotation_impl.cpp +++ b/src/mbgl/annotation/style_sourced_annotation_impl.cpp @@ -2,12 +2,12 @@ #include #include #include -#include -#include +#include +#include namespace mbgl { -namespace geojsonvt = mapbox::geojsonvt; +using namespace style; StyleSourcedAnnotationImpl::StyleSourcedAnnotationImpl(const AnnotationID id_, const StyleSourcedAnnotation& annotation_, const uint8_t maxZoom_) : ShapeAnnotationImpl(id_, maxZoom_), diff --git a/src/mbgl/annotation/style_sourced_annotation_impl.hpp b/src/mbgl/annotation/style_sourced_annotation_impl.hpp index 98e9910c6..09ef474fc 100644 --- a/src/mbgl/annotation/style_sourced_annotation_impl.hpp +++ b/src/mbgl/annotation/style_sourced_annotation_impl.hpp @@ -9,7 +9,7 @@ class StyleSourcedAnnotationImpl : public ShapeAnnotationImpl { public: StyleSourcedAnnotationImpl(const AnnotationID, const StyleSourcedAnnotation&, const uint8_t maxZoom); - void updateStyle(Style&) const final; + void updateStyle(style::Style&) const final; const ShapeAnnotationGeometry& geometry() const final; private: diff --git a/src/mbgl/geometry/feature_index.cpp b/src/mbgl/geometry/feature_index.cpp index e72aa344f..8c1034491 100644 --- a/src/mbgl/geometry/feature_index.cpp +++ b/src/mbgl/geometry/feature_index.cpp @@ -1,8 +1,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -59,7 +59,7 @@ void FeatureIndex::query( const optional>& filterLayerIDs, const GeometryTile& geometryTile, const CanonicalTileID& tileID, - const Style& style) const { + const style::Style& style) const { mapbox::geometry::box box = mapbox::geometry::envelope(queryGeometry); @@ -94,7 +94,7 @@ void FeatureIndex::addFeature( const optional>& filterLayerIDs, const GeometryTile& geometryTile, const CanonicalTileID& tileID, - const Style& style, + const style::Style& style, const float bearing, const float pixelsToTileUnits) const { @@ -116,7 +116,7 @@ void FeatureIndex::addFeature( auto styleLayer = style.getLayer(layerID); if (!styleLayer || - (!styleLayer->is() && + (!styleLayer->is() && !styleLayer->baseImpl->queryIntersectsGeometry(queryGeometry, geometryTileFeature->getGeometries(), bearing, pixelsToTileUnits))) { continue; } @@ -128,7 +128,7 @@ void FeatureIndex::addFeature( optional FeatureIndex::translateQueryGeometry( const GeometryCollection& queryGeometry, const std::array& translate, - const TranslateAnchorType anchorType, + const style::TranslateAnchorType anchorType, const float bearing, const float pixelsToTileUnits) { if (translate[0] == 0 && translate[1] == 0) { @@ -136,7 +136,7 @@ optional FeatureIndex::translateQueryGeometry( } GeometryCoordinate translateVec(translate[0] * pixelsToTileUnits, translate[1] * pixelsToTileUnits); - if (anchorType == TranslateAnchorType::Viewport) { + if (anchorType == style::TranslateAnchorType::Viewport) { translateVec = util::rotate(translateVec, -bearing); } diff --git a/src/mbgl/geometry/feature_index.hpp b/src/mbgl/geometry/feature_index.hpp index 0dcc154f0..c944a9813 100644 --- a/src/mbgl/geometry/feature_index.hpp +++ b/src/mbgl/geometry/feature_index.hpp @@ -1,5 +1,6 @@ #pragma once +#include #include #include #include @@ -10,9 +11,11 @@ namespace mbgl { +namespace style { class Style; +} + class CollisionTile; -enum class TranslateAnchorType : bool; class CanonicalTileID; class IndexedSubfeature { @@ -39,12 +42,12 @@ public: const optional>& layerIDs, const GeometryTile&, const CanonicalTileID&, - const Style&) const; + const style::Style&) const; static optional translateQueryGeometry( const GeometryCollection& queryGeometry, const std::array& translate, - const TranslateAnchorType, + const style::TranslateAnchorType, const float bearing, const float pixelsToTileUnits); @@ -60,7 +63,7 @@ private: const optional>& filterLayerIDs, const GeometryTile&, const CanonicalTileID&, - const Style&, + const style::Style&, const float bearing, const float pixelsToTileUnits) const; diff --git a/src/mbgl/layer/background_layer_impl.hpp b/src/mbgl/layer/background_layer_impl.hpp deleted file mode 100644 index 6af31dd92..000000000 --- a/src/mbgl/layer/background_layer_impl.hpp +++ /dev/null @@ -1,24 +0,0 @@ -#pragma once - -#include -#include -#include - -namespace mbgl { - -class BackgroundLayer::Impl : public Layer::Impl { -public: - std::unique_ptr clone() const override; - - void parseLayout(const JSValue&) override {}; - void parsePaints(const JSValue&) override; - - void cascade(const StyleCascadeParameters&) override; - bool recalculate(const StyleCalculationParameters&) override; - - std::unique_ptr createBucket(StyleBucketParameters&) const override; - - BackgroundPaintProperties paint; -}; - -} // namespace mbgl diff --git a/src/mbgl/layer/raster_layer_impl.hpp b/src/mbgl/layer/raster_layer_impl.hpp deleted file mode 100644 index a83c7f259..000000000 --- a/src/mbgl/layer/raster_layer_impl.hpp +++ /dev/null @@ -1,24 +0,0 @@ -#pragma once - -#include -#include -#include - -namespace mbgl { - -class RasterLayer::Impl : public Layer::Impl { -public: - std::unique_ptr clone() const override; - - void parseLayout(const JSValue&) override {}; - void parsePaints(const JSValue&) override; - - void cascade(const StyleCascadeParameters&) override; - bool recalculate(const StyleCalculationParameters&) override; - - std::unique_ptr createBucket(StyleBucketParameters&) const override; - - RasterPaintProperties paint; -}; - -} // namespace mbgl diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp index 4f1c4634c..ec961a648 100644 --- a/src/mbgl/map/map.cpp +++ b/src/mbgl/map/map.cpp @@ -5,11 +5,11 @@ #include #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include #include @@ -25,13 +25,15 @@ namespace mbgl { +using namespace style; + enum class RenderState { never, partial, fully }; -class Map::Impl : public StyleObserver { +class Map::Impl : public style::Observer { public: Impl(View&, FileSource&, MapMode, GLContextMode, ConstrainMode, ViewportMode); @@ -221,17 +223,17 @@ void Map::Impl::update() { style->recalculate(transform.getZoom(), timePoint, mode); } - StyleUpdateParameters parameters(pixelRatio, - debugOptions, - timePoint, - transform.getState(), - style->workers, - fileSource, - *texturePool, - style->shouldReparsePartialTiles, - mode, - *annotationManager, - *style); + style::UpdateParameters parameters(pixelRatio, + debugOptions, + timePoint, + transform.getState(), + style->workers, + fileSource, + *texturePool, + style->shouldReparsePartialTiles, + mode, + *annotationManager, + *style); style->update(parameters); @@ -799,19 +801,19 @@ bool Map::isFullyLoaded() const { return impl->style->isLoaded(); } -void Map::addClass(const std::string& className, const PropertyTransition& properties) { +void Map::addClass(const std::string& className, const TransitionOptions& properties) { if (impl->style->addClass(className, properties)) { update(Update::Classes); } } -void Map::removeClass(const std::string& className, const PropertyTransition& properties) { +void Map::removeClass(const std::string& className, const TransitionOptions& properties) { if (impl->style->removeClass(className, properties)) { update(Update::Classes); } } -void Map::setClasses(const std::vector& classNames, const PropertyTransition& properties) { +void Map::setClasses(const std::vector& classNames, const TransitionOptions& properties) { impl->style->setClasses(classNames, properties); update(Update::Classes); } diff --git a/src/mbgl/style/zoom_history.hpp b/src/mbgl/map/zoom_history.hpp similarity index 100% rename from src/mbgl/style/zoom_history.hpp rename to src/mbgl/map/zoom_history.hpp diff --git a/src/mbgl/renderer/bucket.hpp b/src/mbgl/renderer/bucket.hpp index 89b0ceefb..c7ebe480e 100644 --- a/src/mbgl/renderer/bucket.hpp +++ b/src/mbgl/renderer/bucket.hpp @@ -13,7 +13,6 @@ namespace mbgl { class Painter; -class Layer; class UnwrappedTileID; class CollisionTile; @@ -21,6 +20,10 @@ namespace gl { class ObjectStore; } +namespace style { +class Layer; +} + class Bucket : private util::noncopyable { public: Bucket() : uploaded(false) {} @@ -31,7 +34,7 @@ public: // Every time this bucket is getting rendered, this function is called. This happens either // once or twice (for Opaque and Transparent render passes). - virtual void render(Painter&, const Layer&, const UnwrappedTileID&, const mat4&) = 0; + virtual void render(Painter&, const style::Layer&, const UnwrappedTileID&, const mat4&) = 0; virtual ~Bucket() = default; diff --git a/src/mbgl/renderer/circle_bucket.cpp b/src/mbgl/renderer/circle_bucket.cpp index 969e05131..4ae63fed4 100644 --- a/src/mbgl/renderer/circle_bucket.cpp +++ b/src/mbgl/renderer/circle_bucket.cpp @@ -2,10 +2,12 @@ #include #include -#include +#include #include -using namespace mbgl; +namespace mbgl { + +using namespace style; CircleBucket::CircleBucket(MapMode mode_) : mode(mode_) { } @@ -97,3 +99,5 @@ void CircleBucket::drawCircles(CircleShader& shader, gl::ObjectStore& store) { elementsIndex += group->elements_length * elementsBuffer_.itemSize; } } + +} diff --git a/src/mbgl/renderer/circle_bucket.hpp b/src/mbgl/renderer/circle_bucket.hpp index 9c95fce04..fa34aa088 100644 --- a/src/mbgl/renderer/circle_bucket.hpp +++ b/src/mbgl/renderer/circle_bucket.hpp @@ -19,7 +19,7 @@ public: ~CircleBucket() override; void upload(gl::ObjectStore&) override; - void render(Painter&, const Layer&, const UnwrappedTileID&, const mat4&) override; + void render(Painter&, const style::Layer&, const UnwrappedTileID&, const mat4&) override; bool hasData() const override; bool needsClipping() const override; diff --git a/src/mbgl/renderer/fill_bucket.cpp b/src/mbgl/renderer/fill_bucket.cpp index 4a9709f4e..02f346dec 100644 --- a/src/mbgl/renderer/fill_bucket.cpp +++ b/src/mbgl/renderer/fill_bucket.cpp @@ -1,5 +1,5 @@ #include -#include +#include #include #include #include @@ -12,22 +12,24 @@ #include -struct GeometryTooLongException : std::exception {}; - -using namespace mbgl; - namespace mapbox { namespace util { -template <> struct nth<0, GeometryCoordinate> { - inline static int64_t get(const GeometryCoordinate& t) { return t.x; }; +template <> struct nth<0, mbgl::GeometryCoordinate> { + inline static int64_t get(const mbgl::GeometryCoordinate& t) { return t.x; }; }; -template <> struct nth<1, GeometryCoordinate> { - inline static int64_t get(const GeometryCoordinate& t) { return t.y; }; +template <> struct nth<1, mbgl::GeometryCoordinate> { + inline static int64_t get(const mbgl::GeometryCoordinate& t) { return t.y; }; }; } } +namespace mbgl { + +using namespace style; + +struct GeometryTooLongException : std::exception {}; + FillBucket::FillBucket() { } @@ -165,3 +167,5 @@ void FillBucket::drawVertices(OutlinePatternShader& shader, gl::ObjectStore& sto elements_index += group->elements_length * lineElementsBuffer.itemSize; } } + +} diff --git a/src/mbgl/renderer/fill_bucket.hpp b/src/mbgl/renderer/fill_bucket.hpp index 21e3239f2..35d70d169 100644 --- a/src/mbgl/renderer/fill_bucket.hpp +++ b/src/mbgl/renderer/fill_bucket.hpp @@ -21,7 +21,7 @@ public: ~FillBucket() override; void upload(gl::ObjectStore&) override; - void render(Painter&, const Layer&, const UnwrappedTileID&, const mat4&) override; + void render(Painter&, const style::Layer&, const UnwrappedTileID&, const mat4&) override; bool hasData() const override; bool needsClipping() const override; diff --git a/src/mbgl/renderer/line_bucket.cpp b/src/mbgl/renderer/line_bucket.cpp index 8124a5dae..d207cdb8c 100644 --- a/src/mbgl/renderer/line_bucket.cpp +++ b/src/mbgl/renderer/line_bucket.cpp @@ -1,5 +1,5 @@ #include -#include +#include #include #include #include @@ -11,7 +11,9 @@ #include -using namespace mbgl; +namespace mbgl { + +using namespace style; LineBucket::LineBucket(uint32_t overscaling_) : overscaling(overscaling_) { } @@ -505,3 +507,5 @@ void LineBucket::drawLinePatterns(LinepatternShader& shader, gl::ObjectStore& st elements_index += group->elements_length * triangleElementsBuffer.itemSize; } } + +} diff --git a/src/mbgl/renderer/line_bucket.hpp b/src/mbgl/renderer/line_bucket.hpp index 1093ec2a4..d746f29c7 100644 --- a/src/mbgl/renderer/line_bucket.hpp +++ b/src/mbgl/renderer/line_bucket.hpp @@ -5,13 +5,12 @@ #include #include #include -#include +#include #include namespace mbgl { -class Style; class LineVertexBuffer; class TriangleElementsBuffer; class LineShader; @@ -26,7 +25,7 @@ public: ~LineBucket() override; void upload(gl::ObjectStore&) override; - void render(Painter&, const Layer&, const UnwrappedTileID&, const mat4&) override; + void render(Painter&, const style::Layer&, const UnwrappedTileID&, const mat4&) override; bool hasData() const override; bool needsClipping() const override; @@ -50,7 +49,7 @@ private: std::vector& triangleStore); public: - LineLayoutProperties layout; + style::LineLayoutProperties layout; private: LineVertexBuffer vertexBuffer; diff --git a/src/mbgl/renderer/painter.cpp b/src/mbgl/renderer/painter.cpp index ccc6e2340..1864bf7ef 100644 --- a/src/mbgl/renderer/painter.cpp +++ b/src/mbgl/renderer/painter.cpp @@ -1,18 +1,17 @@ #include -#include +#include #include #include #include #include -#include -#include +#include -#include -#include -#include +#include +#include +#include #include #include @@ -46,7 +45,9 @@ #include #include -using namespace mbgl; +namespace mbgl { + +using namespace style; Painter::Painter(const TransformState& state_, gl::ObjectStore& store_) : state(state_), @@ -308,3 +309,5 @@ void Painter::setDepthSublayer(int n) { float farDepth = nearDepth + depthRangeSize; config.depthRange = { nearDepth, farDepth }; } + +} diff --git a/src/mbgl/renderer/painter.hpp b/src/mbgl/renderer/painter.hpp index ad2645755..f040fee67 100644 --- a/src/mbgl/renderer/painter.hpp +++ b/src/mbgl/renderer/painter.hpp @@ -13,7 +13,7 @@ #include #include -#include +#include #include @@ -28,27 +28,19 @@ namespace mbgl { -class Style; class Tile; class SpriteAtlas; class GlyphAtlas; class LineAtlas; -class Source; struct FrameData; class TileData; class DebugBucket; class FillBucket; -class FillLayer; class LineBucket; -class LineLayer; class CircleBucket; -class CircleLayer; class SymbolBucket; -class SymbolLayer; class RasterBucket; -class RasterLayer; -class BackgroundLayer; class SDFShader; class PlainShader; @@ -72,6 +64,17 @@ namespace util { class ObjectStore; } +namespace style { +class Style; +class Source; +class FillLayer; +class LineLayer; +class CircleLayer; +class SymbolLayer; +class RasterLayer; +class BackgroundLayer; +} + struct FrameData { std::array framebufferSize; TimePoint timePoint; @@ -86,8 +89,8 @@ public: Painter(const TransformState&, gl::ObjectStore&); ~Painter(); - void render(const Style& style, - const FrameData& frame, + void render(const style::Style&, + const FrameData&, SpriteAtlas& annotationSpriteAtlas); // Renders debug information for a tile. @@ -99,12 +102,12 @@ public: void renderClipMasks(); void renderDebugText(TileData&, const mat4&); - void renderFill(FillBucket&, const FillLayer&, const UnwrappedTileID&, const mat4&); - void renderLine(LineBucket&, const LineLayer&, const UnwrappedTileID&, const mat4&); - void renderCircle(CircleBucket&, const CircleLayer&, const UnwrappedTileID&, const mat4&); - void renderSymbol(SymbolBucket&, const SymbolLayer&, const UnwrappedTileID&, const mat4&); - void renderRaster(RasterBucket&, const RasterLayer&, const UnwrappedTileID&, const mat4&); - void renderBackground(const BackgroundLayer&); + void renderFill(FillBucket&, const style::FillLayer&, const UnwrappedTileID&, const mat4&); + void renderLine(LineBucket&, const style::LineLayer&, const UnwrappedTileID&, const mat4&); + void renderCircle(CircleBucket&, const style::CircleLayer&, const UnwrappedTileID&, const mat4&); + void renderSymbol(SymbolBucket&, const style::SymbolLayer&, const UnwrappedTileID&, const mat4&); + void renderRaster(RasterBucket&, const style::RasterLayer&, const UnwrappedTileID&, const mat4&); + void renderBackground(const style::BackgroundLayer&); float saturationFactor(float saturation); float contrastFactor(float contrast); @@ -118,9 +121,9 @@ private: mat4 translatedMatrix(const mat4& matrix, const std::array& translation, const UnwrappedTileID& id, - TranslateAnchorType anchor); + style::TranslateAnchorType anchor); - std::vector determineRenderOrder(const Style& style); + std::vector determineRenderOrder(const style::Style&); template void renderPass(RenderPass, @@ -138,7 +141,7 @@ private: void (SymbolBucket::*drawSDF)(SDFShader&, gl::ObjectStore&), // Layout - RotationAlignmentType rotationAlignment, + style::RotationAlignmentType rotationAlignment, float layoutSize, // Paint @@ -148,7 +151,7 @@ private: float haloWidth, float haloBlur, std::array translate, - TranslateAnchorType translateAnchor, + style::TranslateAnchorType translateAnchor, float paintSize); void setDepthSublayer(int n); diff --git a/src/mbgl/renderer/painter_background.cpp b/src/mbgl/renderer/painter_background.cpp index bc01d3c32..07e5821ce 100644 --- a/src/mbgl/renderer/painter_background.cpp +++ b/src/mbgl/renderer/painter_background.cpp @@ -1,14 +1,16 @@ #include -#include -#include +#include +#include #include #include #include #include #include -using namespace mbgl; +namespace mbgl { + +using namespace style; void Painter::renderBackground(const BackgroundLayer& layer) { // Note that for bottommost layers without a pattern, the background color is drawn with @@ -107,3 +109,5 @@ void Painter::renderBackground(const BackgroundLayer& layer) { MBGL_CHECK_ERROR(glDrawArrays(GL_TRIANGLE_STRIP, 0, (GLsizei)tileStencilBuffer.index())); } } + +} diff --git a/src/mbgl/renderer/painter_circle.cpp b/src/mbgl/renderer/painter_circle.cpp index c371f4deb..9f2cd17f7 100644 --- a/src/mbgl/renderer/painter_circle.cpp +++ b/src/mbgl/renderer/painter_circle.cpp @@ -1,12 +1,14 @@ #include #include -#include -#include +#include +#include #include -using namespace mbgl; +namespace mbgl { + +using namespace style; void Painter::renderCircle(CircleBucket& bucket, const CircleLayer& layer, @@ -43,3 +45,5 @@ void Painter::renderCircle(CircleBucket& bucket, bucket.drawCircles(*circleShader, store); } + +} diff --git a/src/mbgl/renderer/painter_clipping.cpp b/src/mbgl/renderer/painter_clipping.cpp index f0fd49826..e6ce1a040 100644 --- a/src/mbgl/renderer/painter_clipping.cpp +++ b/src/mbgl/renderer/painter_clipping.cpp @@ -1,5 +1,5 @@ #include -#include +#include #include #include #include diff --git a/src/mbgl/renderer/painter_fill.cpp b/src/mbgl/renderer/painter_fill.cpp index b499d20da..b89686c81 100644 --- a/src/mbgl/renderer/painter_fill.cpp +++ b/src/mbgl/renderer/painter_fill.cpp @@ -1,14 +1,16 @@ #include #include -#include -#include +#include +#include #include #include #include #include #include -using namespace mbgl; +namespace mbgl { + +using namespace style; void Painter::renderFill(FillBucket& bucket, const FillLayer& layer, @@ -195,3 +197,5 @@ void Painter::renderFill(FillBucket& bucket, bucket.drawVertices(*outlineShader, store); } } + +} diff --git a/src/mbgl/renderer/painter_line.cpp b/src/mbgl/renderer/painter_line.cpp index 3cf1ad414..26041a816 100644 --- a/src/mbgl/renderer/painter_line.cpp +++ b/src/mbgl/renderer/painter_line.cpp @@ -1,7 +1,7 @@ #include #include -#include -#include +#include +#include #include #include #include @@ -9,7 +9,9 @@ #include #include -using namespace mbgl; +namespace mbgl { + +using namespace style; void Painter::renderLine(LineBucket& bucket, const LineLayer& layer, @@ -161,3 +163,5 @@ void Painter::renderLine(LineBucket& bucket, bucket.drawLines(*lineShader, store); } } + +} diff --git a/src/mbgl/renderer/painter_raster.cpp b/src/mbgl/renderer/painter_raster.cpp index 511ac9638..cce71e8ce 100644 --- a/src/mbgl/renderer/painter_raster.cpp +++ b/src/mbgl/renderer/painter_raster.cpp @@ -1,11 +1,13 @@ #include #include #include -#include -#include +#include +#include #include -using namespace mbgl; +namespace mbgl { + +using namespace style; void Painter::renderRaster(RasterBucket& bucket, const RasterLayer& layer, @@ -66,3 +68,5 @@ std::array Painter::spinWeights(float spin) { }}; return spin_weights; } + +} diff --git a/src/mbgl/renderer/painter_symbol.cpp b/src/mbgl/renderer/painter_symbol.cpp index 977456807..3c453242a 100644 --- a/src/mbgl/renderer/painter_symbol.cpp +++ b/src/mbgl/renderer/painter_symbol.cpp @@ -1,6 +1,7 @@ #include #include -#include +#include +#include #include #include #include @@ -10,7 +11,9 @@ #include -using namespace mbgl; +namespace mbgl { + +using namespace style; void Painter::renderSDF(SymbolBucket &bucket, const UnwrappedTileID &tileID, @@ -257,3 +260,5 @@ void Painter::renderSymbol(SymbolBucket& bucket, config.activeTexture = GL_TEXTURE0; } + +} diff --git a/src/mbgl/renderer/raster_bucket.cpp b/src/mbgl/renderer/raster_bucket.cpp index b16d7f816..39f8dacd9 100644 --- a/src/mbgl/renderer/raster_bucket.cpp +++ b/src/mbgl/renderer/raster_bucket.cpp @@ -1,9 +1,11 @@ #include -#include +#include #include #include -using namespace mbgl; +namespace mbgl { + +using namespace style; RasterBucket::RasterBucket(gl::TexturePool& texturePool) : raster(texturePool) { @@ -40,3 +42,5 @@ bool RasterBucket::hasData() const { bool RasterBucket::needsClipping() const { return false; } + +} diff --git a/src/mbgl/renderer/raster_bucket.hpp b/src/mbgl/renderer/raster_bucket.hpp index 9125ef204..93331755f 100644 --- a/src/mbgl/renderer/raster_bucket.hpp +++ b/src/mbgl/renderer/raster_bucket.hpp @@ -14,7 +14,7 @@ public: RasterBucket(gl::TexturePool&); void upload(gl::ObjectStore&) override; - void render(Painter&, const Layer&, const UnwrappedTileID&, const mat4&) override; + void render(Painter&, const style::Layer&, const UnwrappedTileID&, const mat4&) override; bool hasData() const override; bool needsClipping() const override; diff --git a/src/mbgl/renderer/symbol_bucket.cpp b/src/mbgl/renderer/symbol_bucket.cpp index 67c8468ec..f4e55432c 100644 --- a/src/mbgl/renderer/symbol_bucket.cpp +++ b/src/mbgl/renderer/symbol_bucket.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include #include #include #include @@ -31,6 +31,8 @@ namespace mbgl { +using namespace style; + SymbolInstance::SymbolInstance(Anchor& anchor, const GeometryCoordinates& line, const Shaping& shapedText, const PositionedIcon& shapedIcon, const SymbolLayoutProperties& layout, const bool addToBuffers, const uint32_t index_, diff --git a/src/mbgl/renderer/symbol_bucket.hpp b/src/mbgl/renderer/symbol_bucket.hpp index b19a86b27..314d44bde 100644 --- a/src/mbgl/renderer/symbol_bucket.hpp +++ b/src/mbgl/renderer/symbol_bucket.hpp @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include #include @@ -46,7 +46,7 @@ class SymbolInstance { public: explicit SymbolInstance(Anchor& anchor, const GeometryCoordinates& line, const Shaping& shapedText, const PositionedIcon& shapedIcon, - const SymbolLayoutProperties& layout, const bool inside, const uint32_t index, + const style::SymbolLayoutProperties&, const bool inside, const uint32_t index, const float textBoxScale, const float textPadding, const float textAlongLine, const float iconBoxScale, const float iconPadding, const float iconAlongLine, const GlyphPositions& face, const IndexedSubfeature& indexedfeature); @@ -70,7 +70,7 @@ public: ~SymbolBucket() override; void upload(gl::ObjectStore&) override; - void render(Painter&, const Layer&, const UnwrappedTileID&, const mat4&) override; + void render(Painter&, const style::Layer&, const UnwrappedTileID&, const mat4&) override; bool hasData() const override; bool hasTextData() const; bool hasIconData() const; @@ -87,7 +87,7 @@ public: void drawIcons(IconShader&, gl::ObjectStore&); void drawCollisionBoxes(CollisionBoxShader&, gl::ObjectStore&); - void parseFeatures(const GeometryTileLayer&, const Filter&); + void parseFeatures(const GeometryTileLayer&, const style::Filter&); bool needsDependencies(GlyphStore&, SpriteStore&); void placeFeatures(CollisionTile&) override; @@ -109,7 +109,7 @@ private: const bool keepUpright, const bool alongLine, const float placementAngle); public: - SymbolLayoutProperties layout; + style::SymbolLayoutProperties layout; float iconMaxSize = 1.0f; float textMaxSize = 16.0f; diff --git a/src/mbgl/style/style_bucket_parameters.cpp b/src/mbgl/style/bucket_parameters.cpp similarity index 80% rename from src/mbgl/style/style_bucket_parameters.cpp rename to src/mbgl/style/bucket_parameters.cpp index 0b4b2affc..f3367d57e 100644 --- a/src/mbgl/style/style_bucket_parameters.cpp +++ b/src/mbgl/style/bucket_parameters.cpp @@ -1,10 +1,11 @@ -#include +#include #include #include namespace mbgl { +namespace style { -void StyleBucketParameters::eachFilteredFeature(const Filter& filter, +void BucketParameters::eachFilteredFeature(const Filter& filter, std::function function) { auto name = layer.getName(); for (std::size_t i = 0; !cancelled() && i < layer.featureCount(); i++) { @@ -18,4 +19,5 @@ void StyleBucketParameters::eachFilteredFeature(const Filter& filter, } } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/style/style_bucket_parameters.hpp b/src/mbgl/style/bucket_parameters.hpp similarity index 93% rename from src/mbgl/style/style_bucket_parameters.hpp rename to src/mbgl/style/bucket_parameters.hpp index 17639afae..f85e1e17e 100644 --- a/src/mbgl/style/style_bucket_parameters.hpp +++ b/src/mbgl/style/bucket_parameters.hpp @@ -18,9 +18,11 @@ class GlyphStore; class CollisionTile; class FeatureIndex; -class StyleBucketParameters { +namespace style { + +class BucketParameters { public: - StyleBucketParameters(const OverscaledTileID& tileID_, + BucketParameters(const OverscaledTileID& tileID_, const GeometryTileLayer& layer_, const std::atomic& obsolete_, uintptr_t tileUID_, @@ -59,4 +61,5 @@ public: const MapMode mode; }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/style/calculation_parameters.hpp b/src/mbgl/style/calculation_parameters.hpp new file mode 100644 index 000000000..2afd7c4b3 --- /dev/null +++ b/src/mbgl/style/calculation_parameters.hpp @@ -0,0 +1,30 @@ +#pragma once + +#include +#include + +namespace mbgl { +namespace style { + +class CalculationParameters { +public: + explicit CalculationParameters(float z_) + : z(z_) {} + + CalculationParameters(float z_, + const TimePoint& now_, + const ZoomHistory& zoomHistory_, + const Duration& defaultFadeDuration_) + : z(z_), + now(now_), + zoomHistory(zoomHistory_), + defaultFadeDuration(defaultFadeDuration_) {} + + float z; + TimePoint now; + ZoomHistory zoomHistory; + Duration defaultFadeDuration; +}; + +} // namespace style +} // namespace mbgl diff --git a/src/mbgl/style/cascade_parameters.hpp b/src/mbgl/style/cascade_parameters.hpp new file mode 100644 index 000000000..4ad6da2ce --- /dev/null +++ b/src/mbgl/style/cascade_parameters.hpp @@ -0,0 +1,22 @@ +#pragma once + +#include +#include +#include + +#include + +namespace mbgl { +namespace style { + +class TransitionOptions; + +class CascadeParameters { +public: + std::vector classes; + TimePoint now; + TransitionOptions transition; +}; + +} // namespace style +} // namespace mbgl diff --git a/src/mbgl/style/class_dictionary.cpp b/src/mbgl/style/class_dictionary.cpp index 53ea5c148..ec06ee7d9 100644 --- a/src/mbgl/style/class_dictionary.cpp +++ b/src/mbgl/style/class_dictionary.cpp @@ -3,6 +3,7 @@ #include namespace mbgl { +namespace style { ClassDictionary::ClassDictionary() {} @@ -46,4 +47,5 @@ ClassID ClassDictionary::normalize(ClassID id) { } } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/style/class_dictionary.hpp b/src/mbgl/style/class_dictionary.hpp index 703e27b43..c95773d7c 100644 --- a/src/mbgl/style/class_dictionary.hpp +++ b/src/mbgl/style/class_dictionary.hpp @@ -5,6 +5,7 @@ #include namespace mbgl { +namespace style { enum class ClassID : uint32_t { Fallback = 0, // These values are from the fallback properties @@ -31,4 +32,5 @@ private: uint32_t offset = 0; }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/style/filter_evaluator.hpp b/src/mbgl/style/filter_evaluator.hpp index b607a0c65..e03beaa4d 100644 --- a/src/mbgl/style/filter_evaluator.hpp +++ b/src/mbgl/style/filter_evaluator.hpp @@ -6,6 +6,7 @@ #include namespace mbgl { +namespace style { class FilterEvaluator { public: @@ -159,3 +160,4 @@ private: }; } // namespace mbgl +} // namespace mbgl diff --git a/src/mbgl/layer/layer.cpp b/src/mbgl/style/layer.cpp similarity index 93% rename from src/mbgl/layer/layer.cpp rename to src/mbgl/style/layer.cpp index c26eb9a72..342699a2c 100644 --- a/src/mbgl/layer/layer.cpp +++ b/src/mbgl/style/layer.cpp @@ -1,7 +1,8 @@ #include -#include +#include namespace mbgl { +namespace style { Layer::Layer(Type type_, std::unique_ptr baseImpl_) : baseImpl(std::move(baseImpl_)), type(type_) { @@ -45,4 +46,5 @@ std::unique_ptr Layer::copy(const std::string& id, return result; } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/layer_impl.cpp b/src/mbgl/style/layer_impl.cpp similarity index 81% rename from src/mbgl/layer/layer_impl.cpp rename to src/mbgl/style/layer_impl.cpp index 315a1cb1b..74cc80d25 100644 --- a/src/mbgl/layer/layer_impl.cpp +++ b/src/mbgl/style/layer_impl.cpp @@ -1,6 +1,7 @@ -#include +#include namespace mbgl { +namespace style { const std::string& Layer::Impl::bucketName() const { return ref.empty() ? id : ref; @@ -14,4 +15,5 @@ bool Layer::Impl::needsRendering() const { return passes != RenderPass::None && visibility != VisibilityType::None; } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/layer_impl.hpp b/src/mbgl/style/layer_impl.hpp similarity index 89% rename from src/mbgl/layer/layer_impl.hpp rename to src/mbgl/style/layer_impl.hpp index 3d6b5cccf..dcd5d9906 100644 --- a/src/mbgl/layer/layer_impl.hpp +++ b/src/mbgl/style/layer_impl.hpp @@ -14,11 +14,14 @@ namespace mbgl { -class StyleCascadeParameters; -class StyleCalculationParameters; -class StyleBucketParameters; class Bucket; +namespace style { + +class CascadeParameters; +class CalculationParameters; +class BucketParameters; + /** * `Layer::Impl` contains the internal implementation of `Layer`: the details that need to be accessible to other parts * of the code, but hidden from the public API. Like `Layer`, it is an abstract base class, with derived classes for @@ -44,13 +47,13 @@ public: const std::string& bucketName() const; // Partially evaluate paint properties based on a set of classes. - virtual void cascade(const StyleCascadeParameters&) = 0; + virtual void cascade(const CascadeParameters&) = 0; // Fully evaluate cascaded paint properties based on a zoom level. // Returns true if any paint properties have active transitions. - virtual bool recalculate(const StyleCalculationParameters&) = 0; + virtual bool recalculate(const CalculationParameters&) = 0; - virtual std::unique_ptr createBucket(StyleBucketParameters&) const = 0; + virtual std::unique_ptr createBucket(BucketParameters&) const = 0; // Checks whether this layer needs to be rendered in the given render pass. bool hasRenderPass(RenderPass) const; @@ -85,4 +88,5 @@ protected: RenderPass passes = RenderPass::None; }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/background_layer.cpp b/src/mbgl/style/layers/background_layer.cpp similarity index 90% rename from src/mbgl/layer/background_layer.cpp rename to src/mbgl/style/layers/background_layer.cpp index 36cf6be07..aeb406750 100644 --- a/src/mbgl/layer/background_layer.cpp +++ b/src/mbgl/style/layers/background_layer.cpp @@ -1,9 +1,10 @@ // This file is generated. Edit scripts/generate-style-code.js, then run `make style-code`. -#include -#include +#include +#include namespace mbgl { +namespace style { BackgroundLayer::BackgroundLayer(const std::string& layerID) : Layer(Type::Background, std::make_unique()) @@ -52,4 +53,5 @@ void BackgroundLayer::setBackgroundOpacity(PropertyValue value) { impl->paint.backgroundOpacity.set(value); } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/background_layer_impl.cpp b/src/mbgl/style/layers/background_layer_impl.cpp similarity index 54% rename from src/mbgl/layer/background_layer_impl.cpp rename to src/mbgl/style/layers/background_layer_impl.cpp index 626c8fc80..0c09c5d15 100644 --- a/src/mbgl/layer/background_layer_impl.cpp +++ b/src/mbgl/style/layers/background_layer_impl.cpp @@ -1,17 +1,18 @@ -#include +#include #include namespace mbgl { +namespace style { void BackgroundLayer::Impl::parsePaints(const JSValue& layer) { paint.parse(layer); } -void BackgroundLayer::Impl::cascade(const StyleCascadeParameters& parameters) { +void BackgroundLayer::Impl::cascade(const CascadeParameters& parameters) { paint.cascade(parameters); } -bool BackgroundLayer::Impl::recalculate(const StyleCalculationParameters& parameters) { +bool BackgroundLayer::Impl::recalculate(const CalculationParameters& parameters) { bool hasTransitions = paint.recalculate(parameters); passes = paint.backgroundOpacity > 0 ? RenderPass::Translucent : RenderPass::None; @@ -19,8 +20,9 @@ bool BackgroundLayer::Impl::recalculate(const StyleCalculationParameters& parame return hasTransitions; } -std::unique_ptr BackgroundLayer::Impl::createBucket(StyleBucketParameters&) const { +std::unique_ptr BackgroundLayer::Impl::createBucket(BucketParameters&) const { return nullptr; } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/style/layers/background_layer_impl.hpp b/src/mbgl/style/layers/background_layer_impl.hpp new file mode 100644 index 000000000..19e2a062a --- /dev/null +++ b/src/mbgl/style/layers/background_layer_impl.hpp @@ -0,0 +1,26 @@ +#pragma once + +#include +#include +#include + +namespace mbgl { +namespace style { + +class BackgroundLayer::Impl : public Layer::Impl { +public: + std::unique_ptr clone() const override; + + void parseLayout(const JSValue&) override {}; + void parsePaints(const JSValue&) override; + + void cascade(const CascadeParameters&) override; + bool recalculate(const CalculationParameters&) override; + + std::unique_ptr createBucket(BucketParameters&) const override; + + BackgroundPaintProperties paint; +}; + +} // namespace style +} // namespace mbgl diff --git a/src/mbgl/layer/background_layer_properties.cpp b/src/mbgl/style/layers/background_layer_properties.cpp similarity index 73% rename from src/mbgl/layer/background_layer_properties.cpp rename to src/mbgl/style/layers/background_layer_properties.cpp index d866df7ee..a20cedf12 100644 --- a/src/mbgl/layer/background_layer_properties.cpp +++ b/src/mbgl/style/layers/background_layer_properties.cpp @@ -1,8 +1,9 @@ // This file is generated. Edit scripts/generate-style-code.js, then run `make style-code`. -#include +#include namespace mbgl { +namespace style { void BackgroundPaintProperties::parse(const JSValue& value) { backgroundColor.parse("background-color", value); @@ -10,13 +11,13 @@ void BackgroundPaintProperties::parse(const JSValue& value) { backgroundOpacity.parse("background-opacity", value); } -void BackgroundPaintProperties::cascade(const StyleCascadeParameters& parameters) { +void BackgroundPaintProperties::cascade(const CascadeParameters& parameters) { backgroundColor.cascade(parameters); backgroundPattern.cascade(parameters); backgroundOpacity.cascade(parameters); } -bool BackgroundPaintProperties::recalculate(const StyleCalculationParameters& parameters) { +bool BackgroundPaintProperties::recalculate(const CalculationParameters& parameters) { bool hasTransitions = false; hasTransitions |= backgroundColor.calculate(parameters); @@ -26,4 +27,5 @@ bool BackgroundPaintProperties::recalculate(const StyleCalculationParameters& pa return hasTransitions; } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/background_layer_properties.hpp b/src/mbgl/style/layers/background_layer_properties.hpp similarity index 74% rename from src/mbgl/layer/background_layer_properties.hpp rename to src/mbgl/style/layers/background_layer_properties.hpp index 20db9b22f..a1a1a3a5a 100644 --- a/src/mbgl/layer/background_layer_properties.hpp +++ b/src/mbgl/style/layers/background_layer_properties.hpp @@ -7,19 +7,21 @@ #include namespace mbgl { +namespace style { -class StyleCascadeParameters; -class StyleCalculationParameters; +class CascadeParameters; +class CalculationParameters; class BackgroundPaintProperties { public: void parse(const JSValue&); - void cascade(const StyleCascadeParameters&); - bool recalculate(const StyleCalculationParameters&); + void cascade(const CascadeParameters&); + bool recalculate(const CalculationParameters&); PaintProperty backgroundColor { {{ 0, 0, 0, 1 }} }; PaintProperty backgroundPattern { "" }; PaintProperty backgroundOpacity { 1 }; }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/circle_layer.cpp b/src/mbgl/style/layers/circle_layer.cpp similarity index 94% rename from src/mbgl/layer/circle_layer.cpp rename to src/mbgl/style/layers/circle_layer.cpp index efc0e9488..bdfbf629e 100644 --- a/src/mbgl/layer/circle_layer.cpp +++ b/src/mbgl/style/layers/circle_layer.cpp @@ -1,9 +1,10 @@ // This file is generated. Edit scripts/generate-style-code.js, then run `make style-code`. -#include -#include +#include +#include namespace mbgl { +namespace style { CircleLayer::CircleLayer(const std::string& layerID) : Layer(Type::Circle, std::make_unique()) @@ -100,4 +101,5 @@ void CircleLayer::setCircleTranslateAnchor(PropertyValue va impl->paint.circleTranslateAnchor.set(value); } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/circle_layer_impl.cpp b/src/mbgl/style/layers/circle_layer_impl.cpp similarity index 82% rename from src/mbgl/layer/circle_layer_impl.cpp rename to src/mbgl/style/layers/circle_layer_impl.cpp index b1ba778cd..c2efac5ce 100644 --- a/src/mbgl/layer/circle_layer_impl.cpp +++ b/src/mbgl/style/layers/circle_layer_impl.cpp @@ -1,21 +1,22 @@ -#include -#include +#include +#include #include #include #include #include namespace mbgl { +namespace style { void CircleLayer::Impl::parsePaints(const JSValue& layer) { paint.parse(layer); } -void CircleLayer::Impl::cascade(const StyleCascadeParameters& parameters) { +void CircleLayer::Impl::cascade(const CascadeParameters& parameters) { paint.cascade(parameters); } -bool CircleLayer::Impl::recalculate(const StyleCalculationParameters& parameters) { +bool CircleLayer::Impl::recalculate(const CalculationParameters& parameters) { bool hasTransitions = paint.recalculate(parameters); passes = (paint.circleRadius > 0 && paint.circleColor.value[3] > 0 && paint.circleOpacity > 0) @@ -24,7 +25,7 @@ bool CircleLayer::Impl::recalculate(const StyleCalculationParameters& parameters return hasTransitions; } -std::unique_ptr CircleLayer::Impl::createBucket(StyleBucketParameters& parameters) const { +std::unique_ptr CircleLayer::Impl::createBucket(BucketParameters& parameters) const { auto bucket = std::make_unique(parameters.mode); auto& name = bucketName(); @@ -57,4 +58,5 @@ bool CircleLayer::Impl::queryIntersectsGeometry( translatedQueryGeometry.value_or(queryGeometry), geometry, circleRadius); } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/circle_layer_impl.hpp b/src/mbgl/style/layers/circle_layer_impl.hpp similarity index 60% rename from src/mbgl/layer/circle_layer_impl.hpp rename to src/mbgl/style/layers/circle_layer_impl.hpp index 1cb19a620..463f3ca18 100644 --- a/src/mbgl/layer/circle_layer_impl.hpp +++ b/src/mbgl/style/layers/circle_layer_impl.hpp @@ -1,10 +1,11 @@ #pragma once -#include -#include -#include +#include +#include +#include namespace mbgl { +namespace style { class CircleLayer::Impl : public Layer::Impl { public: @@ -13,10 +14,10 @@ public: void parseLayout(const JSValue&) override {}; void parsePaints(const JSValue&) override; - void cascade(const StyleCascadeParameters&) override; - bool recalculate(const StyleCalculationParameters&) override; + void cascade(const CascadeParameters&) override; + bool recalculate(const CalculationParameters&) override; - std::unique_ptr createBucket(StyleBucketParameters&) const override; + std::unique_ptr createBucket(BucketParameters&) const override; float getQueryRadius() const override; bool queryIntersectsGeometry( @@ -28,4 +29,5 @@ public: CirclePaintProperties paint; }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/circle_layer_properties.cpp b/src/mbgl/style/layers/circle_layer_properties.cpp similarity index 82% rename from src/mbgl/layer/circle_layer_properties.cpp rename to src/mbgl/style/layers/circle_layer_properties.cpp index 48d99b579..b21df1e2d 100644 --- a/src/mbgl/layer/circle_layer_properties.cpp +++ b/src/mbgl/style/layers/circle_layer_properties.cpp @@ -1,8 +1,9 @@ // This file is generated. Edit scripts/generate-style-code.js, then run `make style-code`. -#include +#include namespace mbgl { +namespace style { void CirclePaintProperties::parse(const JSValue& value) { circleRadius.parse("circle-radius", value); @@ -13,7 +14,7 @@ void CirclePaintProperties::parse(const JSValue& value) { circleTranslateAnchor.parse("circle-translate-anchor", value); } -void CirclePaintProperties::cascade(const StyleCascadeParameters& parameters) { +void CirclePaintProperties::cascade(const CascadeParameters& parameters) { circleRadius.cascade(parameters); circleColor.cascade(parameters); circleBlur.cascade(parameters); @@ -22,7 +23,7 @@ void CirclePaintProperties::cascade(const StyleCascadeParameters& parameters) { circleTranslateAnchor.cascade(parameters); } -bool CirclePaintProperties::recalculate(const StyleCalculationParameters& parameters) { +bool CirclePaintProperties::recalculate(const CalculationParameters& parameters) { bool hasTransitions = false; hasTransitions |= circleRadius.calculate(parameters); @@ -35,4 +36,5 @@ bool CirclePaintProperties::recalculate(const StyleCalculationParameters& parame return hasTransitions; } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/circle_layer_properties.hpp b/src/mbgl/style/layers/circle_layer_properties.hpp similarity index 78% rename from src/mbgl/layer/circle_layer_properties.hpp rename to src/mbgl/style/layers/circle_layer_properties.hpp index a88db2760..956e423c4 100644 --- a/src/mbgl/layer/circle_layer_properties.hpp +++ b/src/mbgl/style/layers/circle_layer_properties.hpp @@ -7,15 +7,16 @@ #include namespace mbgl { +namespace style { -class StyleCascadeParameters; -class StyleCalculationParameters; +class CascadeParameters; +class CalculationParameters; class CirclePaintProperties { public: void parse(const JSValue&); - void cascade(const StyleCascadeParameters&); - bool recalculate(const StyleCalculationParameters&); + void cascade(const CascadeParameters&); + bool recalculate(const CalculationParameters&); PaintProperty circleRadius { 5 }; PaintProperty circleColor { {{ 0, 0, 0, 1 }} }; @@ -25,4 +26,5 @@ public: PaintProperty circleTranslateAnchor { TranslateAnchorType::Map }; }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/custom_layer.cpp b/src/mbgl/style/layers/custom_layer.cpp similarity index 82% rename from src/mbgl/layer/custom_layer.cpp rename to src/mbgl/style/layers/custom_layer.cpp index a33176e7f..3407a7f5a 100644 --- a/src/mbgl/layer/custom_layer.cpp +++ b/src/mbgl/style/layers/custom_layer.cpp @@ -1,7 +1,8 @@ -#include -#include +#include +#include namespace mbgl { +namespace style { CustomLayer::CustomLayer(const std::string& layerID, CustomLayerInitializeFunction init, @@ -19,4 +20,5 @@ CustomLayer::CustomLayer(const Impl& other) CustomLayer::~CustomLayer() = default; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/custom_layer_impl.cpp b/src/mbgl/style/layers/custom_layer_impl.cpp similarity index 87% rename from src/mbgl/layer/custom_layer_impl.cpp rename to src/mbgl/style/layers/custom_layer_impl.cpp index 8a08c804e..214d4ce66 100644 --- a/src/mbgl/layer/custom_layer_impl.cpp +++ b/src/mbgl/style/layers/custom_layer_impl.cpp @@ -1,8 +1,9 @@ -#include +#include #include #include namespace mbgl { +namespace style { CustomLayer::Impl::Impl(const std::string& id_, CustomLayerInitializeFunction initializeFn_, @@ -54,13 +55,14 @@ void CustomLayer::Impl::render(const TransformState& state) const { renderFn(context, parameters); } -bool CustomLayer::Impl::recalculate(const StyleCalculationParameters&) { +bool CustomLayer::Impl::recalculate(const CalculationParameters&) { passes = RenderPass::Translucent; return false; } -std::unique_ptr CustomLayer::Impl::createBucket(StyleBucketParameters&) const { +std::unique_ptr CustomLayer::Impl::createBucket(BucketParameters&) const { return nullptr; } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/custom_layer_impl.hpp b/src/mbgl/style/layers/custom_layer_impl.hpp similarity index 71% rename from src/mbgl/layer/custom_layer_impl.hpp rename to src/mbgl/style/layers/custom_layer_impl.hpp index 09709a2f9..00e576b6a 100644 --- a/src/mbgl/layer/custom_layer_impl.hpp +++ b/src/mbgl/style/layers/custom_layer_impl.hpp @@ -1,12 +1,14 @@ #pragma once -#include -#include +#include +#include namespace mbgl { class TransformState; +namespace style { + class CustomLayer::Impl : public Layer::Impl { public: Impl(const std::string& id, @@ -27,10 +29,10 @@ private: void parseLayout(const JSValue&) final {} void parsePaints(const JSValue&) final {} - void cascade(const StyleCascadeParameters&) final {} - bool recalculate(const StyleCalculationParameters&) final; + void cascade(const CascadeParameters&) final {} + bool recalculate(const CalculationParameters&) final; - std::unique_ptr createBucket(StyleBucketParameters&) const final; + std::unique_ptr createBucket(BucketParameters&) const final; CustomLayerInitializeFunction initializeFn = nullptr; CustomLayerRenderFunction renderFn = nullptr; @@ -38,4 +40,5 @@ private: void* context = nullptr; }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/fill_layer.cpp b/src/mbgl/style/layers/fill_layer.cpp similarity index 95% rename from src/mbgl/layer/fill_layer.cpp rename to src/mbgl/style/layers/fill_layer.cpp index 77efaa61a..1deaabb5e 100644 --- a/src/mbgl/layer/fill_layer.cpp +++ b/src/mbgl/style/layers/fill_layer.cpp @@ -1,9 +1,10 @@ // This file is generated. Edit scripts/generate-style-code.js, then run `make style-code`. -#include -#include +#include +#include namespace mbgl { +namespace style { FillLayer::FillLayer(const std::string& layerID) : Layer(Type::Fill, std::make_unique()) @@ -108,4 +109,5 @@ void FillLayer::setFillPattern(PropertyValue value) { impl->paint.fillPattern.set(value); } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/fill_layer_impl.cpp b/src/mbgl/style/layers/fill_layer_impl.cpp similarity index 83% rename from src/mbgl/layer/fill_layer_impl.cpp rename to src/mbgl/style/layers/fill_layer_impl.cpp index 21f482922..c18361748 100644 --- a/src/mbgl/layer/fill_layer_impl.cpp +++ b/src/mbgl/style/layers/fill_layer_impl.cpp @@ -1,21 +1,22 @@ -#include -#include +#include +#include #include #include #include #include namespace mbgl { +namespace style { void FillLayer::Impl::parsePaints(const JSValue& layer) { paint.parse(layer); } -void FillLayer::Impl::cascade(const StyleCascadeParameters& parameters) { +void FillLayer::Impl::cascade(const CascadeParameters& parameters) { paint.cascade(parameters); } -bool FillLayer::Impl::recalculate(const StyleCalculationParameters& parameters) { +bool FillLayer::Impl::recalculate(const CalculationParameters& parameters) { bool hasTransitions = paint.recalculate(parameters); passes = RenderPass::None; @@ -33,7 +34,7 @@ bool FillLayer::Impl::recalculate(const StyleCalculationParameters& parameters) return hasTransitions; } -std::unique_ptr FillLayer::Impl::createBucket(StyleBucketParameters& parameters) const { +std::unique_ptr FillLayer::Impl::createBucket(BucketParameters& parameters) const { auto bucket = std::make_unique(); auto& name = bucketName(); @@ -63,4 +64,5 @@ bool FillLayer::Impl::queryIntersectsGeometry( return util::multiPolygonIntersectsMultiPolygon(translatedQueryGeometry.value_or(queryGeometry), geometry); } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/fill_layer_impl.hpp b/src/mbgl/style/layers/fill_layer_impl.hpp similarity index 60% rename from src/mbgl/layer/fill_layer_impl.hpp rename to src/mbgl/style/layers/fill_layer_impl.hpp index 2af0d6491..a37dd76ac 100644 --- a/src/mbgl/layer/fill_layer_impl.hpp +++ b/src/mbgl/style/layers/fill_layer_impl.hpp @@ -1,10 +1,11 @@ #pragma once -#include -#include -#include +#include +#include +#include namespace mbgl { +namespace style { class FillLayer::Impl : public Layer::Impl { public: @@ -13,10 +14,10 @@ public: void parseLayout(const JSValue&) override {}; void parsePaints(const JSValue&) override; - void cascade(const StyleCascadeParameters&) override; - bool recalculate(const StyleCalculationParameters&) override; + void cascade(const CascadeParameters&) override; + bool recalculate(const CalculationParameters&) override; - std::unique_ptr createBucket(StyleBucketParameters&) const override; + std::unique_ptr createBucket(BucketParameters&) const override; float getQueryRadius() const override; bool queryIntersectsGeometry( @@ -28,4 +29,5 @@ public: FillPaintProperties paint; }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/fill_layer_properties.cpp b/src/mbgl/style/layers/fill_layer_properties.cpp similarity index 83% rename from src/mbgl/layer/fill_layer_properties.cpp rename to src/mbgl/style/layers/fill_layer_properties.cpp index e0d4f10bc..a4714689f 100644 --- a/src/mbgl/layer/fill_layer_properties.cpp +++ b/src/mbgl/style/layers/fill_layer_properties.cpp @@ -1,8 +1,9 @@ // This file is generated. Edit scripts/generate-style-code.js, then run `make style-code`. -#include +#include namespace mbgl { +namespace style { void FillPaintProperties::parse(const JSValue& value) { fillAntialias.parse("fill-antialias", value); @@ -14,7 +15,7 @@ void FillPaintProperties::parse(const JSValue& value) { fillPattern.parse("fill-pattern", value); } -void FillPaintProperties::cascade(const StyleCascadeParameters& parameters) { +void FillPaintProperties::cascade(const CascadeParameters& parameters) { fillAntialias.cascade(parameters); fillOpacity.cascade(parameters); fillColor.cascade(parameters); @@ -24,7 +25,7 @@ void FillPaintProperties::cascade(const StyleCascadeParameters& parameters) { fillPattern.cascade(parameters); } -bool FillPaintProperties::recalculate(const StyleCalculationParameters& parameters) { +bool FillPaintProperties::recalculate(const CalculationParameters& parameters) { bool hasTransitions = false; hasTransitions |= fillAntialias.calculate(parameters); @@ -38,4 +39,5 @@ bool FillPaintProperties::recalculate(const StyleCalculationParameters& paramete return hasTransitions; } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/fill_layer_properties.hpp b/src/mbgl/style/layers/fill_layer_properties.hpp similarity index 80% rename from src/mbgl/layer/fill_layer_properties.hpp rename to src/mbgl/style/layers/fill_layer_properties.hpp index 2ae67ef0a..43396f45d 100644 --- a/src/mbgl/layer/fill_layer_properties.hpp +++ b/src/mbgl/style/layers/fill_layer_properties.hpp @@ -7,15 +7,16 @@ #include namespace mbgl { +namespace style { -class StyleCascadeParameters; -class StyleCalculationParameters; +class CascadeParameters; +class CalculationParameters; class FillPaintProperties { public: void parse(const JSValue&); - void cascade(const StyleCascadeParameters&); - bool recalculate(const StyleCalculationParameters&); + void cascade(const CascadeParameters&); + bool recalculate(const CalculationParameters&); PaintProperty fillAntialias { true }; PaintProperty fillOpacity { 1 }; @@ -26,4 +27,5 @@ public: PaintProperty fillPattern { "" }; }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/line_layer.cpp b/src/mbgl/style/layers/line_layer.cpp similarity index 96% rename from src/mbgl/layer/line_layer.cpp rename to src/mbgl/style/layers/line_layer.cpp index e1a7d813a..abe326a67 100644 --- a/src/mbgl/layer/line_layer.cpp +++ b/src/mbgl/style/layers/line_layer.cpp @@ -1,9 +1,10 @@ // This file is generated. Edit scripts/generate-style-code.js, then run `make style-code`. -#include -#include +#include +#include namespace mbgl { +namespace style { LineLayer::LineLayer(const std::string& layerID) : Layer(Type::Line, std::make_unique()) @@ -160,4 +161,5 @@ void LineLayer::setLinePattern(PropertyValue value) { impl->paint.linePattern.set(value); } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/line_layer_impl.cpp b/src/mbgl/style/layers/line_layer_impl.cpp similarity index 87% rename from src/mbgl/layer/line_layer_impl.cpp rename to src/mbgl/style/layers/line_layer_impl.cpp index aee168704..b7ee9dc5b 100644 --- a/src/mbgl/layer/line_layer_impl.cpp +++ b/src/mbgl/style/layers/line_layer_impl.cpp @@ -1,11 +1,12 @@ -#include -#include +#include +#include #include #include #include #include namespace mbgl { +namespace style { void LineLayer::Impl::parseLayout(const JSValue& value) { layout.parse(value); @@ -15,13 +16,13 @@ void LineLayer::Impl::parsePaints(const JSValue& layer) { paint.parse(layer); } -void LineLayer::Impl::cascade(const StyleCascadeParameters& parameters) { +void LineLayer::Impl::cascade(const CascadeParameters& parameters) { paint.cascade(parameters); } -bool LineLayer::Impl::recalculate(const StyleCalculationParameters& parameters) { +bool LineLayer::Impl::recalculate(const CalculationParameters& parameters) { // for scaling dasharrays - StyleCalculationParameters dashArrayParams = parameters; + CalculationParameters dashArrayParams = parameters; dashArrayParams.z = std::floor(dashArrayParams.z); paint.lineWidth.calculate(dashArrayParams); dashLineWidth = paint.lineWidth; @@ -34,11 +35,11 @@ bool LineLayer::Impl::recalculate(const StyleCalculationParameters& parameters) return hasTransitions; } -std::unique_ptr LineLayer::Impl::createBucket(StyleBucketParameters& parameters) const { +std::unique_ptr LineLayer::Impl::createBucket(BucketParameters& parameters) const { auto bucket = std::make_unique(parameters.tileID.overscaleFactor()); bucket->layout = layout; - bucket->layout.recalculate(StyleCalculationParameters(parameters.tileID.overscaledZ)); + bucket->layout.recalculate(CalculationParameters(parameters.tileID.overscaledZ)); auto& name = bucketName(); parameters.eachFilteredFeature(filter, [&] (const auto& feature, std::size_t index, const std::string& layerName) { @@ -111,4 +112,5 @@ bool LineLayer::Impl::queryIntersectsGeometry( halfWidth); } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/line_layer_impl.hpp b/src/mbgl/style/layers/line_layer_impl.hpp similarity index 65% rename from src/mbgl/layer/line_layer_impl.hpp rename to src/mbgl/style/layers/line_layer_impl.hpp index b602df52f..3356dc2ce 100644 --- a/src/mbgl/layer/line_layer_impl.hpp +++ b/src/mbgl/style/layers/line_layer_impl.hpp @@ -1,10 +1,11 @@ #pragma once -#include -#include -#include +#include +#include +#include namespace mbgl { +namespace style { class LineLayer::Impl : public Layer::Impl { public: @@ -13,10 +14,10 @@ public: void parseLayout(const JSValue&) override; void parsePaints(const JSValue&) override; - void cascade(const StyleCascadeParameters&) override; - bool recalculate(const StyleCalculationParameters&) override; + void cascade(const CascadeParameters&) override; + bool recalculate(const CalculationParameters&) override; - std::unique_ptr createBucket(StyleBucketParameters&) const override; + std::unique_ptr createBucket(BucketParameters&) const override; float getQueryRadius() const override; bool queryIntersectsGeometry( @@ -35,4 +36,5 @@ private: float getLineWidth() const; }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/line_layer_properties.cpp b/src/mbgl/style/layers/line_layer_properties.cpp similarity index 86% rename from src/mbgl/layer/line_layer_properties.cpp rename to src/mbgl/style/layers/line_layer_properties.cpp index 4941a1ecd..7c74f6de0 100644 --- a/src/mbgl/layer/line_layer_properties.cpp +++ b/src/mbgl/style/layers/line_layer_properties.cpp @@ -1,8 +1,9 @@ // This file is generated. Edit scripts/generate-style-code.js, then run `make style-code`. -#include +#include namespace mbgl { +namespace style { void LineLayoutProperties::parse(const JSValue& value) { lineCap.parse("line-cap", value); @@ -11,7 +12,7 @@ void LineLayoutProperties::parse(const JSValue& value) { lineRoundLimit.parse("line-round-limit", value); } -void LineLayoutProperties::recalculate(const StyleCalculationParameters& parameters) { +void LineLayoutProperties::recalculate(const CalculationParameters& parameters) { lineCap.calculate(parameters); lineJoin.calculate(parameters); lineMiterLimit.calculate(parameters); @@ -31,7 +32,7 @@ void LinePaintProperties::parse(const JSValue& value) { linePattern.parse("line-pattern", value); } -void LinePaintProperties::cascade(const StyleCascadeParameters& parameters) { +void LinePaintProperties::cascade(const CascadeParameters& parameters) { lineOpacity.cascade(parameters); lineColor.cascade(parameters); lineTranslate.cascade(parameters); @@ -44,7 +45,7 @@ void LinePaintProperties::cascade(const StyleCascadeParameters& parameters) { linePattern.cascade(parameters); } -bool LinePaintProperties::recalculate(const StyleCalculationParameters& parameters) { +bool LinePaintProperties::recalculate(const CalculationParameters& parameters) { bool hasTransitions = false; hasTransitions |= lineOpacity.calculate(parameters); @@ -61,4 +62,5 @@ bool LinePaintProperties::recalculate(const StyleCalculationParameters& paramete return hasTransitions; } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/line_layer_properties.hpp b/src/mbgl/style/layers/line_layer_properties.hpp similarity index 83% rename from src/mbgl/layer/line_layer_properties.hpp rename to src/mbgl/style/layers/line_layer_properties.hpp index f4dad055b..e0c63b516 100644 --- a/src/mbgl/layer/line_layer_properties.hpp +++ b/src/mbgl/style/layers/line_layer_properties.hpp @@ -7,14 +7,15 @@ #include namespace mbgl { +namespace style { -class StyleCascadeParameters; -class StyleCalculationParameters; +class CascadeParameters; +class CalculationParameters; class LineLayoutProperties { public: void parse(const JSValue&); - void recalculate(const StyleCalculationParameters&); + void recalculate(const CalculationParameters&); LayoutProperty lineCap { LineCapType::Butt }; LayoutProperty lineJoin { LineJoinType::Miter }; @@ -25,8 +26,8 @@ public: class LinePaintProperties { public: void parse(const JSValue&); - void cascade(const StyleCascadeParameters&); - bool recalculate(const StyleCalculationParameters&); + void cascade(const CascadeParameters&); + bool recalculate(const CalculationParameters&); PaintProperty lineOpacity { 1 }; PaintProperty lineColor { {{ 0, 0, 0, 1 }} }; @@ -40,4 +41,5 @@ public: PaintProperty linePattern { "" }; }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/raster_layer.cpp b/src/mbgl/style/layers/raster_layer.cpp similarity index 94% rename from src/mbgl/layer/raster_layer.cpp rename to src/mbgl/style/layers/raster_layer.cpp index 661c44b7d..fb7f08fbe 100644 --- a/src/mbgl/layer/raster_layer.cpp +++ b/src/mbgl/style/layers/raster_layer.cpp @@ -1,9 +1,10 @@ // This file is generated. Edit scripts/generate-style-code.js, then run `make style-code`. -#include -#include +#include +#include namespace mbgl { +namespace style { RasterLayer::RasterLayer(const std::string& layerID) : Layer(Type::Raster, std::make_unique()) @@ -93,4 +94,5 @@ void RasterLayer::setRasterFadeDuration(PropertyValue value) { impl->paint.rasterFadeDuration.set(value); } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/raster_layer_impl.cpp b/src/mbgl/style/layers/raster_layer_impl.cpp similarity index 54% rename from src/mbgl/layer/raster_layer_impl.cpp rename to src/mbgl/style/layers/raster_layer_impl.cpp index f44a424f9..4854ec041 100644 --- a/src/mbgl/layer/raster_layer_impl.cpp +++ b/src/mbgl/style/layers/raster_layer_impl.cpp @@ -1,17 +1,18 @@ -#include +#include #include namespace mbgl { +namespace style { void RasterLayer::Impl::parsePaints(const JSValue& layer) { paint.parse(layer); } -void RasterLayer::Impl::cascade(const StyleCascadeParameters& parameters) { +void RasterLayer::Impl::cascade(const CascadeParameters& parameters) { paint.cascade(parameters); } -bool RasterLayer::Impl::recalculate(const StyleCalculationParameters& parameters) { +bool RasterLayer::Impl::recalculate(const CalculationParameters& parameters) { bool hasTransitions = paint.recalculate(parameters); passes = paint.rasterOpacity > 0 ? RenderPass::Translucent : RenderPass::None; @@ -19,8 +20,9 @@ bool RasterLayer::Impl::recalculate(const StyleCalculationParameters& parameters return hasTransitions; } -std::unique_ptr RasterLayer::Impl::createBucket(StyleBucketParameters&) const { +std::unique_ptr RasterLayer::Impl::createBucket(BucketParameters&) const { return nullptr; } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/style/layers/raster_layer_impl.hpp b/src/mbgl/style/layers/raster_layer_impl.hpp new file mode 100644 index 000000000..6812b469a --- /dev/null +++ b/src/mbgl/style/layers/raster_layer_impl.hpp @@ -0,0 +1,26 @@ +#pragma once + +#include +#include +#include + +namespace mbgl { +namespace style { + +class RasterLayer::Impl : public Layer::Impl { +public: + std::unique_ptr clone() const override; + + void parseLayout(const JSValue&) override {}; + void parsePaints(const JSValue&) override; + + void cascade(const CascadeParameters&) override; + bool recalculate(const CalculationParameters&) override; + + std::unique_ptr createBucket(BucketParameters&) const override; + + RasterPaintProperties paint; +}; + +} // namespace style +} // namespace mbgl diff --git a/src/mbgl/layer/raster_layer_properties.cpp b/src/mbgl/style/layers/raster_layer_properties.cpp similarity index 84% rename from src/mbgl/layer/raster_layer_properties.cpp rename to src/mbgl/style/layers/raster_layer_properties.cpp index 898188bc8..0e6afc5e9 100644 --- a/src/mbgl/layer/raster_layer_properties.cpp +++ b/src/mbgl/style/layers/raster_layer_properties.cpp @@ -1,8 +1,9 @@ // This file is generated. Edit scripts/generate-style-code.js, then run `make style-code`. -#include +#include namespace mbgl { +namespace style { void RasterPaintProperties::parse(const JSValue& value) { rasterOpacity.parse("raster-opacity", value); @@ -14,7 +15,7 @@ void RasterPaintProperties::parse(const JSValue& value) { rasterFadeDuration.parse("raster-fade-duration", value); } -void RasterPaintProperties::cascade(const StyleCascadeParameters& parameters) { +void RasterPaintProperties::cascade(const CascadeParameters& parameters) { rasterOpacity.cascade(parameters); rasterHueRotate.cascade(parameters); rasterBrightnessMin.cascade(parameters); @@ -24,7 +25,7 @@ void RasterPaintProperties::cascade(const StyleCascadeParameters& parameters) { rasterFadeDuration.cascade(parameters); } -bool RasterPaintProperties::recalculate(const StyleCalculationParameters& parameters) { +bool RasterPaintProperties::recalculate(const CalculationParameters& parameters) { bool hasTransitions = false; hasTransitions |= rasterOpacity.calculate(parameters); @@ -38,4 +39,5 @@ bool RasterPaintProperties::recalculate(const StyleCalculationParameters& parame return hasTransitions; } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/raster_layer_properties.hpp b/src/mbgl/style/layers/raster_layer_properties.hpp similarity index 78% rename from src/mbgl/layer/raster_layer_properties.hpp rename to src/mbgl/style/layers/raster_layer_properties.hpp index 46bd00ff2..049da8731 100644 --- a/src/mbgl/layer/raster_layer_properties.hpp +++ b/src/mbgl/style/layers/raster_layer_properties.hpp @@ -7,15 +7,16 @@ #include namespace mbgl { +namespace style { -class StyleCascadeParameters; -class StyleCalculationParameters; +class CascadeParameters; +class CalculationParameters; class RasterPaintProperties { public: void parse(const JSValue&); - void cascade(const StyleCascadeParameters&); - bool recalculate(const StyleCalculationParameters&); + void cascade(const CascadeParameters&); + bool recalculate(const CalculationParameters&); PaintProperty rasterOpacity { 1 }; PaintProperty rasterHueRotate { 0 }; @@ -26,4 +27,5 @@ public: PaintProperty rasterFadeDuration { 300 }; }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/symbol_layer.cpp b/src/mbgl/style/layers/symbol_layer.cpp similarity index 98% rename from src/mbgl/layer/symbol_layer.cpp rename to src/mbgl/style/layers/symbol_layer.cpp index 66d018b58..d7d6a02ac 100644 --- a/src/mbgl/layer/symbol_layer.cpp +++ b/src/mbgl/style/layers/symbol_layer.cpp @@ -1,9 +1,10 @@ // This file is generated. Edit scripts/generate-style-code.js, then run `make style-code`. -#include -#include +#include +#include namespace mbgl { +namespace style { SymbolLayer::SymbolLayer(const std::string& layerID) : Layer(Type::Symbol, std::make_unique()) @@ -381,4 +382,5 @@ void SymbolLayer::setTextTranslateAnchor(PropertyValue valu impl->paint.textTranslateAnchor.set(value); } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/symbol_layer_impl.cpp b/src/mbgl/style/layers/symbol_layer_impl.cpp similarity index 77% rename from src/mbgl/layer/symbol_layer_impl.cpp rename to src/mbgl/style/layers/symbol_layer_impl.cpp index 3a0e0dcec..a4dc264ed 100644 --- a/src/mbgl/layer/symbol_layer_impl.cpp +++ b/src/mbgl/style/layers/symbol_layer_impl.cpp @@ -1,8 +1,9 @@ -#include +#include #include -#include +#include namespace mbgl { +namespace style { void SymbolLayer::Impl::parseLayout(const JSValue& value) { layout.parse(value); @@ -12,11 +13,11 @@ void SymbolLayer::Impl::parsePaints(const JSValue& layer) { paint.parse(layer); } -void SymbolLayer::Impl::cascade(const StyleCascadeParameters& parameters) { +void SymbolLayer::Impl::cascade(const CascadeParameters& parameters) { paint.cascade(parameters); } -bool SymbolLayer::Impl::recalculate(const StyleCalculationParameters& parameters) { +bool SymbolLayer::Impl::recalculate(const CalculationParameters& parameters) { bool hasTransitions = paint.recalculate(parameters); // text-size and icon-size are layout properties but they also need to be evaluated as paint properties: @@ -32,7 +33,7 @@ bool SymbolLayer::Impl::recalculate(const StyleCalculationParameters& parameters return hasTransitions; } -std::unique_ptr SymbolLayer::Impl::createBucket(StyleBucketParameters& parameters) const { +std::unique_ptr SymbolLayer::Impl::createBucket(BucketParameters& parameters) const { auto bucket = std::make_unique(parameters.tileID.overscaleFactor(), parameters.tileID.overscaledZ, parameters.mode, @@ -41,7 +42,7 @@ std::unique_ptr SymbolLayer::Impl::createBucket(StyleBucketParameters& p bucket->layout = layout; - StyleCalculationParameters p(parameters.tileID.overscaledZ); + CalculationParameters p(parameters.tileID.overscaledZ); bucket->layout.symbolPlacement.calculate(p); if (bucket->layout.symbolPlacement.value == SymbolPlacementType::Line) { bucket->layout.iconRotationAlignment.value = RotationAlignmentType::Map; @@ -50,12 +51,12 @@ std::unique_ptr SymbolLayer::Impl::createBucket(StyleBucketParameters& p bucket->layout.recalculate(p); - bucket->layout.iconSize.calculate(StyleCalculationParameters(18)); - bucket->layout.textSize.calculate(StyleCalculationParameters(18)); + bucket->layout.iconSize.calculate(CalculationParameters(18)); + bucket->layout.textSize.calculate(CalculationParameters(18)); bucket->iconMaxSize = bucket->layout.iconSize; bucket->textMaxSize = bucket->layout.textSize; - bucket->layout.iconSize.calculate(StyleCalculationParameters(p.z + 1)); - bucket->layout.textSize.calculate(StyleCalculationParameters(p.z + 1)); + bucket->layout.iconSize.calculate(CalculationParameters(p.z + 1)); + bucket->layout.textSize.calculate(CalculationParameters(p.z + 1)); bucket->parseFeatures(parameters.layer, filter); @@ -77,4 +78,5 @@ std::unique_ptr SymbolLayer::Impl::createBucket(StyleBucketParameters& p return std::move(bucket); } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/symbol_layer_impl.hpp b/src/mbgl/style/layers/symbol_layer_impl.hpp similarity index 52% rename from src/mbgl/layer/symbol_layer_impl.hpp rename to src/mbgl/style/layers/symbol_layer_impl.hpp index 46503ab91..9727cc648 100644 --- a/src/mbgl/layer/symbol_layer_impl.hpp +++ b/src/mbgl/style/layers/symbol_layer_impl.hpp @@ -1,14 +1,15 @@ -#ifndef MBGL_SYMBOL_LAYER -#define MBGL_SYMBOL_LAYER +#pragma once -#include -#include -#include +#include +#include +#include namespace mbgl { class SpriteAtlas; +namespace style { + class SymbolLayer::Impl : public Layer::Impl { public: std::unique_ptr clone() const override; @@ -16,10 +17,10 @@ public: void parseLayout(const JSValue&) override; void parsePaints(const JSValue&) override; - void cascade(const StyleCascadeParameters&) override; - bool recalculate(const StyleCalculationParameters&) override; + void cascade(const CascadeParameters&) override; + bool recalculate(const CalculationParameters&) override; - std::unique_ptr createBucket(StyleBucketParameters&) const override; + std::unique_ptr createBucket(BucketParameters&) const override; SymbolLayoutProperties layout; SymbolPaintProperties paint; @@ -30,6 +31,5 @@ public: SpriteAtlas* spriteAtlas = nullptr; }; +} // namespace style } // namespace mbgl - -#endif diff --git a/src/mbgl/layer/symbol_layer_properties.cpp b/src/mbgl/style/layers/symbol_layer_properties.cpp similarity index 93% rename from src/mbgl/layer/symbol_layer_properties.cpp rename to src/mbgl/style/layers/symbol_layer_properties.cpp index 4b9e9a5fb..ce16ae2e5 100644 --- a/src/mbgl/layer/symbol_layer_properties.cpp +++ b/src/mbgl/style/layers/symbol_layer_properties.cpp @@ -1,8 +1,9 @@ // This file is generated. Edit scripts/generate-style-code.js, then run `make style-code`. -#include +#include namespace mbgl { +namespace style { void SymbolLayoutProperties::parse(const JSValue& value) { symbolPlacement.parse("symbol-placement", value); @@ -38,7 +39,7 @@ void SymbolLayoutProperties::parse(const JSValue& value) { textOptional.parse("text-optional", value); } -void SymbolLayoutProperties::recalculate(const StyleCalculationParameters& parameters) { +void SymbolLayoutProperties::recalculate(const CalculationParameters& parameters) { symbolPlacement.calculate(parameters); symbolSpacing.calculate(parameters); symbolAvoidEdges.calculate(parameters); @@ -89,7 +90,7 @@ void SymbolPaintProperties::parse(const JSValue& value) { textTranslateAnchor.parse("text-translate-anchor", value); } -void SymbolPaintProperties::cascade(const StyleCascadeParameters& parameters) { +void SymbolPaintProperties::cascade(const CascadeParameters& parameters) { iconOpacity.cascade(parameters); iconColor.cascade(parameters); iconHaloColor.cascade(parameters); @@ -106,7 +107,7 @@ void SymbolPaintProperties::cascade(const StyleCascadeParameters& parameters) { textTranslateAnchor.cascade(parameters); } -bool SymbolPaintProperties::recalculate(const StyleCalculationParameters& parameters) { +bool SymbolPaintProperties::recalculate(const CalculationParameters& parameters) { bool hasTransitions = false; hasTransitions |= iconOpacity.calculate(parameters); @@ -127,4 +128,5 @@ bool SymbolPaintProperties::recalculate(const StyleCalculationParameters& parame return hasTransitions; } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/layer/symbol_layer_properties.hpp b/src/mbgl/style/layers/symbol_layer_properties.hpp similarity index 92% rename from src/mbgl/layer/symbol_layer_properties.hpp rename to src/mbgl/style/layers/symbol_layer_properties.hpp index ccbecef00..38455b5ca 100644 --- a/src/mbgl/layer/symbol_layer_properties.hpp +++ b/src/mbgl/style/layers/symbol_layer_properties.hpp @@ -7,14 +7,15 @@ #include namespace mbgl { +namespace style { -class StyleCascadeParameters; -class StyleCalculationParameters; +class CascadeParameters; +class CalculationParameters; class SymbolLayoutProperties { public: void parse(const JSValue&); - void recalculate(const StyleCalculationParameters&); + void recalculate(const CalculationParameters&); LayoutProperty symbolPlacement { SymbolPlacementType::Point }; LayoutProperty symbolSpacing { 250 }; @@ -52,8 +53,8 @@ public: class SymbolPaintProperties { public: void parse(const JSValue&); - void cascade(const StyleCascadeParameters&); - bool recalculate(const StyleCalculationParameters&); + void cascade(const CascadeParameters&); + bool recalculate(const CalculationParameters&); PaintProperty iconOpacity { 1 }; PaintProperty iconColor { {{ 0, 0, 0, 1 }} }; @@ -71,4 +72,5 @@ public: PaintProperty textTranslateAnchor { TranslateAnchorType::Map }; }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/style/layout_property.hpp b/src/mbgl/style/layout_property.hpp index b4857aeae..f5045b47f 100644 --- a/src/mbgl/style/layout_property.hpp +++ b/src/mbgl/style/layout_property.hpp @@ -8,6 +8,7 @@ #include namespace mbgl { +namespace style { template class LayoutProperty { @@ -30,7 +31,7 @@ public: } } - void calculate(const StyleCalculationParameters& parameters) { + void calculate(const CalculationParameters& parameters) { if (currentValue) { PropertyEvaluator evaluator(parameters, defaultValue); value = PropertyValue::visit(currentValue, evaluator); @@ -46,4 +47,5 @@ private: PropertyValue currentValue; }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/style/style_observer.hpp b/src/mbgl/style/observer.hpp similarity index 59% rename from src/mbgl/style/style_observer.hpp rename to src/mbgl/style/observer.hpp index 9e2c946f7..c19f58904 100644 --- a/src/mbgl/style/style_observer.hpp +++ b/src/mbgl/style/observer.hpp @@ -2,22 +2,24 @@ #include #include -#include +#include namespace mbgl { +namespace style { -class StyleObserver : public GlyphStoreObserver, public SpriteStoreObserver, public SourceObserver { +class Observer : public GlyphStoreObserver, + public SpriteStoreObserver, + public SourceObserver { public: - virtual ~StyleObserver() = default; - /** * In addition to the individual glyph, sprite, and source events, the * following "rollup" events are provided for convenience. They are * strictly additive; e.g. when a source is loaded, both `onSourceLoaded` * and `onResourceLoaded` will be called. */ - virtual void onResourceLoaded() {} - virtual void onResourceError(std::exception_ptr) {} + virtual void onResourceLoaded() {}; + virtual void onResourceError(std::exception_ptr) {}; }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/style/paint_property.hpp b/src/mbgl/style/paint_property.hpp index 8428a9053..62fd59684 100644 --- a/src/mbgl/style/paint_property.hpp +++ b/src/mbgl/style/paint_property.hpp @@ -3,9 +3,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include #include #include #include @@ -14,6 +14,7 @@ #include namespace mbgl { +namespace style { template class Evaluator = PropertyEvaluator> class PaintProperty { @@ -62,14 +63,14 @@ public: } if (it->value.HasMember(transitionName.c_str())) { - if (auto v = parsePropertyTransition(name, it->value[transitionName.c_str()])) { + if (auto v = parseTransitionOptions(name, it->value[transitionName.c_str()])) { transitions.emplace(classID, *v); } } } } - void cascade(const StyleCascadeParameters& params) { + void cascade(const CascadeParameters& params) { const bool overrideTransition = !params.transition.delay && !params.transition.duration; Duration delay = params.transition.delay.value_or(Duration::zero()); Duration duration = params.transition.duration.value_or(Duration::zero()); @@ -79,7 +80,7 @@ public: continue; if (overrideTransition && transitions.find(classID) != transitions.end()) { - const PropertyTransition& transition = transitions[classID]; + const TransitionOptions& transition = transitions[classID]; if (transition.delay) delay = *transition.delay; if (transition.duration) duration = *transition.duration; } @@ -95,7 +96,7 @@ public: assert(cascaded); } - bool calculate(const StyleCalculationParameters& parameters) { + bool calculate(const CalculationParameters& parameters) { assert(cascaded); Evaluator evaluator(parameters, defaultValue); value = cascaded->calculate(evaluator, parameters.now); @@ -109,7 +110,7 @@ public: private: T defaultValue; std::map> values; - std::map transitions; + std::map transitions; struct CascadedValue { CascadedValue(std::unique_ptr prior_, @@ -147,4 +148,5 @@ private: std::unique_ptr cascaded; }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/style/style_parser.cpp b/src/mbgl/style/parser.cpp similarity index 91% rename from src/mbgl/style/style_parser.cpp rename to src/mbgl/style/parser.cpp index 95ab36498..28a7d2e81 100644 --- a/src/mbgl/style/style_parser.cpp +++ b/src/mbgl/style/parser.cpp @@ -1,11 +1,11 @@ -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include @@ -23,7 +23,7 @@ #include namespace mbgl { - +namespace style { namespace { @@ -102,9 +102,9 @@ void parseTileJSONMember(const JSValue& value, std::array& target, co } // end namespace -StyleParser::~StyleParser() = default; +Parser::~Parser() = default; -void StyleParser::parse(const std::string& json) { +void Parser::parse(const std::string& json) { rapidjson::GenericDocument, rapidjson::CrtAllocator> document; document.Parse<0>(json.c_str()); @@ -143,7 +143,7 @@ void StyleParser::parse(const std::string& json) { } } -void StyleParser::parseSources(const JSValue& value) { +void Parser::parseSources(const JSValue& value) { if (!value.IsObject()) { Log::Warning(Event::ParseStyle, "sources must be an object"); return; @@ -174,7 +174,7 @@ void StyleParser::parseSources(const JSValue& value) { uint16_t tileSize = util::tileSize; - std::unique_ptr info; + std::unique_ptr tileset; std::unique_ptr geojsonvt; switch (type) { @@ -200,12 +200,12 @@ void StyleParser::parseSources(const JSValue& value) { continue; } } else { - info = parseTileJSON(sourceVal); + tileset = parseTileJSON(sourceVal); } break; case SourceType::GeoJSON: - info = std::make_unique(); + tileset = std::make_unique(); // We should probably split this up to have URLs in the url property, and actual data // in the data property. Until then, we're going to detect the content based on the @@ -218,7 +218,7 @@ void StyleParser::parseSources(const JSValue& value) { } else if (dataVal.IsObject()) { // We need to parse dataVal as a GeoJSON object geojsonvt = parseGeoJSON(dataVal); - info->maxZoom = geojsonvt->options.maxZoom; + tileset->maxZoom = geojsonvt->options.maxZoom; } else { Log::Error(Event::ParseStyle, "GeoJSON data must be a URL or an object"); continue; @@ -236,14 +236,14 @@ void StyleParser::parseSources(const JSValue& value) { } const std::string id { nameVal.GetString(), nameVal.GetStringLength() }; - std::unique_ptr source = std::make_unique(type, id, url, tileSize, std::move(info), std::move(geojsonvt)); + std::unique_ptr source = std::make_unique(type, id, url, tileSize, std::move(tileset), std::move(geojsonvt)); sourcesMap.emplace(id, source.get()); sources.emplace_back(std::move(source)); } } -std::unique_ptr StyleParser::parseGeoJSON(const JSValue& value) { +std::unique_ptr parseGeoJSON(const JSValue& value) { using namespace mapbox::geojsonvt; Options options; @@ -260,7 +260,7 @@ std::unique_ptr StyleParser::parseGeoJSON(const JS } } -std::unique_ptr StyleParser::parseTileJSON(const std::string& json, const std::string& sourceURL, SourceType type, uint16_t tileSize) { +std::unique_ptr parseTileJSON(const std::string& json, const std::string& sourceURL, SourceType type, uint16_t tileSize) { rapidjson::GenericDocument, rapidjson::CrtAllocator> document; document.Parse<0>(json.c_str()); @@ -270,7 +270,7 @@ std::unique_ptr StyleParser::parseTileJSON(const std::string& json, throw std::runtime_error(message.str()); } - std::unique_ptr result = StyleParser::parseTileJSON(document); + std::unique_ptr result = parseTileJSON(document); // TODO: Remove this hack by delivering proper URLs in the TileJSON to begin with. if (util::mapbox::isMapboxURL(sourceURL)) { @@ -282,24 +282,24 @@ std::unique_ptr StyleParser::parseTileJSON(const std::string& json, return result; } -std::unique_ptr StyleParser::parseTileJSON(const JSValue& value) { - auto info = std::make_unique(); - parseTileJSONMember(value, info->tiles, "tiles"); - parseTileJSONMember(value, info->minZoom, "minzoom"); - parseTileJSONMember(value, info->maxZoom, "maxzoom"); - parseTileJSONMember(value, info->attribution, "attribution"); +std::unique_ptr parseTileJSON(const JSValue& value) { + auto tileset = std::make_unique(); + parseTileJSONMember(value, tileset->tiles, "tiles"); + parseTileJSONMember(value, tileset->minZoom, "minzoom"); + parseTileJSONMember(value, tileset->maxZoom, "maxzoom"); + parseTileJSONMember(value, tileset->attribution, "attribution"); std::array array; parseTileJSONMember(value, array, "center"); - info->center = { array[0], array[1] }; - info->zoom = array[2]; + tileset->center = { array[0], array[1] }; + tileset->zoom = array[2]; parseTileJSONMember(value, array, "bounds"); - info->bounds = LatLngBounds::hull({ array[0], array[1] }, { array[2], array[3] }); + tileset->bounds = LatLngBounds::hull({ array[0], array[1] }, { array[2], array[3] }); - return info; + return tileset; } -void StyleParser::parseLayers(const JSValue& value) { +void Parser::parseLayers(const JSValue& value) { std::vector ids; if (!value.IsArray()) { @@ -353,7 +353,7 @@ void StyleParser::parseLayers(const JSValue& value) { } } -void StyleParser::parseLayer(const std::string& id, const JSValue& value, std::unique_ptr& layer) { +void Parser::parseLayer(const std::string& id, const JSValue& value, std::unique_ptr& layer) { if (layer) { // Skip parsing this again. We already have a valid layer definition. return; @@ -486,7 +486,7 @@ MBGL_DEFINE_ENUM_CLASS(VisibilityTypeClass, VisibilityType, { { VisibilityType::None, "none" }, }); -void StyleParser::parseVisibility(Layer& layer, const JSValue& value) { +void Parser::parseVisibility(Layer& layer, const JSValue& value) { Layer::Impl& impl = *layer.baseImpl; if (!value.HasMember("visibility")) { return; @@ -664,7 +664,7 @@ Filter parseFilter(const JSValue& value) { } } -std::vector StyleParser::fontStacks() const { +std::vector Parser::fontStacks() const { std::set result; for (const auto& layer : layers) { @@ -685,4 +685,5 @@ std::vector StyleParser::fontStacks() const { return std::vector(result.begin(), result.end()); } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/style/style_parser.hpp b/src/mbgl/style/parser.hpp similarity index 74% rename from src/mbgl/style/style_parser.hpp rename to src/mbgl/style/parser.hpp index b5445bbfb..ea821fabd 100644 --- a/src/mbgl/style/style_parser.hpp +++ b/src/mbgl/style/parser.hpp @@ -1,10 +1,11 @@ #pragma once -#include #include -#include +#include #include + #include +#include #include #include @@ -13,12 +14,18 @@ #include namespace mbgl { +namespace style { + +std::unique_ptr parseTileJSON(const std::string& json, const std::string& sourceURL, SourceType, uint16_t tileSize); +std::unique_ptr parseTileJSON(const JSValue&); + +std::unique_ptr parseGeoJSON(const JSValue&); Filter parseFilter(const JSValue&); -class StyleParser { +class Parser { public: - ~StyleParser(); + ~Parser(); void parse(const std::string&); @@ -31,11 +38,6 @@ public: // Statically evaluate layer properties to determine what font stacks are used. std::vector fontStacks() const; - static std::unique_ptr parseTileJSON(const std::string& json, const std::string& sourceURL, SourceType, uint16_t tileSize); - static std::unique_ptr parseTileJSON(const JSValue&); - - static std::unique_ptr parseGeoJSON(const JSValue&); - private: void parseSources(const JSValue&); void parseLayers(const JSValue&); @@ -49,4 +51,5 @@ private: std::forward_list stack; }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/style/property_evaluator.cpp b/src/mbgl/style/property_evaluator.cpp index 08eea899c..d2e633c78 100644 --- a/src/mbgl/style/property_evaluator.cpp +++ b/src/mbgl/style/property_evaluator.cpp @@ -1,12 +1,14 @@ #include -#include +#include #include #include #include +#include #include namespace mbgl { +namespace style { template inline T defaultStopsValue(); @@ -140,4 +142,5 @@ Faded CrossFadedPropertyEvaluator::calculate(const T& min, const T& mid, c template class CrossFadedPropertyEvaluator; template class CrossFadedPropertyEvaluator>; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/style/property_evaluator.hpp b/src/mbgl/style/property_evaluator.hpp index 112c373a4..77100bda4 100644 --- a/src/mbgl/style/property_evaluator.hpp +++ b/src/mbgl/style/property_evaluator.hpp @@ -4,15 +4,16 @@ #include namespace mbgl { +namespace style { -class StyleCalculationParameters; +class CalculationParameters; template class PropertyEvaluator { public: using ResultType = T; - PropertyEvaluator(const StyleCalculationParameters& parameters_, const T& defaultValue_) + PropertyEvaluator(const CalculationParameters& parameters_, const T& defaultValue_) : parameters(parameters_), defaultValue(defaultValue_) {} @@ -21,7 +22,7 @@ public: T operator()(const Function&) const; private: - const StyleCalculationParameters& parameters; + const CalculationParameters& parameters; T defaultValue; }; @@ -39,7 +40,7 @@ class CrossFadedPropertyEvaluator { public: using ResultType = Faded; - CrossFadedPropertyEvaluator(const StyleCalculationParameters& parameters_, const T& defaultValue_) + CrossFadedPropertyEvaluator(const CalculationParameters& parameters_, const T& defaultValue_) : parameters(parameters_), defaultValue(defaultValue_) {} @@ -50,13 +51,15 @@ public: private: Faded calculate(const T& min, const T& mid, const T& max) const; - const StyleCalculationParameters& parameters; + const CalculationParameters& parameters; T defaultValue; }; +} // namespace style + namespace util { template -struct Interpolator> +struct Interpolator> : Uninterpolated {}; } diff --git a/src/mbgl/style/property_parsing.cpp b/src/mbgl/style/property_parsing.cpp index 67baa3ec8..9f60ddf3b 100644 --- a/src/mbgl/style/property_parsing.cpp +++ b/src/mbgl/style/property_parsing.cpp @@ -1,11 +1,11 @@ #include -#include #include #include namespace mbgl { +namespace style { template <> optional parseConstant(const char* name, const JSValue& value) { @@ -264,7 +264,7 @@ optional> parseConstant(const char* name, const JSValue return result; } -optional parsePropertyTransition(const char *, const JSValue& value) { +optional parseTransitionOptions(const char *, const JSValue& value) { if (!value.IsObject()) { return {}; } @@ -283,7 +283,8 @@ optional parsePropertyTransition(const char *, const JSValue return {}; } - return PropertyTransition(duration, delay); + return TransitionOptions(duration, delay); } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/style/property_parsing.hpp b/src/mbgl/style/property_parsing.hpp index c0fe5ce2b..bb894c240 100644 --- a/src/mbgl/style/property_parsing.hpp +++ b/src/mbgl/style/property_parsing.hpp @@ -2,10 +2,11 @@ #include #include -#include +#include #include #include +#include #include @@ -14,6 +15,7 @@ #include namespace mbgl { +namespace style { template optional parseConstant(const char* name, const JSValue&); @@ -104,6 +106,7 @@ PropertyValue parseProperty(const char* name, const JSValue& value) { return Function(stops, base); } -optional parsePropertyTransition(const char * name, const JSValue&); +optional parseTransitionOptions(const char * name, const JSValue&); +} // namespace style } // namespace mbgl diff --git a/src/mbgl/style/style_query_parameters.hpp b/src/mbgl/style/query_parameters.hpp similarity index 80% rename from src/mbgl/style/style_query_parameters.hpp rename to src/mbgl/style/query_parameters.hpp index 33115bdfb..3c1abf3b7 100644 --- a/src/mbgl/style/style_query_parameters.hpp +++ b/src/mbgl/style/query_parameters.hpp @@ -8,11 +8,14 @@ namespace mbgl { class TransformState; -class StyleQueryParameters { +namespace style { + +class QueryParameters { public: const ScreenLineString& geometry; const TransformState& transformState; const optional>& layerIDs; }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/style/render_item.hpp b/src/mbgl/style/render_item.hpp index ebf679982..da59591c3 100644 --- a/src/mbgl/style/render_item.hpp +++ b/src/mbgl/style/render_item.hpp @@ -2,12 +2,15 @@ namespace mbgl { -class Layer; class Tile; class Bucket; +namespace style { +class Layer; +} + struct RenderItem { - inline RenderItem(const Layer& layer_, + inline RenderItem(const style::Layer& layer_, const Tile* tile_ = nullptr, Bucket* bucket_ = nullptr) : tile(tile_), bucket(bucket_), layer(layer_) { @@ -15,7 +18,7 @@ struct RenderItem { const Tile* const tile; Bucket* const bucket; - const Layer& layer; + const style::Layer& layer; }; } // namespace mbgl diff --git a/src/mbgl/source/source.cpp b/src/mbgl/style/source.cpp similarity index 89% rename from src/mbgl/source/source.cpp rename to src/mbgl/style/source.cpp index 66546909a..8e5973f41 100644 --- a/src/mbgl/source/source.cpp +++ b/src/mbgl/style/source.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include #include #include @@ -12,8 +12,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -24,7 +24,7 @@ #include #include -#include +#include #include #include @@ -39,6 +39,7 @@ #include namespace mbgl { +namespace style { static SourceObserver nullObserver; @@ -46,13 +47,13 @@ Source::Source(SourceType type_, const std::string& id_, const std::string& url_, uint16_t tileSize_, - std::unique_ptr&& info_, + std::unique_ptr&& tileset_, std::unique_ptr&& geojsonvt_) : type(type_), id(id_), url(url_), tileSize(tileSize_), - info(std::move(info_)), + tileset(std::move(tileset_)), geojsonvt(std::move(geojsonvt_)), observer(&nullObserver) { } @@ -84,7 +85,7 @@ void Source::load(FileSource& fileSource) { } if (req) { - // We don't have a SourceInfo object yet, but there's already a request underway to load + // We don't have a Tileset object yet, but there's already a request underway to load // the data. return; } @@ -101,20 +102,20 @@ void Source::load(FileSource& fileSource) { bool reloadTiles = false; if (type == SourceType::Vector || type == SourceType::Raster) { - std::unique_ptr newInfo; + std::unique_ptr newTileset; - // Create a new copy of the SourceInfo object that holds the base values we've parsed + // Create a new copy of the Tileset object that holds the base values we've parsed // from the stylesheet. Then merge in the values parsed from the TileJSON we retrieved // via the URL. try { - newInfo = StyleParser::parseTileJSON(*res.data, url, type, tileSize); + newTileset = style::parseTileJSON(*res.data, url, type, tileSize); } catch (...) { observer->onSourceError(*this, std::current_exception()); return; } // Check whether previous information specifies different tile - if (info && info->tiles != newInfo->tiles) { + if (tileset && tileset->tiles != newTileset->tiles) { reloadTiles = true; // Tile size changed: We need to recalculate the tiles we need to load because we @@ -132,9 +133,9 @@ void Source::load(FileSource& fileSource) { // Center/bounds changed: We're not using these values currently } - info = std::move(newInfo); + tileset = std::move(newTileset); } else if (type == SourceType::GeoJSON) { - std::unique_ptr newInfo = std::make_unique(); + std::unique_ptr newTileset = std::make_unique(); rapidjson::GenericDocument, rapidjson::CrtAllocator> d; d.Parse<0>(res.data->c_str()); @@ -146,11 +147,11 @@ void Source::load(FileSource& fileSource) { return; } - geojsonvt = StyleParser::parseGeoJSON(d); + geojsonvt = style::parseGeoJSON(d); reloadTiles = true; - newInfo->maxZoom = geojsonvt->options.maxZoom; - info = std::move(newInfo); + newTileset->maxZoom = geojsonvt->options.maxZoom; + tileset = std::move(newTileset); } if (reloadTiles) { @@ -186,7 +187,7 @@ const std::map& Source::getTiles() const { } std::unique_ptr Source::createTile(const OverscaledTileID& overscaledTileID, - const StyleUpdateParameters& parameters) { + const UpdateParameters& parameters) { std::unique_ptr data = cache.get(overscaledTileID); if (data) { return data; @@ -198,13 +199,13 @@ std::unique_ptr Source::createTile(const OverscaledTileID& overscaledT // If we don't find working tile data, we're just going to load it. if (type == SourceType::Raster) { data = std::make_unique(overscaledTileID, parameters.pixelRatio, - info->tiles.at(0), parameters.texturePool, + tileset->tiles.at(0), parameters.texturePool, parameters.worker, parameters.fileSource, callback); } else { std::unique_ptr monitor; if (type == SourceType::Vector) { - monitor = std::make_unique(overscaledTileID, parameters.pixelRatio, info->tiles.at(0), parameters.fileSource); + monitor = std::make_unique(overscaledTileID, parameters.pixelRatio, tileset->tiles.at(0), parameters.fileSource); } else if (type == SourceType::Annotations) { monitor = std::make_unique(overscaledTileID, parameters.annotationManager); } else if (type == SourceType::GeoJSON) { @@ -230,7 +231,7 @@ TileData* Source::getTileData(const OverscaledTileID& overscaledTileID) const { } } -bool Source::update(const StyleUpdateParameters& parameters) { +bool Source::update(const UpdateParameters& parameters) { bool allTilesUpdated = true; if (!loaded || parameters.animationTime <= updated) { @@ -242,8 +243,8 @@ bool Source::update(const StyleUpdateParameters& parameters) { int32_t dataTileZoom = overscaledZoom; std::vector idealTiles; - if (overscaledZoom >= info->minZoom) { - int32_t idealZoom = std::min(info->maxZoom, overscaledZoom); + if (overscaledZoom >= tileset->minZoom) { + int32_t idealZoom = std::min(tileset->maxZoom, overscaledZoom); // Make sure we're not reparsing overzoomed raster tiles. if (type == SourceType::Raster) { @@ -278,7 +279,7 @@ bool Source::update(const StyleUpdateParameters& parameters) { tiles.clear(); algorithm::updateRenderables(getTileDataFn, createTileDataFn, retainTileDataFn, renderTileFn, - idealTiles, *info, dataTileZoom); + idealTiles, *tileset, dataTileZoom); if (type != SourceType::Raster && type != SourceType::Annotations && cache.getSize() == 0) { size_t conservativeCacheSize = @@ -341,7 +342,7 @@ static Point coordinateToTilePoint(const UnwrappedTileID& tileID, const }; } -std::unordered_map> Source::queryRenderedFeatures(const StyleQueryParameters& parameters) const { +std::unordered_map> Source::queryRenderedFeatures(const QueryParameters& parameters) const { LineString queryGeometry; for (const auto& p : parameters.geometry) { @@ -423,4 +424,5 @@ void Source::dumpDebugLogs() const { } } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/source/source.hpp b/src/mbgl/style/source.hpp similarity index 85% rename from src/mbgl/source/source.hpp rename to src/mbgl/style/source.hpp index cbdf4afa1..cadc45c25 100644 --- a/src/mbgl/source/source.hpp +++ b/src/mbgl/style/source.hpp @@ -3,12 +3,13 @@ #include #include #include -#include +#include #include #include #include #include +#include #include #include @@ -22,15 +23,18 @@ class GeoJSONVT; namespace mbgl { -class Style; -class StyleUpdateParameters; -class StyleQueryParameters; class Painter; class FileSource; class AsyncRequest; class TransformState; class Tile; struct ClipID; + +namespace style { + +class Style; +class UpdateParameters; +class QueryParameters; class SourceObserver; class Source : private util::noncopyable { @@ -39,7 +43,7 @@ public: const std::string& id, const std::string& url, uint16_t tileSize, - std::unique_ptr&&, + std::unique_ptr&&, std::unique_ptr&&); ~Source(); @@ -48,13 +52,13 @@ public: bool isLoading() const; bool isLoaded() const; - const SourceInfo* getInfo() const { return info.get(); } + const Tileset* getTileset() const { return tileset.get(); } // Request or parse all the tiles relevant for the "TransformState". This method // will return true if all the tiles were scheduled for updating of false if // they were not. shouldReparsePartialTiles must be set to "true" if there is // new data available that a tile in the "partial" state might be interested at. - bool update(const StyleUpdateParameters&); + bool update(const UpdateParameters&); template void updateClipIDs(ClipIDGenerator& generator) { @@ -69,7 +73,7 @@ public: TileData* getTileData(const OverscaledTileID&) const; std::unordered_map> - queryRenderedFeatures(const StyleQueryParameters&) const; + queryRenderedFeatures(const QueryParameters&) const; void setCacheSize(size_t); void onLowMemory(); @@ -86,11 +90,10 @@ public: private: void tileLoadingCallback(const OverscaledTileID&, std::exception_ptr, bool isNewTile); - std::unique_ptr createTile(const OverscaledTileID&, - const StyleUpdateParameters& parameters); + std::unique_ptr createTile(const OverscaledTileID&, const UpdateParameters&); private: - std::unique_ptr info; + std::unique_ptr tileset; std::unique_ptr geojsonvt; @@ -106,4 +109,5 @@ private: SourceObserver* observer = nullptr; }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/source/source_observer.hpp b/src/mbgl/style/source_observer.hpp similarity index 92% rename from src/mbgl/source/source_observer.hpp rename to src/mbgl/style/source_observer.hpp index 828e562a3..a669e8e75 100644 --- a/src/mbgl/source/source_observer.hpp +++ b/src/mbgl/style/source_observer.hpp @@ -4,9 +4,12 @@ namespace mbgl { -class Source; class OverscaledTileID; +namespace style { + +class Source; + class SourceObserver { public: virtual ~SourceObserver() = default; @@ -18,4 +21,5 @@ public: virtual void onPlacementRedone() {} }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/style/style.cpp b/src/mbgl/style/style.cpp index ee847ccf5..136c98df0 100644 --- a/src/mbgl/style/style.cpp +++ b/src/mbgl/style/style.cpp @@ -1,23 +1,23 @@ #include -#include -#include +#include +#include #include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include #include -#include -#include -#include +#include +#include +#include #include -#include -#include -#include +#include +#include +#include #include #include #include @@ -30,10 +30,11 @@ #include namespace mbgl { +namespace style { -static StyleObserver nullObserver; +static Observer nullObserver; -bool Style::addClass(const std::string& className, const PropertyTransition& properties) { +bool Style::addClass(const std::string& className, const TransitionOptions& properties) { if (std::find(classes.begin(), classes.end(), className) != classes.end()) return false; classes.push_back(className); transitionProperties = properties; @@ -44,7 +45,7 @@ bool Style::hasClass(const std::string& className) const { return std::find(classes.begin(), classes.end(), className) != classes.end(); } -bool Style::removeClass(const std::string& className, const PropertyTransition& properties) { +bool Style::removeClass(const std::string& className, const TransitionOptions& properties) { const auto it = std::find(classes.begin(), classes.end(), className); if (it != classes.end()) { classes.erase(it); @@ -54,7 +55,7 @@ bool Style::removeClass(const std::string& className, const PropertyTransition& return false; } -void Style::setClasses(const std::vector& classNames, const PropertyTransition& properties) { +void Style::setClasses(const std::vector& classNames, const TransitionOptions& properties) { classes = classNames; transitionProperties = properties; } @@ -81,7 +82,7 @@ void Style::setJSON(const std::string& json, const std::string&) { layers.clear(); classes.clear(); - StyleParser parser; + Parser parser; parser.parse(json); for (auto& source : parser.sources) { @@ -153,7 +154,7 @@ void Style::removeLayer(const std::string& id) { layers.erase(it); } -void Style::update(const StyleUpdateParameters& parameters) { +void Style::update(const UpdateParameters& parameters) { bool allTilesUpdated = true; for (const auto& source : sources) { @@ -172,7 +173,7 @@ void Style::update(const StyleUpdateParameters& parameters) { void Style::cascade(const TimePoint& timePoint, MapMode mode) { // When in continuous mode, we can either have user- or style-defined // transitions. Still mode is always immediate. - static const PropertyTransition immediateTransition; + static const TransitionOptions immediateTransition; std::vector classIDs; for (const auto& className : classes) { @@ -181,7 +182,7 @@ void Style::cascade(const TimePoint& timePoint, MapMode mode) { classIDs.push_back(ClassID::Default); classIDs.push_back(ClassID::Fallback); - const StyleCascadeParameters parameters { + const CascadeParameters parameters { classIDs, mode == MapMode::Continuous ? timePoint : Clock::time_point::max(), mode == MapMode::Continuous ? transitionProperties.value_or(immediateTransition) : immediateTransition @@ -201,7 +202,7 @@ void Style::recalculate(float z, const TimePoint& timePoint, MapMode mode) { zoomHistory.update(z, timePoint); - const StyleCalculationParameters parameters { + const CalculationParameters parameters { z, mode == MapMode::Continuous ? timePoint : Clock::time_point::max(), zoomHistory, @@ -325,7 +326,7 @@ RenderData Style::getRenderData() const { return result; } -std::vector Style::queryRenderedFeatures(const StyleQueryParameters& parameters) const { +std::vector Style::queryRenderedFeatures(const QueryParameters& parameters) const { std::unordered_map> resultsByLayer; for (const auto& source : sources) { @@ -367,7 +368,7 @@ void Style::onLowMemory() { } } -void Style::setObserver(StyleObserver* observer_) { +void Style::setObserver(style::Observer* observer_) { observer = observer_; } @@ -440,4 +441,5 @@ void Style::dumpDebugLogs() const { spriteStore->dumpDebugLogs(); } +} // namespace style } // namespace mbgl diff --git a/src/mbgl/style/style.hpp b/src/mbgl/style/style.hpp index 6892f4967..49af67433 100644 --- a/src/mbgl/style/style.hpp +++ b/src/mbgl/style/style.hpp @@ -1,20 +1,21 @@ #pragma once #include -#include -#include -#include +#include -#include +#include +#include #include #include #include +#include #include #include #include #include #include +#include #include #include @@ -25,20 +26,20 @@ namespace mbgl { class FileSource; class GlyphAtlas; -class GlyphStore; -class SpriteStore; class SpriteAtlas; class LineAtlas; -class StyleUpdateParameters; -class StyleQueryParameters; -class StyleObserver; struct RenderData { Color backgroundColor = {{ 0, 0, 0, 0 }}; - std::set sources; + std::set sources; std::vector order; }; +namespace style { + +class UpdateParameters; +class QueryParameters; + class Style : public GlyphStoreObserver, public SpriteStoreObserver, public SourceObserver, @@ -49,13 +50,13 @@ public: void setJSON(const std::string& data, const std::string& base); - void setObserver(StyleObserver*); + void setObserver(Observer*); bool isLoaded() const; // Fetch the tiles needed by the current viewport and emit a signal when // a tile is ready so observers can render the tile. - void update(const StyleUpdateParameters&); + void update(const UpdateParameters&); void cascade(const TimePoint&, MapMode); void recalculate(float z, const TimePoint&, MapMode); @@ -75,15 +76,15 @@ public: optional beforeLayerID = {}); void removeLayer(const std::string& layerID); - bool addClass(const std::string&, const PropertyTransition& = {}); - bool removeClass(const std::string&, const PropertyTransition& = {}); + bool addClass(const std::string&, const TransitionOptions& = {}); + bool removeClass(const std::string&, const TransitionOptions& = {}); bool hasClass(const std::string&) const; - void setClasses(const std::vector&, const PropertyTransition& = {}); + void setClasses(const std::vector&, const TransitionOptions& = {}); std::vector getClasses() const; RenderData getRenderData() const; - std::vector queryRenderedFeatures(const StyleQueryParameters&) const; + std::vector queryRenderedFeatures(const QueryParameters&) const; float getQueryRadius() const; @@ -103,7 +104,7 @@ private: std::vector> sources; std::vector> layers; std::vector classes; - optional transitionProperties; + optional transitionProperties; std::vector>::const_iterator findLayer(const std::string& layerID) const; @@ -122,7 +123,8 @@ private: void onTileError(Source&, const OverscaledTileID&, std::exception_ptr) override; void onPlacementRedone() override; - StyleObserver* observer = nullptr; + Observer nullObserver; + Observer* observer = &nullObserver; std::exception_ptr lastError; @@ -135,4 +137,5 @@ public: Worker workers; }; +} // namespace style } // namespace mbgl diff --git a/src/mbgl/style/style_calculation_parameters.hpp b/src/mbgl/style/style_calculation_parameters.hpp deleted file mode 100644 index 1c50bd612..000000000 --- a/src/mbgl/style/style_calculation_parameters.hpp +++ /dev/null @@ -1,28 +0,0 @@ -#pragma once - -#include -#include - -namespace mbgl { - -class StyleCalculationParameters { -public: - explicit StyleCalculationParameters(float z_) - : z(z_) {} - - StyleCalculationParameters(float z_, - const TimePoint& now_, - const ZoomHistory& zoomHistory_, - const Duration& defaultFadeDuration_) - : z(z_), - now(now_), - zoomHistory(zoomHistory_), - defaultFadeDuration(defaultFadeDuration_) {} - - float z; - TimePoint now; - ZoomHistory zoomHistory; - Duration defaultFadeDuration; -}; - -} // namespace mbgl diff --git a/src/mbgl/style/style_cascade_parameters.hpp b/src/mbgl/style/style_cascade_parameters.hpp deleted file mode 100644 index 569145bd0..000000000 --- a/src/mbgl/style/style_cascade_parameters.hpp +++ /dev/null @@ -1,20 +0,0 @@ -#pragma once - -#include -#include -#include - -#include - -namespace mbgl { - -class PropertyTransition; - -class StyleCascadeParameters { -public: - std::vector classes; - TimePoint now; - PropertyTransition transition; -}; - -} // namespace mbgl diff --git a/src/mbgl/style/style_render_parameters.hpp b/src/mbgl/style/style_render_parameters.hpp deleted file mode 100644 index 7347717a1..000000000 --- a/src/mbgl/style/style_render_parameters.hpp +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -namespace mbgl { - -class TransformState; - -class StyleRenderParameters { -public: - StyleRenderParameters(const TransformState& state_) - : state(state_) {} - - const TransformState& state; -}; - -} diff --git a/src/mbgl/style/style_update_parameters.hpp b/src/mbgl/style/update_parameters.hpp similarity index 92% rename from src/mbgl/style/style_update_parameters.hpp rename to src/mbgl/style/update_parameters.hpp index 73ed500e8..9faaa32d6 100644 --- a/src/mbgl/style/style_update_parameters.hpp +++ b/src/mbgl/style/update_parameters.hpp @@ -7,13 +7,16 @@ namespace mbgl { class TransformState; class Worker; class FileSource; -class Style; namespace gl { class TexturePool; } class AnnotationManager; -class StyleUpdateParameters { +namespace style { + +class Style; + +class UpdateParameters { public: - StyleUpdateParameters(float pixelRatio_, + UpdateParameters(float pixelRatio_, MapDebugOptions debugOptions_, TimePoint animationTime_, const TransformState& transformState_, @@ -51,4 +54,5 @@ public: Style& style; }; -} +} // namespace style +} // namespace mbgl diff --git a/src/mbgl/text/glyph_pbf.hpp b/src/mbgl/text/glyph_pbf.hpp index 08616b268..85f4b62e6 100644 --- a/src/mbgl/text/glyph_pbf.hpp +++ b/src/mbgl/text/glyph_pbf.hpp @@ -2,7 +2,7 @@ #include #include -#include +#include #include #include diff --git a/src/mbgl/text/glyph_store.hpp b/src/mbgl/text/glyph_store.hpp index d614a4947..edc89b489 100644 --- a/src/mbgl/text/glyph_store.hpp +++ b/src/mbgl/text/glyph_store.hpp @@ -2,7 +2,7 @@ #include #include -#include +#include #include #include #include diff --git a/src/mbgl/text/glyph_store_observer.hpp b/src/mbgl/text/glyph_store_observer.hpp index 89650892e..39f10cd81 100644 --- a/src/mbgl/text/glyph_store_observer.hpp +++ b/src/mbgl/text/glyph_store_observer.hpp @@ -2,6 +2,7 @@ #include #include +#include #include diff --git a/src/mbgl/text/quads.cpp b/src/mbgl/text/quads.cpp index 3cb508a10..ce320791c 100644 --- a/src/mbgl/text/quads.cpp +++ b/src/mbgl/text/quads.cpp @@ -2,13 +2,15 @@ #include #include #include -#include +#include #include #include #include namespace mbgl { +using namespace style; + const float globalMinScale = 0.5f; // underscale by 1 zoom level SymbolQuads getIconQuads(Anchor& anchor, const PositionedIcon& shapedIcon, diff --git a/src/mbgl/text/quads.hpp b/src/mbgl/text/quads.hpp index c68ea2fe6..0627647f4 100644 --- a/src/mbgl/text/quads.hpp +++ b/src/mbgl/text/quads.hpp @@ -7,39 +7,43 @@ namespace mbgl { - struct SymbolQuad { - explicit SymbolQuad(const Point &tl_, const Point &tr_, - const Point &bl_, const Point &br_, - const Rect &tex_, float angle_, const Point &anchorPoint_, - float minScale_, float maxScale_) - : tl(tl_), - tr(tr_), - bl(bl_), - br(br_), - tex(tex_), - angle(angle_), - anchorPoint(anchorPoint_), - minScale(minScale_), - maxScale(maxScale_) {} +struct Anchor; +class PositionedIcon; - Point tl, tr, bl, br; - Rect tex; - float angle; - Point anchorPoint; - float minScale, maxScale; - }; +namespace style { +class SymbolLayoutProperties; +} - typedef std::vector SymbolQuads; +struct SymbolQuad { + explicit SymbolQuad(const Point &tl_, const Point &tr_, + const Point &bl_, const Point &br_, + const Rect &tex_, float angle_, const Point &anchorPoint_, + float minScale_, float maxScale_) + : tl(tl_), + tr(tr_), + bl(bl_), + br(br_), + tex(tex_), + angle(angle_), + anchorPoint(anchorPoint_), + minScale(minScale_), + maxScale(maxScale_) {} - struct Anchor; - class SymbolLayoutProperties; - class PositionedIcon; + Point tl, tr, bl, br; + Rect tex; + float angle; + Point anchorPoint; + float minScale, maxScale; +}; + +typedef std::vector SymbolQuads; + +SymbolQuads getIconQuads(Anchor& anchor, const PositionedIcon& shapedIcon, + const GeometryCoordinates& line, const style::SymbolLayoutProperties&, + const bool alongLine); + +SymbolQuads getGlyphQuads(Anchor& anchor, const Shaping& shapedText, + const float boxScale, const GeometryCoordinates& line, const style::SymbolLayoutProperties&, + const bool alongLine, const GlyphPositions& face); - SymbolQuads getIconQuads(Anchor& anchor, const PositionedIcon& shapedIcon, - const GeometryCoordinates& line, const SymbolLayoutProperties& layout, - const bool alongLine); - - SymbolQuads getGlyphQuads(Anchor& anchor, const Shaping& shapedText, - const float boxScale, const GeometryCoordinates& line, const SymbolLayoutProperties& layout, - const bool alongLine, const GlyphPositions& face); } // namespace mbgl diff --git a/src/mbgl/text/shaping.cpp b/src/mbgl/text/shaping.cpp index ce93b4977..1091cd6e9 100644 --- a/src/mbgl/text/shaping.cpp +++ b/src/mbgl/text/shaping.cpp @@ -1,9 +1,9 @@ #include -#include +#include namespace mbgl { -PositionedIcon shapeIcon(const SpriteAtlasElement& image, const SymbolLayoutProperties& layout) { +PositionedIcon shapeIcon(const SpriteAtlasElement& image, const style::SymbolLayoutProperties& layout) { float dx = layout.iconOffset.value[0]; float dy = layout.iconOffset.value[1]; float x1 = dx - image.spriteImage->getWidth() / 2.0f; diff --git a/src/mbgl/text/shaping.hpp b/src/mbgl/text/shaping.hpp index ea169b8dc..f81230ace 100644 --- a/src/mbgl/text/shaping.hpp +++ b/src/mbgl/text/shaping.hpp @@ -7,26 +7,28 @@ namespace mbgl { - struct SpriteAtlasElement; +struct SpriteAtlasElement; - class PositionedIcon { - public: - inline explicit PositionedIcon() {} - inline explicit PositionedIcon(const SpriteAtlasElement& _image, - float _top, float _bottom, float _left, float _right) : - image(_image), top(_top), bottom(_bottom), left(_left), right(_right) {} +namespace style { +class SymbolLayoutProperties; +} - optional image; - float top = 0; - float bottom = 0; - float left = 0; - float right = 0; +class PositionedIcon { + public: + inline explicit PositionedIcon() {} + inline explicit PositionedIcon(const SpriteAtlasElement& _image, + float _top, float _bottom, float _left, float _right) : + image(_image), top(_top), bottom(_bottom), left(_left), right(_right) {} - operator bool() const { return image && (*image).pos.hasArea(); } - }; + optional image; + float top = 0; + float bottom = 0; + float left = 0; + float right = 0; - class SymbolLayoutProperties; + operator bool() const { return image && (*image).pos.hasArea(); } +}; - PositionedIcon shapeIcon(const SpriteAtlasElement& image, const SymbolLayoutProperties&); +PositionedIcon shapeIcon(const SpriteAtlasElement& image, const style::SymbolLayoutProperties&); } // namespace mbgl diff --git a/src/mbgl/tile/raster_tile_data.cpp b/src/mbgl/tile/raster_tile_data.cpp index a5eab3fb2..420cb7055 100644 --- a/src/mbgl/tile/raster_tile_data.cpp +++ b/src/mbgl/tile/raster_tile_data.cpp @@ -1,5 +1,5 @@ #include -#include +#include #include #include #include @@ -61,7 +61,7 @@ RasterTileData::~RasterTileData() { cancel(); } -Bucket* RasterTileData::getBucket(const Layer&) { +Bucket* RasterTileData::getBucket(const style::Layer&) { return bucket.get(); } diff --git a/src/mbgl/tile/raster_tile_data.hpp b/src/mbgl/tile/raster_tile_data.hpp index ea9b144e2..62d21d28c 100644 --- a/src/mbgl/tile/raster_tile_data.hpp +++ b/src/mbgl/tile/raster_tile_data.hpp @@ -7,9 +7,13 @@ namespace mbgl { class FileSource; class AsyncRequest; -class Layer; + namespace gl { class TexturePool; } +namespace style { +class Layer; +} + class RasterTileData : public TileData { public: RasterTileData(const OverscaledTileID&, @@ -22,7 +26,7 @@ public: ~RasterTileData(); void cancel() override; - Bucket* getBucket(const Layer&) override; + Bucket* getBucket(const style::Layer&) override; private: gl::TexturePool& texturePool; diff --git a/src/mbgl/tile/tile_data.hpp b/src/mbgl/tile/tile_data.hpp index 035a7ed31..5b6583faf 100644 --- a/src/mbgl/tile/tile_data.hpp +++ b/src/mbgl/tile/tile_data.hpp @@ -16,11 +16,14 @@ namespace mbgl { -class Layer; class Worker; class DebugBucket; class TransformState; +namespace style { +class Layer; +} + class TileData : private util::noncopyable { public: TileData(const OverscaledTileID&); @@ -29,7 +32,7 @@ public: // Mark this tile as no longer needed and cancel any pending work. virtual void cancel() = 0; - virtual Bucket* getBucket(const Layer&) = 0; + virtual Bucket* getBucket(const style::Layer&) = 0; virtual bool parsePending(std::function) { return true; } virtual void redoPlacement(PlacementConfig, const std::function&) {} diff --git a/src/mbgl/tile/tile_worker.cpp b/src/mbgl/tile/tile_worker.cpp index 9076684a2..b2283043d 100644 --- a/src/mbgl/tile/tile_worker.cpp +++ b/src/mbgl/tile/tile_worker.cpp @@ -1,11 +1,11 @@ #include #include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include #include @@ -15,7 +15,9 @@ #include #include -using namespace mbgl; +namespace mbgl { + +using namespace mbgl::style; TileWorker::TileWorker(const OverscaledTileID& id_, std::string sourceID_, @@ -155,7 +157,7 @@ void TileWorker::parseLayer(const Layer* layer) { return; } - StyleBucketParameters parameters(id, + BucketParameters parameters(id, *geometryLayer, obsolete, reinterpret_cast(this), @@ -185,3 +187,5 @@ void TileWorker::insertBucket(const std::string& name, std::unique_ptr b result.buckets.emplace(name, std::move(bucket)); } } + +} diff --git a/src/mbgl/tile/tile_worker.hpp b/src/mbgl/tile/tile_worker.hpp index a04ef6a78..2757c0f9b 100644 --- a/src/mbgl/tile/tile_worker.hpp +++ b/src/mbgl/tile/tile_worker.hpp @@ -23,8 +23,11 @@ class SpriteStore; class GlyphAtlas; class GlyphStore; class Bucket; + +namespace style { class Layer; class SymbolLayer; +} // We're using this class to shuttle the resulting buckets from the worker thread to the MapContext // thread. This class is movable-only because the vector contains movable-only value elements. @@ -51,7 +54,7 @@ public: const MapMode); ~TileWorker(); - TileParseResult parseAllLayers(std::vector>, + TileParseResult parseAllLayers(std::vector>, std::unique_ptr geometryTile, PlacementConfig); @@ -62,7 +65,7 @@ public: private: TileParseResult prepareResult(const PlacementConfig& config); - void parseLayer(const Layer*); + void parseLayer(const style::Layer*); void insertBucket(const std::string& name, std::unique_ptr); std::unique_ptr placeLayers(PlacementConfig); @@ -77,14 +80,14 @@ private: bool partialParse = false; - std::vector> layers; + std::vector> layers; std::unique_ptr featureIndex; std::unique_ptr geometryTile; // Contains buckets that we couldn't parse so far due to missing resources. // They will be attempted on subsequent parses. - std::list>> pending; + std::list>> pending; // Contains buckets that have been parsed, but still need placement. // They will be placed when all buckets have been parsed. diff --git a/src/mbgl/tile/vector_tile.cpp b/src/mbgl/tile/vector_tile.cpp index 8a69a8231..5126d0ce8 100644 --- a/src/mbgl/tile/vector_tile.cpp +++ b/src/mbgl/tile/vector_tile.cpp @@ -1,5 +1,5 @@ #include -#include +#include #include #include #include diff --git a/src/mbgl/tile/vector_tile_data.cpp b/src/mbgl/tile/vector_tile_data.cpp index db0ec8029..1ab2566a2 100644 --- a/src/mbgl/tile/vector_tile_data.cpp +++ b/src/mbgl/tile/vector_tile_data.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include #include #include #include @@ -14,7 +14,7 @@ namespace mbgl { VectorTileData::VectorTileData(const OverscaledTileID& id_, std::unique_ptr monitor_, std::string sourceID, - Style& style_, + style::Style& style_, const MapMode mode_, const std::function& callback) : TileData(id_), @@ -139,7 +139,7 @@ bool VectorTileData::parsePending(std::function callba return true; } -Bucket* VectorTileData::getBucket(const Layer& layer) { +Bucket* VectorTileData::getBucket(const style::Layer& layer) { const auto it = buckets.find(layer.baseImpl->bucketName()); if (it == buckets.end()) { return nullptr; diff --git a/src/mbgl/tile/vector_tile_data.hpp b/src/mbgl/tile/vector_tile_data.hpp index 4695338e1..e7de39e03 100644 --- a/src/mbgl/tile/vector_tile_data.hpp +++ b/src/mbgl/tile/vector_tile_data.hpp @@ -11,23 +11,26 @@ namespace mbgl { -class Style; class AsyncRequest; class GeometryTileMonitor; class FeatureIndex; +namespace style { +class Style; +} + class VectorTileData : public TileData { public: VectorTileData(const OverscaledTileID&, std::unique_ptr monitor, std::string sourceID, - Style&, + style::Style&, const MapMode, const std::function& callback); ~VectorTileData(); - Bucket* getBucket(const Layer&) override; + Bucket* getBucket(const style::Layer&) override; bool parsePending(std::function callback) override; @@ -43,7 +46,7 @@ public: void cancel() override; private: - Style& style; + style::Style& style; Worker& worker; TileWorker tileWorker; diff --git a/src/mbgl/style/types.cpp b/src/mbgl/util/font_stack.cpp similarity index 91% rename from src/mbgl/style/types.cpp rename to src/mbgl/util/font_stack.cpp index 27574afa9..fb3b1b60a 100644 --- a/src/mbgl/style/types.cpp +++ b/src/mbgl/util/font_stack.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/mbgl/source/source_info.hpp b/src/mbgl/util/tileset.hpp similarity index 86% rename from src/mbgl/source/source_info.hpp rename to src/mbgl/util/tileset.hpp index dc79695dc..972fc51f8 100644 --- a/src/mbgl/source/source_info.hpp +++ b/src/mbgl/util/tileset.hpp @@ -1,6 +1,5 @@ #pragma once -#include #include #include @@ -11,9 +10,7 @@ namespace mbgl { -class TileID; - -class SourceInfo { +class Tileset { public: std::vector tiles; uint8_t minZoom = 0; diff --git a/src/mbgl/util/worker.cpp b/src/mbgl/util/worker.cpp index 43abe6792..2bc545c70 100644 --- a/src/mbgl/util/worker.cpp +++ b/src/mbgl/util/worker.cpp @@ -30,7 +30,7 @@ public: } void parseGeometryTile(TileWorker* worker, - std::vector> layers, + std::vector> layers, std::unique_ptr tile, PlacementConfig config, std::function callback) { @@ -79,7 +79,7 @@ Worker::parseRasterTile(std::unique_ptr bucket, std::unique_ptr Worker::parseGeometryTile(TileWorker& worker, - std::vector> layers, + std::vector> layers, std::unique_ptr tile, PlacementConfig config, std::function callback) { diff --git a/src/mbgl/util/worker.hpp b/src/mbgl/util/worker.hpp index 68625f42b..678dfaedb 100644 --- a/src/mbgl/util/worker.hpp +++ b/src/mbgl/util/worker.hpp @@ -40,7 +40,7 @@ public: std::function callback); Request parseGeometryTile(TileWorker&, - std::vector>, + std::vector>, std::unique_ptr, PlacementConfig, std::function callback); diff --git a/test/api/custom_layer.cpp b/test/api/custom_layer.cpp index b3ff335d4..c805df556 100644 --- a/test/api/custom_layer.cpp +++ b/test/api/custom_layer.cpp @@ -4,12 +4,13 @@ #include #include #include -#include +#include #include #include #include using namespace mbgl; +using namespace mbgl::style; static const GLchar * vertexShaderSource = "attribute vec2 a_pos; void main() { gl_Position = vec4(a_pos, 0, 1); }"; static const GLchar * fragmentShaderSource = "void main() { gl_FragColor = vec4(0, 1, 0, 1); }"; diff --git a/test/map/map.cpp b/test/map/map.cpp index c6f6843a0..7cafe563b 100644 --- a/test/map/map.cpp +++ b/test/map/map.cpp @@ -8,9 +8,10 @@ #include #include #include -#include +#include using namespace mbgl; +using namespace mbgl::style; using namespace std::literals::string_literals; struct MapTest { diff --git a/test/src/mbgl/test/stub_style_observer.hpp b/test/src/mbgl/test/stub_style_observer.hpp index 45af1edf9..d70fc5e44 100644 --- a/test/src/mbgl/test/stub_style_observer.hpp +++ b/test/src/mbgl/test/stub_style_observer.hpp @@ -1,13 +1,14 @@ #pragma once -#include +#include -namespace mbgl { +using namespace mbgl; +using namespace mbgl::style; /** - * An implementation of StyleObserver that forwards all methods to dynamically-settable lambas. + * An implementation of style::Observer that forwards all methods to dynamically-settable lambas. */ -class StubStyleObserver : public StyleObserver { +class StubStyleObserver : public style::Observer { public: void onGlyphsLoaded(const FontStack& fontStack, const GlyphRange& glyphRange) override { if (glyphsLoaded) glyphsLoaded(fontStack, glyphRange); @@ -61,5 +62,3 @@ public: std::function resourceLoaded; std::function resourceError; }; - -} // namespace mbgl diff --git a/test/storage/offline.cpp b/test/storage/offline.cpp index 3b64c0f50..06789cd82 100644 --- a/test/storage/offline.cpp +++ b/test/storage/offline.cpp @@ -1,5 +1,5 @@ #include -#include +#include #include #include @@ -14,49 +14,49 @@ static const LatLngBounds sanFranciscoWrapped = TEST(OfflineTilePyramidRegionDefinition, TileCoverEmpty) { OfflineTilePyramidRegionDefinition region("", LatLngBounds::empty(), 0, 20, 1.0); - SourceInfo info; + Tileset tileset; - EXPECT_EQ((std::vector{}), region.tileCover(SourceType::Vector, 512, info)); + EXPECT_EQ((std::vector{}), region.tileCover(SourceType::Vector, 512, tileset)); } TEST(OfflineTilePyramidRegionDefinition, TileCoverZoomIntersection) { OfflineTilePyramidRegionDefinition region("", sanFrancisco, 2, 2, 1.0); - SourceInfo info; + Tileset tileset; - info.minZoom = 0; + tileset.minZoom = 0; EXPECT_EQ((std::vector{ { 2, 0, 1 } }), - region.tileCover(SourceType::Vector, 512, info)); + region.tileCover(SourceType::Vector, 512, tileset)); - info.minZoom = 3; - EXPECT_EQ((std::vector{}), region.tileCover(SourceType::Vector, 512, info)); + tileset.minZoom = 3; + EXPECT_EQ((std::vector{}), region.tileCover(SourceType::Vector, 512, tileset)); } TEST(OfflineTilePyramidRegionDefinition, TileCoverTileSize) { OfflineTilePyramidRegionDefinition region("", LatLngBounds::world(), 0, 0, 1.0); - SourceInfo info; + Tileset tileset; EXPECT_EQ((std::vector{ { 0, 0, 0 } }), - region.tileCover(SourceType::Vector, 512, info)); + region.tileCover(SourceType::Vector, 512, tileset)); EXPECT_EQ((std::vector{ { 1, 0, 0 }, { 1, 0, 1 }, { 1, 1, 0 }, { 1, 1, 1 } }), - region.tileCover(SourceType::Vector, 256, info)); + region.tileCover(SourceType::Vector, 256, tileset)); } TEST(OfflineTilePyramidRegionDefinition, TileCoverZoomRounding) { OfflineTilePyramidRegionDefinition region("", sanFrancisco, 0.6, 0.7, 1.0); - SourceInfo info; + Tileset tileset; EXPECT_EQ((std::vector{ { 0, 0, 0 } }), - region.tileCover(SourceType::Vector, 512, info)); + region.tileCover(SourceType::Vector, 512, tileset)); EXPECT_EQ((std::vector{ { 1, 0, 0 } }), - region.tileCover(SourceType::Raster, 512, info)); + region.tileCover(SourceType::Raster, 512, tileset)); } TEST(OfflineTilePyramidRegionDefinition, TileCoverWrapped) { OfflineTilePyramidRegionDefinition region("", sanFranciscoWrapped, 0, 0, 1.0); - SourceInfo info; + Tileset tileset; EXPECT_EQ((std::vector{ { 0, 0, 0 } }), - region.tileCover(SourceType::Vector, 512, info)); + region.tileCover(SourceType::Vector, 512, tileset)); } diff --git a/test/style/filter.cpp b/test/style/filter.cpp index f258c3149..6e7f62db1 100644 --- a/test/style/filter.cpp +++ b/test/style/filter.cpp @@ -2,7 +2,7 @@ #include #include -#include +#include #include #include @@ -10,6 +10,7 @@ #include using namespace mbgl; +using namespace mbgl::style; typedef std::multimap Properties; diff --git a/test/style/functions.cpp b/test/style/functions.cpp index 8812c77b5..5406320e4 100644 --- a/test/style/functions.cpp +++ b/test/style/functions.cpp @@ -2,12 +2,13 @@ #include #include -#include +#include using namespace mbgl; +using namespace mbgl::style; float evaluate(PropertyValue value, float zoom) { - return PropertyValue::visit(value, PropertyEvaluator(StyleCalculationParameters(zoom), 0)); + return PropertyValue::visit(value, PropertyEvaluator(CalculationParameters(zoom), 0)); } TEST(Function, Constant) { diff --git a/test/style/source.cpp b/test/style/source.cpp index b9eb1bc43..ae8fb54d2 100644 --- a/test/style/source.cpp +++ b/test/style/source.cpp @@ -2,7 +2,7 @@ #include #include -#include +#include #include #include #include @@ -12,8 +12,8 @@ #include #include #include -#include -#include +#include +#include #include #include @@ -30,9 +30,9 @@ public: Worker worker { 1 }; gl::TexturePool texturePool; AnnotationManager annotationManager { 1.0 }; - Style style { fileSource, 1.0 }; + style::Style style { fileSource, 1.0 }; - StyleUpdateParameters updateParameters { + style::UpdateParameters updateParameters { 1.0, MapDebugOptions(), TimePoint(), @@ -131,10 +131,10 @@ TEST(Source, RasterTileEmpty) { FAIL() << "Should never be called"; }; - auto info = std::make_unique(); - info->tiles = { "tiles" }; + auto tileset = std::make_unique(); + tileset->tiles = { "tiles" }; - Source source(SourceType::Raster, "source", "", 512, std::move(info), nullptr); + Source source(SourceType::Raster, "source", "", 512, std::move(tileset), nullptr); source.setObserver(&test.observer); source.load(test.fileSource); source.update(test.updateParameters); @@ -160,10 +160,10 @@ TEST(Source, VectorTileEmpty) { FAIL() << "Should never be called"; }; - auto info = std::make_unique(); - info->tiles = { "tiles" }; + auto tileset = std::make_unique(); + tileset->tiles = { "tiles" }; - Source source(SourceType::Vector, "source", "", 512, std::move(info), nullptr); + Source source(SourceType::Vector, "source", "", 512, std::move(tileset), nullptr); source.setObserver(&test.observer); source.load(test.fileSource); source.update(test.updateParameters); @@ -189,10 +189,10 @@ TEST(Source, RasterTileFail) { test.end(); }; - auto info = std::make_unique(); - info->tiles = { "tiles" }; + auto tileset = std::make_unique(); + tileset->tiles = { "tiles" }; - Source source(SourceType::Raster, "source", "", 512, std::move(info), nullptr); + Source source(SourceType::Raster, "source", "", 512, std::move(tileset), nullptr); source.setObserver(&test.observer); source.load(test.fileSource); source.update(test.updateParameters); @@ -218,10 +218,10 @@ TEST(Source, VectorTileFail) { test.end(); }; - auto info = std::make_unique(); - info->tiles = { "tiles" }; + auto tileset = std::make_unique(); + tileset->tiles = { "tiles" }; - Source source(SourceType::Vector, "source", "", 512, std::move(info), nullptr); + Source source(SourceType::Vector, "source", "", 512, std::move(tileset), nullptr); source.setObserver(&test.observer); source.load(test.fileSource); source.update(test.updateParameters); @@ -246,10 +246,10 @@ TEST(Source, RasterTileCorrupt) { test.end(); }; - auto info = std::make_unique(); - info->tiles = { "tiles" }; + auto tileset = std::make_unique(); + tileset->tiles = { "tiles" }; - Source source(SourceType::Raster, "source", "", 512, std::move(info), nullptr); + Source source(SourceType::Raster, "source", "", 512, std::move(tileset), nullptr); source.setObserver(&test.observer); source.load(test.fileSource); source.update(test.updateParameters); @@ -278,10 +278,10 @@ TEST(Source, VectorTileCorrupt) { layer->setSource("source", "water"); test.style.addLayer(std::move(layer)); - auto info = std::make_unique(); - info->tiles = { "tiles" }; + auto tileset = std::make_unique(); + tileset->tiles = { "tiles" }; - Source source(SourceType::Vector, "source", "", 512, std::move(info), nullptr); + Source source(SourceType::Vector, "source", "", 512, std::move(tileset), nullptr); source.setObserver(&test.observer); source.load(test.fileSource); source.update(test.updateParameters); @@ -305,10 +305,10 @@ TEST(Source, RasterTileCancel) { FAIL() << "Should never be called"; }; - auto info = std::make_unique(); - info->tiles = { "tiles" }; + auto tileset = std::make_unique(); + tileset->tiles = { "tiles" }; - Source source(SourceType::Raster, "source", "", 512, std::move(info), nullptr); + Source source(SourceType::Raster, "source", "", 512, std::move(tileset), nullptr); source.setObserver(&test.observer); source.load(test.fileSource); source.update(test.updateParameters); @@ -332,10 +332,10 @@ TEST(Source, VectorTileCancel) { FAIL() << "Should never be called"; }; - auto info = std::make_unique(); - info->tiles = { "tiles" }; + auto tileset = std::make_unique(); + tileset->tiles = { "tiles" }; - Source source(SourceType::Vector, "source", "", 512, std::move(info), nullptr); + Source source(SourceType::Vector, "source", "", 512, std::move(tileset), nullptr); source.setObserver(&test.observer); source.load(test.fileSource); source.update(test.updateParameters); diff --git a/test/style/style.cpp b/test/style/style.cpp index 916e1121c..931867978 100644 --- a/test/style/style.cpp +++ b/test/style/style.cpp @@ -2,10 +2,11 @@ #include #include -#include +#include #include using namespace mbgl; +using namespace mbgl::style; TEST(Style, UnusedSource) { util::RunLoop loop; diff --git a/test/style/style_layer.cpp b/test/style/style_layer.cpp index 3274fe337..ed8904dab 100644 --- a/test/style/style_layer.cpp +++ b/test/style/style_layer.cpp @@ -1,8 +1,9 @@ #include -#include -#include +#include +#include using namespace mbgl; +using namespace mbgl::style; TEST(Layer, Clone) { std::unique_ptr layer = std::make_unique("id"); diff --git a/test/style/style_parser.cpp b/test/style/style_parser.cpp index 6245c326a..5f730a837 100644 --- a/test/style/style_parser.cpp +++ b/test/style/style_parser.cpp @@ -1,7 +1,7 @@ #include #include -#include +#include #include #include @@ -29,7 +29,7 @@ TEST_P(StyleParserTest, ParseStyle) { FixtureLogObserver* observer = new FixtureLogObserver(); Log::setObserver(std::unique_ptr(observer)); - StyleParser parser; + style::Parser parser; parser.parse(util::read_file(base + ".style.json")); for (auto it = infoDoc.MemberBegin(), end = infoDoc.MemberEnd(); it != end; it++) { @@ -86,7 +86,7 @@ INSTANTIATE_TEST_CASE_P(StyleParser, StyleParserTest, ::testing::ValuesIn([] { }())); TEST(StyleParser, ParseTileJSONRaster) { - auto result = StyleParser::parseTileJSON( + auto result = style::parseTileJSON( util::read_file("test/fixtures/style_parser/tilejson.raster.json"), "mapbox://mapbox.satellite", SourceType::Raster, @@ -103,7 +103,7 @@ TEST(StyleParser, ParseTileJSONRaster) { } TEST(StyleParser, ParseTileJSONVector) { - auto result = StyleParser::parseTileJSON( + auto result = style::parseTileJSON( util::read_file("test/fixtures/style_parser/tilejson.vector.json"), "mapbox://mapbox.streets", SourceType::Vector, @@ -116,7 +116,7 @@ TEST(StyleParser, ParseTileJSONVector) { } TEST(StyleParser, FontStacks) { - StyleParser parser; + style::Parser parser; parser.parse(util::read_file("test/fixtures/style_parser/font_stacks.json")); auto result = parser.fontStacks(); ASSERT_EQ(3, result.size());