From 43acfe9cdb7649dbfbb3213a7258b4c031812df0 Mon Sep 17 00:00:00 2001 From: "r.kuznetsov" Date: Tue, 10 Jan 2017 18:48:42 +0300 Subject: [PATCH] [iOS] Fixed recovering from background in landscape mode --- iphone/Maps/Classes/EAGLView.h | 2 ++ iphone/Maps/Classes/EAGLView.mm | 8 ++++++++ iphone/Maps/Classes/MapsAppDelegate.mm | 2 +- map/framework.cpp | 6 ------ map/framework.hpp | 1 - 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/iphone/Maps/Classes/EAGLView.h b/iphone/Maps/Classes/EAGLView.h index 414e69ed81..b251b00e3a 100644 --- a/iphone/Maps/Classes/EAGLView.h +++ b/iphone/Maps/Classes/EAGLView.h @@ -24,6 +24,8 @@ namespace dp @property (nonatomic, readonly) BOOL drapeEngineCreated; +@property (nonatomic, readonly) m2::PointU pixelSize; + - (void)deallocateNative; - (CGPoint)viewPoint2GlobalPoint:(CGPoint)pt; - (CGPoint)globalPoint2ViewPoint:(CGPoint)pt; diff --git a/iphone/Maps/Classes/EAGLView.mm b/iphone/Maps/Classes/EAGLView.mm index 8757fc0432..cc3829aea3 100644 --- a/iphone/Maps/Classes/EAGLView.mm +++ b/iphone/Maps/Classes/EAGLView.mm @@ -117,6 +117,14 @@ double getExactDPI(double contentScaleFactor) }); } +- (m2::PointU)pixelSize +{ + CGSize const s = self.bounds.size; + uint32_t const w = static_cast(s.width * self.contentScaleFactor); + uint32_t const h = static_cast(s.height * self.contentScaleFactor); + return m2::PointU(w, h); +} + - (void)onSize:(int)width withHeight:(int)height { int w = width * self.contentScaleFactor; diff --git a/iphone/Maps/Classes/MapsAppDelegate.mm b/iphone/Maps/Classes/MapsAppDelegate.mm index a4b90b30ca..bb7b01fb2e 100644 --- a/iphone/Maps/Classes/MapsAppDelegate.mm +++ b/iphone/Maps/Classes/MapsAppDelegate.mm @@ -675,7 +675,7 @@ using namespace osm_auth_ios; // because of new OpenGL driver powered by Metal. if ([AppInfo sharedInfo].isMetalDriver) { - m2::PointU size = GetFramework().GetViewportPixelSize(); + m2::PointU const size = ((EAGLView *)self.mapViewController.view).pixelSize; GetFramework().OnRecoverGLContext(static_cast(size.x), static_cast(size.y)); } [MWMLocationManager applicationDidBecomeActive]; diff --git a/map/framework.cpp b/map/framework.cpp index 37cba3d706..bbb1d814e8 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -1051,12 +1051,6 @@ m2::PointD Framework::GetPixelCenter() const : m_currentModelView.PixelRect().Center(); } -m2::PointU Framework::GetViewportPixelSize() const -{ - auto & rect = m_currentModelView.PixelRect(); - return m2::PointU(static_cast(rect.SizeX()), static_cast(rect.SizeY())); -} - m2::PointD Framework::GetVisiblePixelCenter() const { return m_visibleViewport.Center(); diff --git a/map/framework.hpp b/map/framework.hpp index c3c331927f..687896699c 100644 --- a/map/framework.hpp +++ b/map/framework.hpp @@ -563,7 +563,6 @@ public: m2::PointD GetPixelCenter() const; m2::PointD GetVisiblePixelCenter() const; - m2::PointU GetViewportPixelSize() const; m2::PointD const & GetViewportCenter() const; void SetViewportCenter(m2::PointD const & pt);