summaryrefslogtreecommitdiff
path: root/src/mbgl/map/transform_state.cpp
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno@mapbox.com>2016-05-11 14:10:17 +0300
committerBruno de Oliveira Abinader <bruno@mapbox.com>2016-05-11 15:48:51 +0300
commitc13dd32242b559b00b0b716dc524ed5161c2b147 (patch)
tree96c83728499b7317c8a6d087d38016b9a2e55644 /src/mbgl/map/transform_state.cpp
parent659c2568ece4153f34d2880e53f54351f51b0917 (diff)
downloadqtlocation-mapboxgl-c13dd32242b559b00b0b716dc524ed5161c2b147.tar.gz
[core] Added Viewport mode
Satisfies embedding platforms that requires the viewport coordinate systems to be set according to its standards e.g. viewport mirrored vertically.
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 {