diff options
Diffstat (limited to 'src/mbgl/map/transform_state.cpp')
-rw-r--r-- | src/mbgl/map/transform_state.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/mbgl/map/transform_state.cpp b/src/mbgl/map/transform_state.cpp index 2813d6334e..0b8d831e54 100644 --- a/src/mbgl/map/transform_state.cpp +++ b/src/mbgl/map/transform_state.cpp @@ -7,8 +7,9 @@ namespace mbgl { -TransformState::TransformState(ConstrainMode constrainMode_) +TransformState::TransformState(ConstrainMode constrainMode_, ViewportMode viewportMode_) : constrainMode(constrainMode_) + , viewportMode(viewportMode_) { } @@ -39,7 +40,8 @@ void TransformState::getProjMatrix(mat4& projMatrix) const { // After the rotateX, z values are in pixel units. Convert them to // altitude unites. 1 altitude unit = the screen height. - matrix::scale(projMatrix, projMatrix, 1, -1, 1.0f / (rotatedNorth() ? getWidth() : getHeight())); + const bool flippedY = viewportMode == ViewportMode::FlippedY; + matrix::scale(projMatrix, projMatrix, 1, flippedY ? 1 : -1, 1.0f / (rotatedNorth() ? getWidth() : getHeight())); using NO = NorthOrientation; switch (getNorthOrientation()) { @@ -89,6 +91,12 @@ ConstrainMode TransformState::getConstrainMode() const { return constrainMode; } +#pragma mark - ViewportMode + +ViewportMode TransformState::getViewportMode() const { + return viewportMode; +} + #pragma mark - Position LatLng TransformState::getLatLng(LatLng::WrapMode wrapMode) const { |