summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/renderer_impl.cpp
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2017-08-12 14:22:01 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2017-08-24 13:06:23 -0700
commit9c02e4d7dd536253f9ce3194fa9930a842fa4888 (patch)
treec0b9150419658925a43e0dd47895926eaaa2c624 /src/mbgl/renderer/renderer_impl.cpp
parentd05486391a75de8dace7aec258121a92a3e698fb (diff)
downloadqtlocation-mapboxgl-9c02e4d7dd536253f9ce3194fa9930a842fa4888.tar.gz
[core] Inline Renderer::Impl::doRender
Diffstat (limited to 'src/mbgl/renderer/renderer_impl.cpp')
-rw-r--r--src/mbgl/renderer/renderer_impl.cpp58
1 files changed, 22 insertions, 36 deletions
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<Feature> Renderer::Impl::queryRenderedFeatures(const ScreenLineString& geometry, const RenderedQueryOptions& options) const {