diff options
Diffstat (limited to 'src/mbgl/renderer')
-rw-r--r-- | src/mbgl/renderer/render_orchestrator.cpp | 7 | ||||
-rw-r--r-- | src/mbgl/renderer/render_orchestrator.hpp | 1 | ||||
-rw-r--r-- | src/mbgl/renderer/update_parameters.hpp | 7 |
3 files changed, 13 insertions, 2 deletions
diff --git a/src/mbgl/renderer/render_orchestrator.cpp b/src/mbgl/renderer/render_orchestrator.cpp index 7fb6eff29c..5851da98eb 100644 --- a/src/mbgl/renderer/render_orchestrator.cpp +++ b/src/mbgl/renderer/render_orchestrator.cpp @@ -141,6 +141,13 @@ std::unique_ptr<RenderTree> RenderOrchestrator::createRenderTree( if (!isMapModeContinuous) { // Reset zoom history state. zoomHistory.first = true; + if (!updateParameters->keepRenderData && stillImageRequest != updateParameters->stillImageRequest) { + sourceImpls = makeMutable<std::vector<Immutable<style::Source::Impl>>>(); + layerImpls = makeMutable<std::vector<Immutable<style::Layer::Impl>>>(); + renderSources.clear(); + renderLayers.clear(); + stillImageRequest = updateParameters->stillImageRequest; + } } if (LayerManager::annotationsEnabled) { diff --git a/src/mbgl/renderer/render_orchestrator.hpp b/src/mbgl/renderer/render_orchestrator.hpp index 4983538749..7ede688dd7 100644 --- a/src/mbgl/renderer/render_orchestrator.hpp +++ b/src/mbgl/renderer/render_orchestrator.hpp @@ -126,6 +126,7 @@ private: const bool backgroundLayerAsColor; bool contextLost = false; + const void* stillImageRequest = nullptr; // Vectors with reserved capacity of layerImpls->size() to avoid reallocation // on each frame. diff --git a/src/mbgl/renderer/update_parameters.hpp b/src/mbgl/renderer/update_parameters.hpp index 8dd256329a..fbdebc4197 100644 --- a/src/mbgl/renderer/update_parameters.hpp +++ b/src/mbgl/renderer/update_parameters.hpp @@ -41,9 +41,12 @@ public: const uint8_t prefetchZoomDelta; // For still image requests, render requested - const bool stillImageRequest; - + const void* stillImageRequest; + const bool crossSourceCollisions; + + // If set, the render data from the previous render calls is kept. + const bool keepRenderData; }; } // namespace mbgl |