From a9c34056f2112c34bb1367e0ebf86f9852875df4 Mon Sep 17 00:00:00 2001 From: Viktor Govako Date: Tue, 4 Oct 2022 21:26:23 +0300 Subject: [PATCH] [drape] Removed useless SetVisibleViewport call in OnSize. Signed-off-by: Viktor Govako --- android/jni/com/mapswithme/maps/Framework.cpp | 3 --- drape_frontend/frontend_renderer.cpp | 10 +++++----- drape_frontend/frontend_renderer.hpp | 2 -- drape_frontend/user_event_stream.cpp | 9 ++++++--- iphone/Maps/Classes/EAGLView.mm | 3 +-- map/framework.cpp | 4 +--- qt/qt_common/map_widget.cpp | 2 +- 7 files changed, 14 insertions(+), 19 deletions(-) diff --git a/android/jni/com/mapswithme/maps/Framework.cpp b/android/jni/com/mapswithme/maps/Framework.cpp index 0641c44a72..fe3876f355 100644 --- a/android/jni/com/mapswithme/maps/Framework.cpp +++ b/android/jni/com/mapswithme/maps/Framework.cpp @@ -278,9 +278,6 @@ void Framework::Resize(JNIEnv * env, jobject jSurface, int w, int h) m_oglContextFactory->CastFactory()->UpdateSurfaceSize(w, h); } m_work.OnSize(w, h); - - //TODO: remove after correct visible rect calculation. - frm()->SetVisibleViewport(m2::RectD(0, 0, w, h)); } void Framework::DetachSurface(bool destroySurface) diff --git a/drape_frontend/frontend_renderer.cpp b/drape_frontend/frontend_renderer.cpp index d26e62e23b..6c6e923d04 100755 --- a/drape_frontend/frontend_renderer.cpp +++ b/drape_frontend/frontend_renderer.cpp @@ -1738,16 +1738,16 @@ void FrontendRenderer::RenderFrame() auto & scaleFpsHelper = gui::DrapeGui::Instance().GetScaleFpsHelper(); m_frameData.m_timer.Reset(); - ScreenBase const & modelView = ProcessEvents(m_frameData.m_modelViewChanged, - m_frameData.m_viewportChanged); - if (m_frameData.m_viewportChanged || m_needRestoreSize) + bool modelViewChanged, viewportChanged; + ScreenBase const & modelView = ProcessEvents(modelViewChanged, viewportChanged); + if (viewportChanged || m_needRestoreSize) OnResize(modelView); if (!m_context->BeginRendering()) return; // Check for a frame is active. - bool isActiveFrame = m_frameData.m_modelViewChanged || m_frameData.m_viewportChanged; + bool isActiveFrame = modelViewChanged || viewportChanged; if (isActiveFrame) PrepareScene(modelView); @@ -1781,7 +1781,7 @@ void FrontendRenderer::RenderFrame() isActiveFrame = true; #endif - if (m_frameData.m_modelViewChanged || hasForceUpdate) + if (modelViewChanged || hasForceUpdate) UpdateScene(modelView); InterpolationHolder::Instance().Advance(m_frameData.m_frameTime); diff --git a/drape_frontend/frontend_renderer.hpp b/drape_frontend/frontend_renderer.hpp index d8e08cb4ea..76f9498026 100755 --- a/drape_frontend/frontend_renderer.hpp +++ b/drape_frontend/frontend_renderer.hpp @@ -433,8 +433,6 @@ private: { base::Timer m_timer; double m_frameTime = 0.0; - bool m_modelViewChanged = true; - bool m_viewportChanged = true; uint32_t m_inactiveFramesCounter = 0; bool m_forceFullRedrawNextFrame = false; #ifdef SHOW_FRAMES_STATS diff --git a/drape_frontend/user_event_stream.cpp b/drape_frontend/user_event_stream.cpp index df84b43012..17963162d8 100644 --- a/drape_frontend/user_event_stream.cpp +++ b/drape_frontend/user_event_stream.cpp @@ -277,11 +277,14 @@ ScreenBase const & UserEventStream::ProcessEvents(bool & modelViewChanged, bool m_animationSystem.UpdateLastScreen(GetCurrentScreen()); modelViewChanged = m_modelViewChanged; - - double const kEps = 1e-5; - viewportChanged |= !m2::IsEqualSize(prevPixelRect, GetCurrentScreen().PixelRect(), kEps, kEps); m_modelViewChanged = false; + if (!viewportChanged) + { + double constexpr kEps = 1e-5; + viewportChanged = !m2::IsEqualSize(prevPixelRect, GetCurrentScreen().PixelRect(), kEps, kEps); + } + return m_navigator.Screen(); } diff --git a/iphone/Maps/Classes/EAGLView.mm b/iphone/Maps/Classes/EAGLView.mm index ef1450d38c..1a730321c2 100644 --- a/iphone/Maps/Classes/EAGLView.mm +++ b/iphone/Maps/Classes/EAGLView.mm @@ -195,8 +195,7 @@ double getExactDPI(double contentScaleFactor) { m_lastViewSize = self.frame; CGSize const objcSize = [self pixelSize]; - m2::PointU const s = m2::PointU(static_cast(objcSize.width), static_cast(objcSize.height)); - GetFramework().OnSize(s.x, s.y); + GetFramework().OnSize(static_cast(objcSize.width), static_cast(objcSize.height)); [self.widgetsManager resize:objcSize]; } [super layoutSubviews]; diff --git a/map/framework.cpp b/map/framework.cpp index 9621ac7d9b..25409ba604 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -1011,6 +1011,7 @@ void Framework::OnSize(int w, int h) { if (m_drapeEngine != nullptr) m_drapeEngine->Resize(std::max(w, 2), std::max(h, 2)); + m_visibleViewport = m2::RectD(0, 0, w, h); } namespace @@ -1523,9 +1524,6 @@ void Framework::CreateDrapeEngine(ref_ptr contextFac LoadViewport(); - /// @todo Have doubts that this call below is actually needed. - SetVisibleViewport(m2::RectD(0, 0, params.m_surfaceWidth, params.m_surfaceHeight)); - if (m_connectToGpsTrack) GpsTracker::Instance().Connect(bind(&Framework::OnUpdateGpsTrackPointsCallback, this, _1, _2)); diff --git a/qt/qt_common/map_widget.cpp b/qt/qt_common/map_widget.cpp index 45c869d9a1..ee0b54311a 100644 --- a/qt/qt_common/map_widget.cpp +++ b/qt/qt_common/map_widget.cpp @@ -385,7 +385,7 @@ void MapWidget::resizeGL(int width, int height) int const w = m_screenshotMode ? width : m_ratio * width; int const h = m_screenshotMode ? height : m_ratio * height; m_framework.OnSize(w, h); - m_framework.SetVisibleViewport(m2::RectD(0, 0, w, h)); + if (m_skin) { m_skin->Resize(w, h);