summaryrefslogtreecommitdiff
path: root/src/mbgl/map
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/map')
-rw-r--r--src/mbgl/map/transform.cpp27
-rw-r--r--src/mbgl/map/transform_state.cpp8
2 files changed, 21 insertions, 14 deletions
diff --git a/src/mbgl/map/transform.cpp b/src/mbgl/map/transform.cpp
index d2f32acb67..bf95dd0714 100644
--- a/src/mbgl/map/transform.cpp
+++ b/src/mbgl/map/transform.cpp
@@ -45,24 +45,23 @@ Transform::Transform(std::function<void(MapChange)> callback_,
#pragma mark - Map View
bool Transform::resize(const std::array<uint16_t, 2> size) {
- if (state.width != size[0] || state.height != size[1]) {
-
- if (callback) {
- callback(MapChangeRegionWillChange);
- }
+ if (state.width == size[0] && state.height == size[1]) {
+ return false;
+ }
- state.width = size[0];
- state.height = size[1];
- state.constrain(state.scale, state.x, state.y);
+ if (callback) {
+ callback(MapChangeRegionWillChange);
+ }
- if (callback) {
- callback(MapChangeRegionDidChange);
- }
+ state.width = size[0];
+ state.height = size[1];
+ state.constrain(state.scale, state.x, state.y);
- return true;
- } else {
- return false;
+ if (callback) {
+ callback(MapChangeRegionDidChange);
}
+
+ return true;
}
#pragma mark - Camera
diff --git a/src/mbgl/map/transform_state.cpp b/src/mbgl/map/transform_state.cpp
index ad41c9eea2..ac8b6396c7 100644
--- a/src/mbgl/map/transform_state.cpp
+++ b/src/mbgl/map/transform_state.cpp
@@ -230,6 +230,10 @@ double TransformState::worldSize() const {
}
ScreenCoordinate TransformState::latLngToScreenCoordinate(const LatLng& latLng) const {
+ if (width == 0 || height == 0) {
+ return {};
+ }
+
mat4 mat = coordinatePointMatrix(getZoom());
vec4 p;
Point<double> pt = project(latLng) / double(util::tileSize);
@@ -239,6 +243,10 @@ ScreenCoordinate TransformState::latLngToScreenCoordinate(const LatLng& latLng)
}
LatLng TransformState::screenCoordinateToLatLng(const ScreenCoordinate& point, LatLng::WrapMode wrapMode) const {
+ if (width == 0 || height == 0) {
+ return {};
+ }
+
float targetZ = 0;
mat4 mat = coordinatePointMatrix(getZoom());