From f392053df6ce7dd405739e44bc1ccdc4d1bba8b3 Mon Sep 17 00:00:00 2001 From: Mikhail Pozdnyakov Date: Thu, 25 Apr 2019 15:19:35 +0300 Subject: [core] Create ImageManager at renderer construction --- src/mbgl/renderer/renderer_impl.cpp | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp index 9f376e7cf5..a1d6945f16 100644 --- a/src/mbgl/renderer/renderer_impl.cpp +++ b/src/mbgl/renderer/renderer_impl.cpp @@ -49,12 +49,15 @@ Renderer::Impl::Impl(gfx::RendererBackend& backend_, , pixelRatio(pixelRatio_) , programCacheDir(std::move(programCacheDir_)) , localFontFamily(std::move(localFontFamily_)) + , imageManager(std::make_unique()) , lineAtlas(std::make_unique(Size{ 256, 512 })) , imageImpls(makeMutable>>()) , sourceImpls(makeMutable>>()) , layerImpls(makeMutable>>()) , renderLight(makeMutable()) - , placement(std::make_unique(TransformState{}, MapMode::Static, TransitionOptions{}, true)) {} + , placement(std::make_unique(TransformState{}, MapMode::Static, TransitionOptions{}, true)) { + imageManager->setObserver(this); +} Renderer::Impl::~Impl() { assert(gfx::BackendScope::exists()); @@ -80,13 +83,9 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { glyphManager = std::make_unique(updateParameters.fileSource, std::make_unique(localFontFamily)); glyphManager->setObserver(this); } + const bool isMapModeContinuous = updateParameters.mode == MapMode::Continuous; - if (!imageManager) { - imageManager = std::make_unique(); - imageManager->setObserver(this); - } - - if (updateParameters.mode != MapMode::Continuous) { + if (!isMapModeContinuous) { // Reset zoom history state. zoomHistory.first = true; } @@ -98,8 +97,6 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { const bool zoomChanged = zoomHistory.update(updateParameters.transformState.getZoom(), updateParameters.timePoint); - const bool isMapModeContinuous = updateParameters.mode == MapMode::Continuous; - const TransitionOptions transitionOptions = isMapModeContinuous ? updateParameters.transitionOptions : TransitionOptions(); const TransitionParameters transitionParameters { @@ -284,8 +281,8 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { tileParameters); } - bool loaded = updateParameters.styleLoaded && isLoaded(); - if (updateParameters.mode != MapMode::Continuous && !loaded) { + const bool loaded = updateParameters.styleLoaded && isLoaded(); + if (!isMapModeContinuous && !loaded) { return; } @@ -308,7 +305,7 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { } { - if (updateParameters.mode != MapMode::Continuous) { + if (!isMapModeContinuous) { // TODO: Think about right way for symbol index to handle still rendering crossTileSymbolIndex.reset(); } @@ -541,7 +538,7 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { observer->onDidFinishRenderingFrame( loaded ? RendererObserver::RenderMode::Full : RendererObserver::RenderMode::Partial, - updateParameters.mode == MapMode::Continuous && hasTransitions(parameters.timePoint) + isMapModeContinuous && hasTransitions(parameters.timePoint) ); if (!loaded) { @@ -695,9 +692,7 @@ void Renderer::Impl::dumDebugLogs() { entry.second->dumpDebugLogs(); } - if (imageManager) { - imageManager->dumpDebugLogs(); - } + imageManager->dumpDebugLogs(); } RenderLayer* Renderer::Impl::getRenderLayer(const std::string& id) { @@ -757,7 +752,7 @@ bool Renderer::Impl::isLoaded() const { } } - if (!imageManager || !imageManager->isLoaded()) { + if (!imageManager->isLoaded()) { return false; } -- cgit v1.2.1