summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2020-06-25 16:02:02 +0100
committerMike Krus <mike.krus@kdab.com>2020-07-01 16:59:16 +0100
commit253013fd76d1caf89d2fd7a3f6334a1eae7f75ba (patch)
tree13d5eeaf970b98e3dec1ac2f50cc17568590c7c1 /tests
parent7d836129bc3fa502e3480c47ba04608c8e8ca708 (diff)
Input Aspect: Dispatch events directly
Rather than accumulating events during a frame, they are now directly delivered to the device handlers synchronously. This removes the need to use jobs for updating the nodes. Updating axis and logical devices remains done using jobs at every frame. Change-Id: I2853a72cfe68201d8a6eb44d37bc64c9f50efd4f Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/input/mousedevice/tst_mousedevice.cpp149
1 files changed, 77 insertions, 72 deletions
diff --git a/tests/auto/input/mousedevice/tst_mousedevice.cpp b/tests/auto/input/mousedevice/tst_mousedevice.cpp
index cad1ab951..027866196 100644
--- a/tests/auto/input/mousedevice/tst_mousedevice.cpp
+++ b/tests/auto/input/mousedevice/tst_mousedevice.cpp
@@ -106,14 +106,15 @@ private Q_SLOTS:
Qt3DInput::Input::MouseDevice backendMouseDevice;
// WHEN
- auto eventList = QList<QT_PREPEND_NAMESPACE(QMouseEvent)>() << QT_PREPEND_NAMESPACE(QMouseEvent)(QMouseEvent::MouseButtonPress,
- QPointF(400.0f, 400.0f),
- QPointF(400.0f, 400.0f),
- QPointF(400.0f, 400.0f),
- Qt::LeftButton,
- Qt::LeftButton,
- Qt::NoModifier);
- backendMouseDevice.updateMouseEvents(eventList);
+ auto event = QT_PREPEND_NAMESPACE(QMouseEvent)(QMouseEvent::MouseButtonPress,
+ QPointF(400.0, 400.0),
+ QPointF(400.0, 400.0),
+ QPointF(400.0, 400.0),
+ Qt::LeftButton,
+ Qt::LeftButton,
+ Qt::NoModifier);
+ backendMouseDevice.resetMouseAxisState();
+ backendMouseDevice.updateMouseEvent(&event);
// THEN
// Note: axis are only modified when moving (> 1 event)
@@ -124,20 +125,21 @@ private Q_SLOTS:
QCOMPARE(backendMouseDevice.mouseState().leftPressed, true);
QCOMPARE(backendMouseDevice.mouseState().rightPressed, false);
QCOMPARE(backendMouseDevice.mouseState().centerPressed, false);
- QCOMPARE(backendMouseDevice.previousPos(), QPointF(400.0f, 400.0f));
+ QCOMPARE(backendMouseDevice.previousPos(), QPointF(400.0, 400.0));
QCOMPARE(backendMouseDevice.wasPressed(), true);
QCOMPARE(backendMouseDevice.sensitivity(), 0.1f);
QCOMPARE(backendMouseDevice.updateAxesContinuously(), false);
// WHEN
- eventList = QList<QT_PREPEND_NAMESPACE(QMouseEvent)>() << QT_PREPEND_NAMESPACE(QMouseEvent)(QMouseEvent::MouseMove,
- QPointF(600.0f, 600.0f),
- QPointF(600.0f, 600.0f),
- QPointF(600.0f, 600.0f),
- Qt::LeftButton,
- Qt::LeftButton,
- Qt::NoModifier);
- backendMouseDevice.updateMouseEvents(eventList);
+ event = QT_PREPEND_NAMESPACE(QMouseEvent)(QMouseEvent::MouseMove,
+ QPointF(600.0, 600.0),
+ QPointF(600.0, 600.0),
+ QPointF(600.0, 600.0),
+ Qt::LeftButton,
+ Qt::LeftButton,
+ Qt::NoModifier);
+ backendMouseDevice.resetMouseAxisState();
+ backendMouseDevice.updateMouseEvent(&event);
// THEN
QCOMPARE(backendMouseDevice.mouseState().xAxis, (600.0f - 400.0f) * 0.1f);
@@ -147,20 +149,21 @@ private Q_SLOTS:
QCOMPARE(backendMouseDevice.mouseState().leftPressed, true);
QCOMPARE(backendMouseDevice.mouseState().rightPressed, false);
QCOMPARE(backendMouseDevice.mouseState().centerPressed, false);
- QCOMPARE(backendMouseDevice.previousPos(), QPointF(600.0f, 600.0f));
+ QCOMPARE(backendMouseDevice.previousPos(), QPointF(600.0, 600.0));
QCOMPARE(backendMouseDevice.wasPressed(), true);
QCOMPARE(backendMouseDevice.sensitivity(), 0.1f);
QCOMPARE(backendMouseDevice.updateAxesContinuously(), false);
// WHEN
- eventList = QList<QT_PREPEND_NAMESPACE(QMouseEvent)>() << QT_PREPEND_NAMESPACE(QMouseEvent)(QMouseEvent::MouseButtonRelease,
- QPointF(800.0f, 800.0f),
- QPointF(800.0f, 800.0f),
- QPointF(800.0f, 800.0f),
- Qt::LeftButton,
- Qt::NoButton,
- Qt::NoModifier);
- backendMouseDevice.updateMouseEvents(eventList);
+ event = QT_PREPEND_NAMESPACE(QMouseEvent)(QMouseEvent::MouseButtonRelease,
+ QPointF(800.0, 800.0),
+ QPointF(800.0, 800.0),
+ QPointF(800.0, 800.0),
+ Qt::LeftButton,
+ Qt::NoButton,
+ Qt::NoModifier);
+ backendMouseDevice.resetMouseAxisState();
+ backendMouseDevice.updateMouseEvent(&event);
// THEN
QCOMPARE(backendMouseDevice.mouseState().xAxis, 0.0f);
@@ -170,22 +173,22 @@ private Q_SLOTS:
QCOMPARE(backendMouseDevice.mouseState().leftPressed, false);
QCOMPARE(backendMouseDevice.mouseState().rightPressed, false);
QCOMPARE(backendMouseDevice.mouseState().centerPressed, false);
- QCOMPARE(backendMouseDevice.previousPos(), QPointF(800.0f, 800.0f));
+ QCOMPARE(backendMouseDevice.previousPos(), QPointF(800.0, 800.0));
QCOMPARE(backendMouseDevice.wasPressed(), false);
QCOMPARE(backendMouseDevice.sensitivity(), 0.1f);
QCOMPARE(backendMouseDevice.updateAxesContinuously(), false);
// WHEN
- eventList = QList<QT_PREPEND_NAMESPACE(QMouseEvent)>() << QT_PREPEND_NAMESPACE(QMouseEvent)(QMouseEvent::MouseMove,
- QPointF(900.0f, 900.0f),
- QPointF(900.0f, 900.0f),
- QPointF(900.0f, 900.0f),
- Qt::NoButton,
- Qt::NoButton,
- Qt::NoModifier);
+ event = QT_PREPEND_NAMESPACE(QMouseEvent)(QMouseEvent::MouseMove,
+ QPointF(900.0, 900.0),
+ QPointF(900.0, 900.0),
+ QPointF(900.0, 900.0),
+ Qt::NoButton,
+ Qt::NoButton,
+ Qt::NoModifier);
// THEN -> no axes update
- backendMouseDevice.updateMouseEvents(eventList);
+ backendMouseDevice.updateMouseEvent(&event);
QCOMPARE(backendMouseDevice.mouseState().xAxis, 0.0f);
QCOMPARE(backendMouseDevice.mouseState().yAxis, 0.0f);
QCOMPARE(backendMouseDevice.mouseState().wXAxis, 0.0f);
@@ -193,25 +196,25 @@ private Q_SLOTS:
QCOMPARE(backendMouseDevice.mouseState().leftPressed, false);
QCOMPARE(backendMouseDevice.mouseState().rightPressed, false);
QCOMPARE(backendMouseDevice.mouseState().centerPressed, false);
- QCOMPARE(backendMouseDevice.previousPos(), QPointF(900.0f, 900.0f));
+ QCOMPARE(backendMouseDevice.previousPos(), QPointF(900.0, 900.0));
QCOMPARE(backendMouseDevice.wasPressed(), false);
QCOMPARE(backendMouseDevice.sensitivity(), 0.1f);
QCOMPARE(backendMouseDevice.updateAxesContinuously(), false);
-
// WHEN
- eventList = QList<QT_PREPEND_NAMESPACE(QMouseEvent)>() << QT_PREPEND_NAMESPACE(QMouseEvent)(QMouseEvent::MouseMove,
- QPointF(1000.0f, 1000.0f),
- QPointF(1000.0f, 1000.0f),
- QPointF(1000.0f, 1000.0f),
- Qt::NoButton,
- Qt::NoButton,
- Qt::NoModifier);
+ event = QT_PREPEND_NAMESPACE(QMouseEvent)(QMouseEvent::MouseMove,
+ QPointF(1000.0, 1000.0),
+ QPointF(1000.0, 1000.0),
+ QPointF(1000.0, 1000.0),
+ Qt::NoButton,
+ Qt::NoButton,
+ Qt::NoModifier);
Qt3DInput::QMouseDevice mouseDevice;
mouseDevice.setUpdateAxesContinuously(true);
backendMouseDevice.syncFromFrontEnd(&mouseDevice, false);
- backendMouseDevice.updateMouseEvents(eventList);
+ backendMouseDevice.resetMouseAxisState();
+ backendMouseDevice.updateMouseEvent(&event);
// THEN
QCOMPARE(backendMouseDevice.mouseState().xAxis, (1000.0f - 900.0f) * 0.1f);
@@ -221,27 +224,28 @@ private Q_SLOTS:
QCOMPARE(backendMouseDevice.mouseState().leftPressed,false);
QCOMPARE(backendMouseDevice.mouseState().rightPressed, false);
QCOMPARE(backendMouseDevice.mouseState().centerPressed, false);
- QCOMPARE(backendMouseDevice.previousPos(), QPointF(1000.0f, 1000.0f));
+ QCOMPARE(backendMouseDevice.previousPos(), QPointF(1000.0, 1000.0));
QCOMPARE(backendMouseDevice.wasPressed(), false);
QCOMPARE(backendMouseDevice.sensitivity(), 0.1f);
QCOMPARE(backendMouseDevice.updateAxesContinuously(), true);
}
+#if QT_CONFIG(wheelevent)
void checkMouseWheelState()
{
// GIVEN
Qt3DInput::Input::MouseDevice backendMouseDevice;
// WHEN
- auto eventList = QList<QT_PREPEND_NAMESPACE(QWheelEvent)>()
- << QT_PREPEND_NAMESPACE(QWheelEvent)(QPointF(500.0, 500.0),
- QPointF(), QPoint(),
- QPoint(0, 120),
- Qt::NoButton,
- Qt::NoModifier,
- Qt::NoScrollPhase,
- false);
- backendMouseDevice.updateWheelEvents(eventList);
+ auto event = QT_PREPEND_NAMESPACE(QWheelEvent)(QPointF(500.0, 500.0),
+ QPointF(), QPoint(),
+ QPoint(0, 120),
+ Qt::NoButton,
+ Qt::NoModifier,
+ Qt::NoScrollPhase,
+ false);
+ backendMouseDevice.resetMouseAxisState();
+ backendMouseDevice.updateWheelEvent(&event);
// THEN
QCOMPARE(backendMouseDevice.mouseState().wXAxis, 0.0f);
@@ -249,15 +253,15 @@ private Q_SLOTS:
QCOMPARE(backendMouseDevice.sensitivity(), 0.1f);
// WHEN
- eventList = QList<QT_PREPEND_NAMESPACE(QWheelEvent)>()
- << QT_PREPEND_NAMESPACE(QWheelEvent)(QPointF(500.0, 500.0),
- QPointF(), QPoint(),
- QPoint(120, 0),
- Qt::NoButton,
- Qt::NoModifier,
- Qt::NoScrollPhase,
- false);
- backendMouseDevice.updateWheelEvents(eventList);
+ event = QT_PREPEND_NAMESPACE(QWheelEvent)(QPointF(500.0, 500.0),
+ QPointF(), QPoint(),
+ QPoint(120, 0),
+ Qt::NoButton,
+ Qt::NoModifier,
+ Qt::NoScrollPhase,
+ false);
+ backendMouseDevice.resetMouseAxisState();
+ backendMouseDevice.updateWheelEvent(&event);
// THEN
QCOMPARE(backendMouseDevice.mouseState().wXAxis, 0.1f * 120);
@@ -265,20 +269,21 @@ private Q_SLOTS:
QCOMPARE(backendMouseDevice.sensitivity(), 0.1f);
// WHEN
- eventList = QList<QT_PREPEND_NAMESPACE(QWheelEvent)>()
- << QT_PREPEND_NAMESPACE(QWheelEvent)(QPointF(500.0, 500.0),
- QPointF(), QPoint(), QPoint(),
- Qt::NoButton,
- Qt::NoModifier,
- Qt::NoScrollPhase,
- false);
- backendMouseDevice.updateWheelEvents(eventList);
+ event = QT_PREPEND_NAMESPACE(QWheelEvent)(QPointF(500.0, 500.0),
+ QPointF(), QPoint(), QPoint(),
+ Qt::NoButton,
+ Qt::NoModifier,
+ Qt::NoScrollPhase,
+ false);
+ backendMouseDevice.resetMouseAxisState();
+ backendMouseDevice.updateWheelEvent(&event);
// THEN
QCOMPARE(backendMouseDevice.mouseState().wXAxis, 0.0f);
QCOMPARE(backendMouseDevice.mouseState().wYAxis, 0.0f);
QCOMPARE(backendMouseDevice.sensitivity(), 0.1f);
}
+#endif
void checkSceneChangeEvents()
{