summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-04-25 15:19:35 +0300
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-04-25 17:44:00 +0300
commitf392053df6ce7dd405739e44bc1ccdc4d1bba8b3 (patch)
tree7a7cc6149621e2799e8fc6313e99f2a08775f5b4
parentf5773adcce7f1395fd422f74754ed8d2b1ef90d4 (diff)
downloadqtlocation-mapboxgl-f392053df6ce7dd405739e44bc1ccdc4d1bba8b3.tar.gz
[core] Create ImageManager at renderer construction
-rw-r--r--src/mbgl/renderer/renderer_impl.cpp29
1 files 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<ImageManager>())
, lineAtlas(std::make_unique<LineAtlas>(Size{ 256, 512 }))
, imageImpls(makeMutable<std::vector<Immutable<style::Image::Impl>>>())
, sourceImpls(makeMutable<std::vector<Immutable<style::Source::Impl>>>())
, layerImpls(makeMutable<std::vector<Immutable<style::Layer::Impl>>>())
, renderLight(makeMutable<Light::Impl>())
- , placement(std::make_unique<Placement>(TransformState{}, MapMode::Static, TransitionOptions{}, true)) {}
+ , placement(std::make_unique<Placement>(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<GlyphManager>(updateParameters.fileSource, std::make_unique<LocalGlyphRasterizer>(localFontFamily));
glyphManager->setObserver(this);
}
+ const bool isMapModeContinuous = updateParameters.mode == MapMode::Continuous;
- if (!imageManager) {
- imageManager = std::make_unique<ImageManager>();
- 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;
}