diff options
Diffstat (limited to 'tests/auto/render/geometry/tst_geometry.cpp')
-rw-r--r-- | tests/auto/render/geometry/tst_geometry.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/auto/render/geometry/tst_geometry.cpp b/tests/auto/render/geometry/tst_geometry.cpp index 958edfd09..7e65d27aa 100644 --- a/tests/auto/render/geometry/tst_geometry.cpp +++ b/tests/auto/render/geometry/tst_geometry.cpp @@ -34,7 +34,9 @@ #include <Qt3DCore/qpropertyupdatedchange.h> #include <Qt3DCore/qpropertynodeaddedchange.h> #include <Qt3DCore/qpropertynoderemovedchange.h> +#include <Qt3DCore/private/qbackendnode_p.h> #include "testrenderer.h" +#include "testpostmanarbiter.h" class DummyAttribute : public Qt3DRender::QAttribute { @@ -187,6 +189,32 @@ private Q_SLOTS: QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::GeometryDirty); renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); } + + void checkExtentTransmission() + { + // GIVEN + TestRenderer renderer; + TestArbiter arbiter; + Qt3DRender::Render::Geometry renderGeometry; + + Qt3DCore::QBackendNodePrivate::get(&renderGeometry)->setArbiter(&arbiter); + renderGeometry.setRenderer(&renderer); + + // WHEN + renderGeometry.updateExtent(QVector3D(-1.0f, -1.0f, -1.0f), QVector3D(1.0f, 1.0f, 1.0f)); + renderGeometry.notifyExtentChanged(); + + // THEN + QCOMPARE(arbiter.events.count(), 1); + + Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); + QCOMPARE(change->propertyName(), "extent"); + const QPair<QVector3D, QVector3D> v = change->value().value<QPair<QVector3D, QVector3D>>(); + QCOMPARE(v.first, QVector3D(-1.0f, -1.0f, -1.0f)); + QCOMPARE(v.second, QVector3D(1.0f, 1.0f, 1.0f)); + + arbiter.events.clear(); + } }; |