summaryrefslogtreecommitdiff
path: root/src/mbgl/map/transform_state.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/map/transform_state.cpp')
-rw-r--r--src/mbgl/map/transform_state.cpp12
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 {