diff options
author | Daria Volvenkova <d.volvenkova@corp.mail.ru> | 2016-06-20 17:02:44 +0300 |
---|---|---|
committer | Daria Volvenkova <d.volvenkova@corp.mail.ru> | 2016-07-07 15:31:08 +0300 |
commit | 500c4a0e51272e651c01a23d5f016d3bdf4b23c5 (patch) | |
tree | cb4d0df9dcc34f1a2ad14a1a22c8ca18154ed7f7 /drape_frontend | |
parent | fdf4f75816a9ba288d3d0d5108f13054890ad555 (diff) |
Fixed manual scaling in follow and follow-and-rotate modes.
Diffstat (limited to 'drape_frontend')
-rwxr-xr-x | drape_frontend/frontend_renderer.cpp | 2 | ||||
-rw-r--r-- | drape_frontend/my_position_controller.cpp | 2 | ||||
-rw-r--r-- | drape_frontend/my_position_controller.hpp | 2 | ||||
-rw-r--r-- | drape_frontend/screen_operations.cpp | 5 |
4 files changed, 4 insertions, 7 deletions
diff --git a/drape_frontend/frontend_renderer.cpp b/drape_frontend/frontend_renderer.cpp index d8c9010db5..7260363d4e 100755 --- a/drape_frontend/frontend_renderer.cpp +++ b/drape_frontend/frontend_renderer.cpp @@ -816,10 +816,10 @@ void FrontendRenderer::OnResize(ScreenBase const & screen) bool const viewportChanged = !m2::IsEqualSize(m_lastReadedModelView.PixelRectIn3d(), viewportRect, kEps, kEps); m_myPositionController->UpdatePixelPosition(screen); - m_myPositionController->OnNewPixelRect(); if (viewportChanged) { + m_myPositionController->OnNewViewportRect(); m_viewport.SetViewport(0, 0, viewportRect.SizeX(), viewportRect.SizeY()); m_contextFactory->getDrawContext()->resize(viewportRect.SizeX(), viewportRect.SizeY()); m_framebuffer->SetSize(viewportRect.SizeX(), viewportRect.SizeY()); diff --git a/drape_frontend/my_position_controller.cpp b/drape_frontend/my_position_controller.cpp index 5d91c921d4..29bbf6e6c4 100644 --- a/drape_frontend/my_position_controller.cpp +++ b/drape_frontend/my_position_controller.cpp @@ -103,7 +103,7 @@ MyPositionController::~MyPositionController() { } -void MyPositionController::OnNewPixelRect() +void MyPositionController::OnNewViewportRect() { UpdateViewport(kDoNotChangeZoom); } diff --git a/drape_frontend/my_position_controller.hpp b/drape_frontend/my_position_controller.hpp index e93b6e9fff..f8516cdd88 100644 --- a/drape_frontend/my_position_controller.hpp +++ b/drape_frontend/my_position_controller.hpp @@ -47,7 +47,7 @@ public: bool isFirstLaunch, bool isRoutingActive); ~MyPositionController(); - void OnNewPixelRect(); + void OnNewViewportRect(); void UpdatePixelPosition(ScreenBase const & screen); void SetListener(ref_ptr<Listener> listener); diff --git a/drape_frontend/screen_operations.cpp b/drape_frontend/screen_operations.cpp index acc083dedc..7e5dd93133 100644 --- a/drape_frontend/screen_operations.cpp +++ b/drape_frontend/screen_operations.cpp @@ -240,13 +240,10 @@ ScreenBase const ShrinkAndScaleInto(ScreenBase const & screen, m2::RectD boundRe bool ApplyScale(m2::PointD const & pixelScaleCenter, double factor, ScreenBase & screen) { m2::PointD const globalScaleCenter = screen.PtoG(screen.P3dtoP(pixelScaleCenter)); - m2::PointD const pixelCenterOffset = screen.PixelRect().Center() - screen.P3dtoP(pixelScaleCenter); ScreenBase tmp = screen; tmp.Scale(factor); - - m2::PointD newCenter = tmp.PtoG(tmp.GtoP(globalScaleCenter) + pixelCenterOffset); - tmp.SetOrg(newCenter); + tmp.MatchGandP3d(globalScaleCenter, pixelScaleCenter); if (!CheckMinScale(tmp)) return false; |