summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno@mapbox.com>2016-05-13 15:35:54 +0300
committerBruno de Oliveira Abinader <bruno@mapbox.com>2016-05-13 17:29:36 +0300
commitc1dde52c73061a49d576454a9ab4739e72561ca6 (patch)
treee4dbac5c318e016db9eac0f73347d7325e0afdff
parentd36111abedf0d13d6078e6c75d55668bb8786141 (diff)
downloadqtlocation-mapboxgl-c1dde52c73061a49d576454a9ab4739e72561ca6.tar.gz
[Qt] Fix map aspect ratio
Take QGuiApplication::devicePixelRatio() in consideration when resizing the map. Fixes #4889.
-rw-r--r--platform/qt/app/mapwindow.cpp9
-rw-r--r--platform/qt/src/qmapboxgl.cpp9
-rw-r--r--platform/qt/src/qquickmapboxglrenderer.cpp3
3 files changed, 17 insertions, 4 deletions
diff --git a/platform/qt/app/mapwindow.cpp b/platform/qt/app/mapwindow.cpp
index 3e0b373db3..7a431f9801 100644
--- a/platform/qt/app/mapwindow.cpp
+++ b/platform/qt/app/mapwindow.cpp
@@ -149,13 +149,16 @@ void MapWindow::initializeGL()
void MapWindow::resizeGL(int w, int h)
{
- m_map.resize(QSize(w, h));
+ QSize size(w, h);
+#if QT_VERSION >= 0x050000
+ size /= qApp->devicePixelRatio();
+#endif
+ m_map.resize(size);
+ glViewport(0, 0, size.width(), size.height());
}
void MapWindow::paintGL()
{
- glViewport(0, 0, width(), height());
-
m_frameDraws++;
m_map.render();
}
diff --git a/platform/qt/src/qmapboxgl.cpp b/platform/qt/src/qmapboxgl.cpp
index e0f57cc0dc..32e0f43c8d 100644
--- a/platform/qt/src/qmapboxgl.cpp
+++ b/platform/qt/src/qmapboxgl.cpp
@@ -11,7 +11,12 @@
#include <mbgl/util/geo.hpp>
#include <mbgl/util/traits.hpp>
+#if QT_VERSION >= 0x050000
+#include <QGuiApplication>
+#else
#include <QCoreApplication>
+#endif
+
#include <QImage>
#include <QMapboxGL>
#include <QMargins>
@@ -636,8 +641,12 @@ QMapboxGLPrivate::~QMapboxGLPrivate()
float QMapboxGLPrivate::getPixelRatio() const
{
+#if QT_VERSION >= 0x050000
+ return qApp->devicePixelRatio();
+#else
// FIXME: Should handle pixel ratio.
return 1.0;
+#endif
}
std::array<uint16_t, 2> QMapboxGLPrivate::getSize() const
diff --git a/platform/qt/src/qquickmapboxglrenderer.cpp b/platform/qt/src/qquickmapboxglrenderer.cpp
index 6212c4f128..45549cd400 100644
--- a/platform/qt/src/qquickmapboxglrenderer.cpp
+++ b/platform/qt/src/qquickmapboxglrenderer.cpp
@@ -3,6 +3,7 @@
#include <QMapboxGL>
#include <QQuickMapboxGL>
+#include <QGuiApplication>
#include <QSize>
#include <QOpenGLFramebufferObject>
#include <QOpenGLFramebufferObjectFormat>
@@ -27,7 +28,7 @@ QQuickMapboxGLRenderer::~QQuickMapboxGLRenderer()
QOpenGLFramebufferObject* QQuickMapboxGLRenderer::createFramebufferObject(const QSize &size)
{
- m_map->resize(size);
+ m_map->resize(size / qApp->devicePixelRatio());
QOpenGLFramebufferObjectFormat format;
format.setAttachment(QOpenGLFramebufferObject::CombinedDepthStencil);