From 74af076d405a089fac70a47e41fe92d04d97fc50 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Tue, 30 May 2017 13:58:59 -0700 Subject: [core] Split RenderStyle from Style --- src/mbgl/annotation/render_annotation_source.cpp | 2 +- src/mbgl/annotation/render_annotation_source.hpp | 2 +- src/mbgl/geometry/feature_index.cpp | 10 +- src/mbgl/geometry/feature_index.hpp | 9 +- src/mbgl/map/map.cpp | 61 ++- src/mbgl/renderer/painter.cpp | 4 +- src/mbgl/renderer/painter.hpp | 11 +- src/mbgl/renderer/render_source.hpp | 7 +- src/mbgl/renderer/render_style.cpp | 445 +++++++++++++++++++ src/mbgl/renderer/render_style.hpp | 93 ++++ src/mbgl/renderer/render_style_observer.hpp | 14 + .../renderer/sources/render_geojson_source.cpp | 2 +- .../renderer/sources/render_geojson_source.hpp | 2 +- src/mbgl/renderer/sources/render_image_source.cpp | 2 +- src/mbgl/renderer/sources/render_image_source.hpp | 2 +- src/mbgl/renderer/sources/render_raster_source.cpp | 2 +- src/mbgl/renderer/sources/render_raster_source.hpp | 2 +- src/mbgl/renderer/sources/render_vector_source.cpp | 2 +- src/mbgl/renderer/sources/render_vector_source.hpp | 2 +- src/mbgl/renderer/tile_pyramid.cpp | 2 +- src/mbgl/renderer/tile_pyramid.hpp | 7 +- src/mbgl/renderer/update_parameters.hpp | 12 +- src/mbgl/style/style.cpp | 483 ++------------------- src/mbgl/style/style.hpp | 84 +--- src/mbgl/tile/geometry_tile.cpp | 2 +- src/mbgl/tile/geometry_tile.hpp | 3 +- src/mbgl/tile/tile.cpp | 2 +- src/mbgl/tile/tile.hpp | 7 +- 28 files changed, 683 insertions(+), 593 deletions(-) create mode 100644 src/mbgl/renderer/render_style.cpp create mode 100644 src/mbgl/renderer/render_style.hpp create mode 100644 src/mbgl/renderer/render_style_observer.hpp (limited to 'src/mbgl') diff --git a/src/mbgl/annotation/render_annotation_source.cpp b/src/mbgl/annotation/render_annotation_source.cpp index dce2914e7f..4618761273 100644 --- a/src/mbgl/annotation/render_annotation_source.cpp +++ b/src/mbgl/annotation/render_annotation_source.cpp @@ -59,7 +59,7 @@ std::map& RenderAnnotationSource::getRenderTiles() std::unordered_map> RenderAnnotationSource::queryRenderedFeatures(const ScreenLineString& geometry, const TransformState& transformState, - const style::Style& style, + const RenderStyle& style, const RenderedQueryOptions& options) const { return tilePyramid.queryRenderedFeatures(geometry, transformState, style, options); } diff --git a/src/mbgl/annotation/render_annotation_source.hpp b/src/mbgl/annotation/render_annotation_source.hpp index ed30e62381..e0c9018e17 100644 --- a/src/mbgl/annotation/render_annotation_source.hpp +++ b/src/mbgl/annotation/render_annotation_source.hpp @@ -29,7 +29,7 @@ public: std::unordered_map> queryRenderedFeatures(const ScreenLineString& geometry, const TransformState& transformState, - const style::Style& style, + const RenderStyle& style, const RenderedQueryOptions& options) const final; std::vector diff --git a/src/mbgl/geometry/feature_index.cpp b/src/mbgl/geometry/feature_index.cpp index 115b9f354d..b1594388c4 100644 --- a/src/mbgl/geometry/feature_index.cpp +++ b/src/mbgl/geometry/feature_index.cpp @@ -1,5 +1,5 @@ #include -#include +#include #include #include #include @@ -54,7 +54,7 @@ static bool topDownSymbols(const IndexedSubfeature& a, const IndexedSubfeature& } static int16_t getAdditionalQueryRadius(const RenderedQueryOptions& queryOptions, - const style::Style& style, + const RenderStyle& style, const GeometryTile& tile, const float pixelsToTileUnits) { @@ -69,7 +69,7 @@ static int16_t getAdditionalQueryRadius(const RenderedQueryOptions& queryOptions if (queryOptions.layerIDs) { for (const auto& layerID : *queryOptions.layerIDs) { - RenderLayer* layer = style.getRenderLayer(layerID); + const RenderLayer* layer = style.getRenderLayer(layerID); if (layer) { getQueryRadius(*layer); } @@ -92,7 +92,7 @@ void FeatureIndex::query( const RenderedQueryOptions& queryOptions, const GeometryTileData& geometryTileData, const CanonicalTileID& tileID, - const style::Style& style, + const RenderStyle& style, const CollisionTile* collisionTile, const GeometryTile& tile) const { @@ -135,7 +135,7 @@ void FeatureIndex::addFeature( const RenderedQueryOptions& options, const GeometryTileData& geometryTileData, const CanonicalTileID& tileID, - const style::Style& style, + const RenderStyle& style, const float bearing, const float pixelsToTileUnits) const { diff --git a/src/mbgl/geometry/feature_index.hpp b/src/mbgl/geometry/feature_index.hpp index f7aa0182e4..83f339a9de 100644 --- a/src/mbgl/geometry/feature_index.hpp +++ b/src/mbgl/geometry/feature_index.hpp @@ -13,10 +13,7 @@ namespace mbgl { class GeometryTile; class RenderedQueryOptions; - -namespace style { -class Style; -} // namespace style +class RenderStyle; class CollisionTile; class CanonicalTileID; @@ -45,7 +42,7 @@ public: const RenderedQueryOptions& options, const GeometryTileData&, const CanonicalTileID&, - const style::Style&, + const RenderStyle&, const CollisionTile*, const GeometryTile& tile) const; @@ -66,7 +63,7 @@ private: const RenderedQueryOptions& options, const GeometryTileData&, const CanonicalTileID&, - const style::Style&, + const RenderStyle&, const float bearing, const float pixelsToTileUnits) const; diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp index 2fd575e6bf..dd3d10d253 100644 --- a/src/mbgl/map/map.cpp +++ b/src/mbgl/map/map.cpp @@ -15,6 +15,8 @@ #include #include #include +#include +#include #include #include #include @@ -48,7 +50,8 @@ struct StillImageRequest { Map::StillImageCallback callback; }; -class Map::Impl : public style::Observer { +class Map::Impl : public style::Observer, + public RenderStyleObserver { public: Impl(Map&, Backend&, @@ -63,6 +66,7 @@ public: void onSourceChanged(style::Source&) override; void onUpdate(Update) override; + void onInvalidate() override; void onStyleLoaded() override; void onStyleError(std::exception_ptr) override; void onResourceError(std::exception_ptr) override; @@ -93,6 +97,7 @@ public: AnnotationManager annotationManager; std::unique_ptr painter; std::unique_ptr