summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorThiago Marcos P. Santos <thiago@mapbox.com>2015-10-31 08:43:05 +0200
committerThiago Marcos P. Santos <thiago@mapbox.com>2016-04-20 20:55:51 +0300
commitb9bbe68fe0232f554a7c79185e8954b087a48fde (patch)
tree1a347bd4b3982f34c953366a7319c5df97e09d50 /platform
parent1d98f7eff7bcb0fbf2c6b7c2836ca8fac14a26d1 (diff)
downloadqtlocation-mapboxgl-b9bbe68fe0232f554a7c79185e8954b087a48fde.tar.gz
[Qt] Introduce --test
Run a simple test and print some stats.
Diffstat (limited to 'platform')
-rw-r--r--platform/qt/app/main.cpp4
-rw-r--r--platform/qt/app/mapwindow.cpp37
-rw-r--r--platform/qt/app/mapwindow.hpp15
3 files changed, 55 insertions, 1 deletions
diff --git a/platform/qt/app/main.cpp b/platform/qt/app/main.cpp
index 0f43f30e02..ecb4191e19 100644
--- a/platform/qt/app/main.cpp
+++ b/platform/qt/app/main.cpp
@@ -16,5 +16,9 @@ int main(int argc, char **argv)
window.resize(800, 600);
window.show();
+ if (argc == 2 && QString("--test") == argv[1]) {
+ window.selfTest();
+ }
+
return app.exec();
}
diff --git a/platform/qt/app/mapwindow.cpp b/platform/qt/app/mapwindow.cpp
index 9758ef5afa..08581835a1 100644
--- a/platform/qt/app/mapwindow.cpp
+++ b/platform/qt/app/mapwindow.cpp
@@ -2,11 +2,18 @@
#include <mbgl/util/default_styles.hpp>
+#include <QApplication>
+#include <QDebug>
#include <QKeyEvent>
#include <QMouseEvent>
#include <QString>
-MapWindow::MapWindow(const QMapboxGLSettings &settings) : m_map(nullptr, settings)
+int kAnimationDuration = 10000;
+
+MapWindow::MapWindow(const QMapboxGLSettings &settings)
+ : m_map(nullptr, settings)
+ , m_bearingAnimation(&m_map, "bearing")
+ , m_zoomAnimation(&m_map, "zoom")
{
connect(&m_map, SIGNAL(needsRendering()), this, SLOT(updateGL()));
@@ -14,6 +21,33 @@ MapWindow::MapWindow(const QMapboxGLSettings &settings) : m_map(nullptr, setting
m_map.setCoordinateZoom(QMapboxGL::Coordinate(60.170448, 24.942046), 14);
changeStyle();
+
+ connect(&m_zoomAnimation, SIGNAL(finished()), this, SLOT(animationFinished()));
+ connect(&m_zoomAnimation, SIGNAL(valueChanged(const QVariant&)), this, SLOT(animationValueChanged()));
+}
+
+void MapWindow::selfTest()
+{
+ m_bearingAnimation.setDuration(kAnimationDuration);
+ m_bearingAnimation.setEndValue(m_map.bearing() + 360 * 4);
+ m_bearingAnimation.start();
+
+ m_zoomAnimation.setDuration(kAnimationDuration);
+ m_zoomAnimation.setEndValue(m_map.zoom() + 3);
+ m_zoomAnimation.start();
+}
+
+void MapWindow::animationFinished()
+{
+ qDebug() << "Animation ticks/s: " << m_animationTicks / static_cast<float>(kAnimationDuration) * 1000.;
+ qDebug() << "Frame draws/s: " << m_frameDraws / static_cast<float>(kAnimationDuration) * 1000.;
+
+ qApp->quit();
+}
+
+void MapWindow::animationValueChanged()
+{
+ m_animationTicks++;
}
void MapWindow::changeStyle()
@@ -118,5 +152,6 @@ void MapWindow::resizeGL(int w, int h)
void MapWindow::paintGL()
{
+ m_frameDraws++;
m_map.render();
}
diff --git a/platform/qt/app/mapwindow.hpp b/platform/qt/app/mapwindow.hpp
index 4bbeac5303..a42a5a323f 100644
--- a/platform/qt/app/mapwindow.hpp
+++ b/platform/qt/app/mapwindow.hpp
@@ -3,6 +3,7 @@
#include <QGLWidget>
#include <QMapboxGL>
+#include <QPropertyAnimation>
class QKeyEvent;
class QMouseEvent;
@@ -10,9 +11,17 @@ class QWheelEvent;
class MapWindow : public QGLWidget
{
+ Q_OBJECT
+
public:
MapWindow(const QMapboxGLSettings &);
+ void selfTest();
+
+protected slots:
+ void animationValueChanged();
+ void animationFinished();
+
private:
void changeStyle();
@@ -27,6 +36,12 @@ private:
QPointF m_lastPos;
QMapboxGL m_map;
+
+ QPropertyAnimation m_bearingAnimation;
+ QPropertyAnimation m_zoomAnimation;
+
+ unsigned m_animationTicks = 0;
+ unsigned m_frameDraws = 0;
};
#endif