diff options
author | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2016-05-11 14:10:17 +0300 |
---|---|---|
committer | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2016-05-11 15:48:51 +0300 |
commit | c13dd32242b559b00b0b716dc524ed5161c2b147 (patch) | |
tree | 96c83728499b7317c8a6d087d38016b9a2e55644 /src/mbgl/map/transform_state.cpp | |
parent | 659c2568ece4153f34d2880e53f54351f51b0917 (diff) | |
download | qtlocation-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.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 { |