From e2749597534d351d81cb8c2a2bc9b9886fef8028 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20K=C3=A4fer?= Date: Tue, 12 May 2015 17:30:40 +0200 Subject: [PATCH] abort rendering early when we don't need to when rendering still images, we don't need to render until everything is completely loaded --- src/mbgl/map/map_context.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/mbgl/map/map_context.cpp b/src/mbgl/map/map_context.cpp index b239eb18a..087b9ae9b 100644 --- a/src/mbgl/map/map_context.cpp +++ b/src/mbgl/map/map_context.cpp @@ -216,6 +216,11 @@ void MapContext::render() { // Cleanup OpenGL objects that we abandoned since the last render call. env.performCleanup(); + if (data.mode == MapMode::Still && (!callback || !data.getFullyLoaded())) { + // We are either not waiting for a map to be rendered, or we don't have all resources yet. + return; + } + assert(style); if (!painter) { @@ -226,7 +231,7 @@ void MapContext::render() { painter->setDebug(data.getDebug()); painter->render(*style, transformState, data.getAnimationTime()); - if (data.mode == MapMode::Still && callback && style->isLoaded() && resourceLoader->getSprite()->isLoaded()) { + if (data.mode == MapMode::Still) { callback(view.readStillImage()); callback = nullptr; }