diff options
author | Mike Krus <mike.krus@kdab.com> | 2020-06-25 16:02:02 +0100 |
---|---|---|
committer | Mike Krus <mike.krus@kdab.com> | 2020-07-01 16:59:16 +0100 |
commit | 253013fd76d1caf89d2fd7a3f6334a1eae7f75ba (patch) | |
tree | 13d5eeaf970b98e3dec1ac2f50cc17568590c7c1 /tests | |
parent | 7d836129bc3fa502e3480c47ba04608c8e8ca708 (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.cpp | 149 |
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() { |