From 9f3cc7b7075b29595dec394733b10fbd26f274e4 Mon Sep 17 00:00:00 2001 From: Asheem Mamoowala Date: Mon, 5 Nov 2018 14:50:18 -0800 Subject: Cleanup --- src/mbgl/renderer/buckets/circle_bucket.cpp | 3 ++- src/mbgl/renderer/buckets/line_bucket.cpp | 5 ++++- src/mbgl/renderer/buckets/line_bucket.hpp | 1 - src/mbgl/renderer/paint_property_binder.hpp | 4 ++-- src/mbgl/renderer/sources/render_vector_source.cpp | 16 ---------------- src/mbgl/renderer/sources/render_vector_source.hpp | 7 ------- src/mbgl/renderer/tile_pyramid.cpp | 5 +++-- 7 files changed, 11 insertions(+), 30 deletions(-) diff --git a/src/mbgl/renderer/buckets/circle_bucket.cpp b/src/mbgl/renderer/buckets/circle_bucket.cpp index 20c40eb0cb..cef5682430 100644 --- a/src/mbgl/renderer/buckets/circle_bucket.cpp +++ b/src/mbgl/renderer/buckets/circle_bucket.cpp @@ -101,7 +101,7 @@ void CircleBucket::addFeature(const GeometryTileFeature& feature, void CircleBucket::setFeatureState(const GeometryTileData* tileData, const std::string& sourceLayer, const FeatureStates& featureStates) { - if (featureStates.empty() /*|| stateDependentLayers.empty()*/) { return; } + if (featureStates.empty() || stateDependentLayers.empty()) { return; } auto sourceLayerData = tileData->getLayer(sourceLayer); if (sourceLayerData) { @@ -115,6 +115,7 @@ void CircleBucket::setFeatureState(const GeometryTileData* tileData, } } } + template static float get(const RenderCircleLayer& layer, const std::map& paintPropertyBinders) { auto it = paintPropertyBinders.find(layer.getID()); diff --git a/src/mbgl/renderer/buckets/line_bucket.cpp b/src/mbgl/renderer/buckets/line_bucket.cpp index 1af36e87bc..8b49387825 100644 --- a/src/mbgl/renderer/buckets/line_bucket.cpp +++ b/src/mbgl/renderer/buckets/line_bucket.cpp @@ -61,7 +61,10 @@ void LineBucket::setFeatureState(const GeometryTileData* tileData, if (sourceLayerData) { for (auto& pair : paintPropertyBinders) { if (stateDependentLayers.count(pair.first) > 0) { - pair.second.updateVertexVectors(featureStates, *sourceLayerData); + if(pair.second.updateVertexVectors(featureStates, *sourceLayerData)) { + //Only toggle uploaded if needed. + uploaded = false; + } } } } diff --git a/src/mbgl/renderer/buckets/line_bucket.hpp b/src/mbgl/renderer/buckets/line_bucket.hpp index 58ec00de22..6596d9d8a6 100644 --- a/src/mbgl/renderer/buckets/line_bucket.hpp +++ b/src/mbgl/renderer/buckets/line_bucket.hpp @@ -53,7 +53,6 @@ public: optional> vertexBuffer; optional> indexBuffer; - //TODO: AHM: Can these two be combined? Also need to store if bucket needs to be re-uploaded std::map paintPropertyBinders; std::set stateDependentLayers; private: diff --git a/src/mbgl/renderer/paint_property_binder.hpp b/src/mbgl/renderer/paint_property_binder.hpp index b3d60e3d6e..95a02ae80e 100644 --- a/src/mbgl/renderer/paint_property_binder.hpp +++ b/src/mbgl/renderer/paint_property_binder.hpp @@ -394,8 +394,8 @@ public: void updateVertexVector(size_t, size_t, const GeometryTileFeature&, const PropertyMap&) override { if (!isUpdateable) return; - //TODO: AHM: How to evaluate expression with feature-state to determine - // patterns and pattern positions synchronously + //TODO: AHM: How to evaluate expressions with feature-state to determine + // patterns and pattern positions synchronously? }; std::tuple, optional> attributeBinding(const PossiblyEvaluatedPropertyValue>& currentValue) const override { diff --git a/src/mbgl/renderer/sources/render_vector_source.cpp b/src/mbgl/renderer/sources/render_vector_source.cpp index aa1e18acd7..4de4f01e3f 100644 --- a/src/mbgl/renderer/sources/render_vector_source.cpp +++ b/src/mbgl/renderer/sources/render_vector_source.cpp @@ -25,7 +25,6 @@ bool RenderVectorSource::isLoaded() const { void RenderVectorSource::update(Immutable baseImpl_, const std::vector>& layers, - const FeatureStatesMap& newStates, const bool needsRendering, const bool needsRelayout, const TileParameters& parameters) { @@ -51,7 +50,6 @@ void RenderVectorSource::update(Immutable baseImpl_, } tilePyramid.update(layers, - newStates, needsRendering, needsRelayout, parameters, @@ -64,20 +62,6 @@ void RenderVectorSource::update(Immutable baseImpl_, }); } - -void RenderVectorSource::update(Immutable baseImpl_, - const std::vector>& layers, - const bool needsRendering, - const bool needsRelayout, - const TileParameters& parameters) { - update(baseImpl_, - layers, - {}, - needsRendering, - needsRelayout, - parameters); -} - void RenderVectorSource::startRender(PaintParameters& parameters) { parameters.clipIDGenerator.update(tilePyramid.getRenderTiles()); tilePyramid.startRender(parameters); diff --git a/src/mbgl/renderer/sources/render_vector_source.hpp b/src/mbgl/renderer/sources/render_vector_source.hpp index 8b1712c020..6da95b6dc5 100644 --- a/src/mbgl/renderer/sources/render_vector_source.hpp +++ b/src/mbgl/renderer/sources/render_vector_source.hpp @@ -13,13 +13,6 @@ public: bool isLoaded() const final; - void update(Immutable, - const std::vector>&, - const FeatureStatesMap&, - bool needsRendering, - bool needsRelayout, - const TileParameters&); - void update(Immutable, const std::vector>&, bool needsRendering, diff --git a/src/mbgl/renderer/tile_pyramid.cpp b/src/mbgl/renderer/tile_pyramid.cpp index 361b996640..b23adbec6e 100644 --- a/src/mbgl/renderer/tile_pyramid.cpp +++ b/src/mbgl/renderer/tile_pyramid.cpp @@ -71,9 +71,10 @@ void TilePyramid::update(const std::vector>& layer const Range zoomRange, optional bounds, std::function (const OverscaledTileID&)> createTile) { - update(layers, {}, needsRendering, needsRelayout, parameters, type, tileSize, zoomRange, bounds, createTile); -} + FeatureStatesMap fsm; + update(layers,fsm, needsRendering, needsRelayout, parameters, type, tileSize, zoomRange, bounds, createTile); +} void extend(PropertyMap& a, const PropertyMap& b) { for (const auto& pair: b) { auto it = a.find(pair.first); -- cgit v1.2.1