diff options
-rw-r--r-- | include/llmr/style/style_bucket.hpp | 3 | ||||
-rw-r--r-- | src/map/map.cpp | 9 |
2 files changed, 7 insertions, 5 deletions
diff --git a/include/llmr/style/style_bucket.hpp b/include/llmr/style/style_bucket.hpp index c8529fdd23..0f3824211a 100644 --- a/include/llmr/style/style_bucket.hpp +++ b/include/llmr/style/style_bucket.hpp @@ -12,6 +12,8 @@ namespace llmr { +class Source; + class StyleBucketFill { public: WindingType winding = WindingType::Default; @@ -74,6 +76,7 @@ public: std::string name; std::shared_ptr<StyleSource> style_source; + std::shared_ptr<Source> source; std::string source_layer; FilterExpression filter; StyleBucketRender render = std::false_type(); diff --git a/src/map/map.cpp b/src/map/map.cpp index db81700c47..3443cf78e0 100644 --- a/src/map/map.cpp +++ b/src/map/map.cpp @@ -183,7 +183,7 @@ std::string Map::getStyleJSON() const { return styleJSON; } -void Map::setAccessToken( std::string access_token) { +void Map::setAccessToken(std::string access_token) { accessToken.swap(access_token); } @@ -426,7 +426,8 @@ void Map::updateSources(const std::shared_ptr<StyleLayerGroup> &group) { if (!layer) continue; if (layer->bucket) { if (layer->bucket->style_source) { - activeSources.emplace(std::make_shared<Source>(*layer->bucket->style_source, this->getAccessToken())); + auto ret = activeSources.emplace(std::make_shared<Source>(*layer->bucket->style_source, this->getAccessToken())); + layer->bucket->source = *ret.first; } } else if (layer->layers) { updateSources(layer->layers); @@ -659,8 +660,6 @@ void Map::renderLayer(std::shared_ptr<StyleLayer> layer_desc, RenderPass pass) { << layer_desc->type << ")" << std::endl; } - // TODO: THIS IS BAD, FIXME - Source source(*layer_desc->bucket->style_source, this->getAccessToken()); - source.render(painter, layer_desc); + layer_desc->bucket->source->render(painter, layer_desc); } } |