From ec47c41a1654a5c95dd6c5c905adc3b900e6f6f1 Mon Sep 17 00:00:00 2001 From: Daria Volvenkova Date: Wed, 11 Jul 2018 18:32:55 +0300 Subject: [PATCH] Enable antialiasing when transit scheme is enabled. --- drape_frontend/frontend_renderer.cpp | 6 ++++++ drape_frontend/frontend_renderer.hpp | 1 + drape_frontend/postprocess_renderer.cpp | 18 ++++++++++++++++-- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/drape_frontend/frontend_renderer.cpp b/drape_frontend/frontend_renderer.cpp index 8f15c6d809..6ebd798261 100755 --- a/drape_frontend/frontend_renderer.cpp +++ b/drape_frontend/frontend_renderer.cpp @@ -759,6 +759,10 @@ void FrontendRenderer::AcceptMessage(ref_ptr message) { ref_ptr msg = message; m_transitSchemeEnabled = msg->IsEnabled(); +#ifndef OMIM_OS_IPHONE_SIMULATOR + m_postprocessRenderer->SetEffectEnabled(PostprocessRenderer::Effect::Antialiasing, + msg->IsEnabled() ? true : m_isAntialiasingEnabled); +#endif if (!msg->IsEnabled()) m_transitSchemeRenderer->ClearGLDependentResources(make_ref(m_overlayTree)); break; @@ -855,6 +859,8 @@ void FrontendRenderer::AcceptMessage(ref_ptr message) case Message::SetPosteffectEnabled: { ref_ptr msg = message; + if (msg->GetEffect() == PostprocessRenderer::Effect::Antialiasing) + m_isAntialiasingEnabled = msg->IsEnabled(); #ifndef OMIM_OS_IPHONE_SIMULATOR m_postprocessRenderer->SetEffectEnabled(msg->GetEffect(), msg->IsEnabled()); #endif diff --git a/drape_frontend/frontend_renderer.hpp b/drape_frontend/frontend_renderer.hpp index 4976bf8765..42d1fc42db 100755 --- a/drape_frontend/frontend_renderer.hpp +++ b/drape_frontend/frontend_renderer.hpp @@ -330,6 +330,7 @@ private: bool m_forceUpdateScene; bool m_forceUpdateUserMarks; + bool m_isAntialiasingEnabled = false; drape_ptr m_postprocessRenderer; drape_ptr m_scenarioManager; diff --git a/drape_frontend/postprocess_renderer.cpp b/drape_frontend/postprocess_renderer.cpp index 809edf7e3d..b0666d1387 100644 --- a/drape_frontend/postprocess_renderer.cpp +++ b/drape_frontend/postprocess_renderer.cpp @@ -453,9 +453,23 @@ void PostprocessRenderer::OnFramebufferFallback() void PostprocessRenderer::OnChangedRouteFollowingMode(bool isRouteFollowingActive) { + if (m_isRouteFollowingActive == isRouteFollowingActive) + return; + m_isRouteFollowingActive = isRouteFollowingActive; - m_isMainFramebufferRendered = false; - m_isSmaaFramebufferRendered = false; + if (m_isRouteFollowingActive) + { + if (m_width != 0 && m_height != 0) + UpdateFramebuffers(m_width, m_height); + } + else + { + m_isMainFramebufferRendered = false; + m_isSmaaFramebufferRendered = false; + m_edgesFramebuffer.reset(); + m_blendingWeightFramebuffer.reset(); + m_smaaFramebuffer.reset(); + } } StencilWriterGuard::StencilWriterGuard(ref_ptr renderer)