summaryrefslogtreecommitdiff
path: root/src/mbgl/map/map.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/map/map.cpp')
-rw-r--r--src/mbgl/map/map.cpp21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp
index 0747606fc6..a4f9422184 100644
--- a/src/mbgl/map/map.cpp
+++ b/src/mbgl/map/map.cpp
@@ -34,7 +34,7 @@ enum class RenderState {
class Map::Impl : public Style::Observer {
public:
- Impl(View&, FileSource&, MapMode, GLContextMode, ConstrainMode);
+ Impl(View&, FileSource&, MapMode, GLContextMode, ConstrainMode, ViewportMode);
void onResourceLoaded() override;
void onResourceError(std::exception_ptr) override;
@@ -76,16 +76,16 @@ public:
bool loading = false;
};
-Map::Map(View& view, FileSource& fileSource, MapMode mapMode, GLContextMode contextMode, ConstrainMode constrainMode)
- : impl(std::make_unique<Impl>(view, fileSource, mapMode, contextMode, constrainMode)) {
+Map::Map(View& view, FileSource& fileSource, MapMode mapMode, GLContextMode contextMode, ConstrainMode constrainMode, ViewportMode viewportMode)
+ : impl(std::make_unique<Impl>(view, fileSource, mapMode, contextMode, constrainMode, viewportMode)) {
view.initialize(this);
update(Update::Dimensions);
}
-Map::Impl::Impl(View& view_, FileSource& fileSource_, MapMode mode_, GLContextMode contextMode_, ConstrainMode constrainMode_)
+Map::Impl::Impl(View& view_, FileSource& fileSource_, MapMode mode_, GLContextMode contextMode_, ConstrainMode constrainMode_, ViewportMode viewportMode_)
: view(view_),
fileSource(fileSource_),
- transform(view, constrainMode_),
+ transform(view, constrainMode_, viewportMode_),
mode(mode_),
contextMode(contextMode_),
pixelRatio(view.getPixelRatio()),
@@ -638,6 +638,17 @@ ConstrainMode Map::getConstrainMode() const {
return impl->transform.getConstrainMode();
}
+#pragma mark - Viewport mode
+
+void Map::setViewportMode(mbgl::ViewportMode mode) {
+ impl->transform.setViewportMode(mode);
+ update(Update::Repaint);
+}
+
+ViewportMode Map::getViewportMode() const {
+ return impl->transform.getViewportMode();
+}
+
#pragma mark - Projection
double Map::getMetersPerPixelAtLatitude(double lat, double zoom) const {