diff options
author | Daria Volvenkova <d.volvenkova@corp.mail.ru> | 2018-07-11 18:32:55 +0300 |
---|---|---|
committer | Vlad Mihaylenko <vxmihaylenko@gmail.com> | 2018-07-20 14:51:41 +0300 |
commit | ec47c41a1654a5c95dd6c5c905adc3b900e6f6f1 (patch) | |
tree | 9f80c3c933e8c5e77b667e9233c6a1102bf88dcb /drape_frontend | |
parent | 29fe27c2b122abc5b11e37299278e0519986e1d0 (diff) |
Enable antialiasing when transit scheme is enabled.
Diffstat (limited to 'drape_frontend')
-rwxr-xr-x | drape_frontend/frontend_renderer.cpp | 6 | ||||
-rwxr-xr-x | drape_frontend/frontend_renderer.hpp | 1 | ||||
-rw-r--r-- | 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> message) { ref_ptr<EnableTransitSchemeMessage > 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> message) case Message::SetPosteffectEnabled: { ref_ptr<SetPosteffectEnabledMessage> 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<PostprocessRenderer> m_postprocessRenderer; drape_ptr<ScenarioManager> 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<PostprocessRenderer> renderer) |