From 9c02e4d7dd536253f9ce3194fa9930a842fa4888 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Sat, 12 Aug 2017 14:22:01 -0700 Subject: [core] Inline Renderer::Impl::doRender --- src/mbgl/renderer/renderer_impl.cpp | 58 ++++++++++++++----------------------- 1 file changed, 22 insertions(+), 36 deletions(-) (limited to 'src/mbgl/renderer/renderer_impl.cpp') diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp index 0e1e621770..fc1cfca518 100644 --- a/src/mbgl/renderer/renderer_impl.cpp +++ b/src/mbgl/renderer/renderer_impl.cpp @@ -243,47 +243,18 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { }; bool loaded = updateParameters.styleLoaded && isLoaded(); + if (updateParameters.mode == MapMode::Still && !loaded) { + return; + } - if (updateParameters.mode == MapMode::Continuous) { - if (renderState == RenderState::Never) { - observer->onWillStartRenderingMap(); - } - - observer->onWillStartRenderingFrame(); - - backend.updateAssumedState(); - - doRender(parameters); - parameters.context.performCleanup(); - - observer->onDidFinishRenderingFrame( - loaded ? RendererObserver::RenderMode::Full : RendererObserver::RenderMode::Partial, - hasTransitions() || frameHistory.needsAnimation(util::DEFAULT_TRANSITION_DURATION) - ); - - if (!loaded) { - renderState = RenderState::Partial; - } else if (renderState != RenderState::Fully) { - renderState = RenderState::Fully; - observer->onDidFinishRenderingMap(); - } - } else if (loaded) { + if (renderState == RenderState::Never) { observer->onWillStartRenderingMap(); - observer->onWillStartRenderingFrame(); - - backend.updateAssumedState(); - - doRender(parameters); + } - observer->onDidFinishRenderingFrame(RendererObserver::RenderMode::Full, false); - observer->onDidFinishRenderingMap(); + observer->onWillStartRenderingFrame(); - // Cleanup only after signaling completion - parameters.context.performCleanup(); - } -} + backend.updateAssumedState(); -void Renderer::Impl::doRender(PaintParameters& parameters) { if (parameters.contextMode == GLContextMode::Shared) { parameters.context.setDirtyState(); } @@ -606,6 +577,21 @@ void Renderer::Impl::doRender(PaintParameters& parameters) { parameters.context.bindVertexArray = 0; } + + observer->onDidFinishRenderingFrame( + loaded ? RendererObserver::RenderMode::Full : RendererObserver::RenderMode::Partial, + updateParameters.mode == MapMode::Continuous && (hasTransitions() || frameHistory.needsAnimation(util::DEFAULT_TRANSITION_DURATION)) + ); + + if (!loaded) { + renderState = RenderState::Partial; + } else if (renderState != RenderState::Fully) { + renderState = RenderState::Fully; + observer->onDidFinishRenderingMap(); + } + + // Cleanup only after signaling completion + parameters.context.performCleanup(); } std::vector Renderer::Impl::queryRenderedFeatures(const ScreenLineString& geometry, const RenderedQueryOptions& options) const { -- cgit v1.2.1