diff options
Diffstat (limited to 'tests/auto/render')
40 files changed, 799 insertions, 1240 deletions
diff --git a/tests/auto/render/commons/testrenderer.h b/tests/auto/render/commons/testrenderer.h index cc8ec502f..dbe69ace5 100644 --- a/tests/auto/render/commons/testrenderer.h +++ b/tests/auto/render/commons/testrenderer.h @@ -52,7 +52,7 @@ public: void shutdown() override {} void releaseGraphicsResources() override {} void render() override {} - void doRender(bool swapBuffers) override {} + void doRender(bool swapBuffers) override { Q_UNUSED(swapBuffers); } void cleanGraphicsResources() override {} bool isRunning() const override { return true; } bool shouldRender() override { return true; } diff --git a/tests/auto/render/qabstractlight/tst_qabstractlight.cpp b/tests/auto/render/qabstractlight/tst_qabstractlight.cpp index bc67148d2..011ad1036 100644 --- a/tests/auto/render/qabstractlight/tst_qabstractlight.cpp +++ b/tests/auto/render/qabstractlight/tst_qabstractlight.cpp @@ -149,26 +149,13 @@ private Q_SLOTS: light->setColor(Qt::red); light->setIntensity(0.8f); // change from the default of 0.5f - QCoreApplication::processEvents(); - - QCOMPARE(arbiter.events.size(), 2 * 2); // Due to contained shader data - for (int i = 0; i < 2; i++) - arbiter.events.removeAt(i); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events[0].staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "color"); - QCOMPARE(change->subjectId(), light->id()); - QCOMPARE(change->value().value<QColor>(), QColor(Qt::red)); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - change = arbiter.events[1].staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "intensity"); - QCOMPARE(change->subjectId(), light->id()); - QCOMPARE(change->value().value<float>(), 0.8f); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - arbiter.events.clear(); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 2); + QVERIFY(arbiter.dirtyNodes[0]->metaObject()->inherits(&Qt3DRender::QShaderData::staticMetaObject)); + QCOMPARE(arbiter.dirtyNodes[1], light.data()); - light->setColor(Qt::red); - QCoreApplication::processEvents(); + arbiter.dirtyNodes.clear(); QCOMPARE(arbiter.events.size(), 0); @@ -186,33 +173,13 @@ private Q_SLOTS: pointLight->setConstantAttenuation(0.5f); pointLight->setLinearAttenuation(0.0f); // No actual event triggered as 0.0f is default pointLight->setQuadraticAttenuation(1.0f); - QCoreApplication::processEvents(); - - QCOMPARE(arbiter.events.size(), 4 * 2); // Due to contained shader data - for (int i = 0; i < 4; i++) - arbiter.events.removeAt(i); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events[0].staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "color"); - QCOMPARE(change->subjectId(), pointLight->id()); - QCOMPARE(change->value().value<QColor>(), QColor(Qt::green)); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - change = arbiter.events[1].staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "intensity"); - QCOMPARE(change->subjectId(), pointLight->id()); - QCOMPARE(change->value().value<float>(), 0.8f); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - change = arbiter.events[2].staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "constantAttenuation"); - QCOMPARE(change->subjectId(), pointLight->id()); - QCOMPARE(change->value().value<float>(), 0.5f); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - change = arbiter.events[3].staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "quadraticAttenuation"); - QCOMPARE(change->subjectId(), pointLight->id()); - QCOMPARE(change->value().value<float>(), 1.0f); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - arbiter.events.clear(); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 2); + QVERIFY(arbiter.dirtyNodes[0]->metaObject()->inherits(&Qt3DRender::QShaderData::staticMetaObject)); + QCOMPARE(arbiter.dirtyNodes[1], pointLight.data()); + + arbiter.dirtyNodes.clear(); } void checkDirectionalLightPropertyUpdates() @@ -224,28 +191,12 @@ private Q_SLOTS: dirLight->setColor(Qt::blue); dirLight->setIntensity(0.8f); dirLight->setWorldDirection(QVector3D(0.5f, 0.0f, -1.0f)); - QCoreApplication::processEvents(); - - QCOMPARE(arbiter.events.size(), 3 * 2); // Due to contained shader data - for (int i = 0; i < 3; i++) - arbiter.events.removeAt(i); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events[0].staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "color"); - QCOMPARE(change->subjectId(), dirLight->id()); - QCOMPARE(change->value().value<QColor>(), QColor(Qt::blue)); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - change = arbiter.events[1].staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "intensity"); - QCOMPARE(change->subjectId(), dirLight->id()); - QCOMPARE(change->value().value<float>(), 0.8f); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - change = arbiter.events[2].staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "worldDirection"); - QCOMPARE(change->subjectId(), dirLight->id()); - QCOMPARE(change->value().value<QVector3D>(), QVector3D(0.5f, 0.0f, -1.0f)); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - arbiter.events.clear(); + QCOMPARE(arbiter.dirtyNodes.size(), 2); + QVERIFY(arbiter.dirtyNodes[0]->metaObject()->inherits(&Qt3DRender::QShaderData::staticMetaObject)); + QCOMPARE(arbiter.dirtyNodes[1], dirLight.data()); + + arbiter.dirtyNodes.clear(); } void checkSpotLightPropertyUpdates() @@ -258,33 +209,12 @@ private Q_SLOTS: spotLight->setIntensity(0.8f); spotLight->setLocalDirection(QVector3D(0.5f, 0.0f, -1.0f)); spotLight->setCutOffAngle(0.75f); - QCoreApplication::processEvents(); - - QCOMPARE(arbiter.events.size(), 4 * 2); // Due to contained shader data - for (int i = 0; i < 4; i++) - arbiter.events.removeAt(i); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events[0].staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "color"); - QCOMPARE(change->subjectId(), spotLight->id()); - QCOMPARE(change->value().value<QColor>(), QColor(Qt::lightGray)); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - change = arbiter.events[1].staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "intensity"); - QCOMPARE(change->subjectId(), spotLight->id()); - QCOMPARE(change->value().value<float>(), 0.8f); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - change = arbiter.events[2].staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "localDirection"); - QCOMPARE(change->subjectId(), spotLight->id()); - QCOMPARE(change->value().value<QVector3D>(), QVector3D(0.5f, 0.0f, -1.0f).normalized()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - change = arbiter.events[3].staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "cutOffAngle"); - QCOMPARE(change->subjectId(), spotLight->id()); - QCOMPARE(change->value().value<float>(), 0.75f); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - arbiter.events.clear(); + QCOMPARE(arbiter.dirtyNodes.size(), 2); + QVERIFY(arbiter.dirtyNodes[0]->metaObject()->inherits(&Qt3DRender::QShaderData::staticMetaObject)); + QCOMPARE(arbiter.dirtyNodes[1], spotLight.data()); + + arbiter.dirtyNodes.clear(); } }; diff --git a/tests/auto/render/qabstracttexture/tst_qabstracttexture.cpp b/tests/auto/render/qabstracttexture/tst_qabstracttexture.cpp index b6ae9dee8..04364e2d9 100644 --- a/tests/auto/render/qabstracttexture/tst_qabstracttexture.cpp +++ b/tests/auto/render/qabstracttexture/tst_qabstracttexture.cpp @@ -464,25 +464,22 @@ private Q_SLOTS: { // WHEN abstractTexture.setFormat(Qt3DRender::QAbstractTexture::RG8_UNorm); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "format"); - QCOMPARE(change->value().value<Qt3DRender::QAbstractTexture::TextureFormat>(), abstractTexture.format()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &abstractTexture); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN abstractTexture.setFormat(Qt3DRender::QAbstractTexture::RG8_UNorm); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -497,25 +494,22 @@ private Q_SLOTS: { // WHEN abstractTexture.setGenerateMipMaps(true); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "generateMipMaps"); - QCOMPARE(change->value().value<bool>(), abstractTexture.generateMipMaps()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &abstractTexture); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN abstractTexture.setGenerateMipMaps(true); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -530,25 +524,22 @@ private Q_SLOTS: { // WHEN abstractTexture.setWidth(1024); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "width"); - QCOMPARE(change->value().value<int>(), abstractTexture.width()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &abstractTexture); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN abstractTexture.setWidth(1024); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -563,25 +554,22 @@ private Q_SLOTS: { // WHEN abstractTexture.setHeight(256); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "height"); - QCOMPARE(change->value().value<int>(), abstractTexture.height()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &abstractTexture); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN abstractTexture.setHeight(256); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -596,25 +584,22 @@ private Q_SLOTS: { // WHEN abstractTexture.setDepth(512); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "depth"); - QCOMPARE(change->value().value<int>(), abstractTexture.depth()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &abstractTexture); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN abstractTexture.setDepth(512); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -629,25 +614,22 @@ private Q_SLOTS: { // WHEN abstractTexture.setMagnificationFilter(Qt3DRender::QAbstractTexture::NearestMipMapLinear); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "magnificationFilter"); - QCOMPARE(change->value().value<Qt3DRender::QAbstractTexture::Filter>(), abstractTexture.magnificationFilter()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &abstractTexture); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN abstractTexture.setMagnificationFilter(Qt3DRender::QAbstractTexture::NearestMipMapLinear); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -662,25 +644,22 @@ private Q_SLOTS: { // WHEN abstractTexture.setMinificationFilter(Qt3DRender::QAbstractTexture::NearestMipMapLinear); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "minificationFilter"); - QCOMPARE(change->value().value<Qt3DRender::QAbstractTexture::Filter>(), abstractTexture.minificationFilter()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &abstractTexture); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN abstractTexture.setMinificationFilter(Qt3DRender::QAbstractTexture::NearestMipMapLinear); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -695,25 +674,22 @@ private Q_SLOTS: { // WHEN abstractTexture.setMaximumAnisotropy(327.0f); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "maximumAnisotropy"); - QCOMPARE(change->value().value<float>(), abstractTexture.maximumAnisotropy()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &abstractTexture); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN abstractTexture.setMaximumAnisotropy(327.0f); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -728,25 +704,22 @@ private Q_SLOTS: { // WHEN abstractTexture.setComparisonFunction(Qt3DRender::QAbstractTexture::CompareAlways); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "comparisonFunction"); - QCOMPARE(change->value().value<Qt3DRender::QAbstractTexture::ComparisonFunction>(), abstractTexture.comparisonFunction()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &abstractTexture); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN abstractTexture.setComparisonFunction(Qt3DRender::QAbstractTexture::CompareAlways); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -761,25 +734,22 @@ private Q_SLOTS: { // WHEN abstractTexture.setComparisonMode(Qt3DRender::QAbstractTexture::CompareRefToTexture); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "comparisonMode"); - QCOMPARE(change->value().value<Qt3DRender::QAbstractTexture::ComparisonMode>(), abstractTexture.comparisonMode()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &abstractTexture); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN abstractTexture.setComparisonMode(Qt3DRender::QAbstractTexture::CompareRefToTexture); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -794,25 +764,22 @@ private Q_SLOTS: { // WHEN abstractTexture.setLayers(64); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "layers"); - QCOMPARE(change->value().value<int>(), abstractTexture.layers()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &abstractTexture); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN abstractTexture.setLayers(64); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -827,25 +794,22 @@ private Q_SLOTS: { // WHEN abstractTexture.setSamples(16); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "samples"); - QCOMPARE(change->value().value<int>(), abstractTexture.samples()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &abstractTexture); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN abstractTexture.setSamples(16); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } diff --git a/tests/auto/render/qabstracttextureimage/tst_qabstracttextureimage.cpp b/tests/auto/render/qabstracttextureimage/tst_qabstracttextureimage.cpp index 05029450a..a5e31b949 100644 --- a/tests/auto/render/qabstracttextureimage/tst_qabstracttextureimage.cpp +++ b/tests/auto/render/qabstracttextureimage/tst_qabstracttextureimage.cpp @@ -200,25 +200,20 @@ private Q_SLOTS: { // WHEN abstractTextureImage.setMipLevel(9); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "mipLevel"); - QCOMPARE(change->value().value<int>(), abstractTextureImage.mipLevel()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &abstractTextureImage); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN abstractTextureImage.setMipLevel(9); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -233,25 +228,22 @@ private Q_SLOTS: { // WHEN abstractTextureImage.setLayer(12); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "layer"); - QCOMPARE(change->value().value<int>(), abstractTextureImage.layer()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &abstractTextureImage); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN abstractTextureImage.setLayer(12); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -266,25 +258,22 @@ private Q_SLOTS: { // WHEN abstractTextureImage.setFace(Qt3DRender::QAbstractTexture::CubeMapPositiveY); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "face"); - QCOMPARE(change->value().value<Qt3DRender::QAbstractTexture::CubeMapFace>(), abstractTextureImage.face()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &abstractTextureImage); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN abstractTextureImage.setFace(Qt3DRender::QAbstractTexture::CubeMapPositiveY); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } diff --git a/tests/auto/render/qattribute/tst_qattribute.cpp b/tests/auto/render/qattribute/tst_qattribute.cpp index 23532c435..588ce40db 100644 --- a/tests/auto/render/qattribute/tst_qattribute.cpp +++ b/tests/auto/render/qattribute/tst_qattribute.cpp @@ -85,7 +85,7 @@ private Q_SLOTS: QTest::newRow("defaultConstructed") << defaultConstructed; Qt3DRender::QAttribute *customVertex = new Qt3DRender::QAttribute(); - Qt3DRender::QBuffer *buffer = new Qt3DRender::QBuffer(Qt3DRender::QBuffer::VertexBuffer); + Qt3DRender::QBuffer *buffer = new Qt3DRender::QBuffer(); customVertex->setBuffer(buffer); customVertex->setAttributeType(Qt3DRender::QAttribute::VertexAttribute); customVertex->setCount(454); @@ -98,7 +98,7 @@ private Q_SLOTS: QTest::newRow("vertex") << customVertex; Qt3DRender::QAttribute *customIndex = new Qt3DRender::QAttribute(); - Qt3DRender::QBuffer *indexBuffer = new Qt3DRender::QBuffer(Qt3DRender::QBuffer::IndexBuffer); + Qt3DRender::QBuffer *indexBuffer = new Qt3DRender::QBuffer(); customIndex->setBuffer(indexBuffer); customIndex->setAttributeType(Qt3DRender::QAttribute::IndexAttribute); customIndex->setCount(383); @@ -111,7 +111,7 @@ private Q_SLOTS: QTest::newRow("index") << customIndex; Qt3DRender::QAttribute *customIndirect = new Qt3DRender::QAttribute(); - Qt3DRender::QBuffer *indirectBuffer = new Qt3DRender::QBuffer(Qt3DRender::QBuffer::DrawIndirectBuffer); + Qt3DRender::QBuffer *indirectBuffer = new Qt3DRender::QBuffer(); customIndirect->setBuffer(indirectBuffer); customIndirect->setAttributeType(Qt3DRender::QAttribute::DrawIndirectAttribute); customIndirect->setCount(1); @@ -160,134 +160,95 @@ private Q_SLOTS: // WHEN attribute->setVertexBaseType(Qt3DRender::QAttribute::Double); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "vertexBaseType"); - QCOMPARE(change->value().value<int>(), static_cast<int>(Qt3DRender::QAttribute::Double)); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), attribute.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN attribute->setVertexSize(4); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "vertexSize"); - QCOMPARE(change->value().value<uint>(), 4U); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), attribute.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN attribute->setName(QStringLiteral("Duntov")); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "name"); - QCOMPARE(change->value().value<QString>(), QStringLiteral("Duntov")); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), attribute.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN attribute->setCount(883); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "count"); - QCOMPARE(change->value().value<uint>(), 883U); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), attribute.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN attribute->setByteStride(1340); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "byteStride"); - QCOMPARE(change->value().value<uint>(), 1340U); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), attribute.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN attribute->setByteOffset(1584); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "byteOffset"); - QCOMPARE(change->value().value<uint>(), 1584U); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), attribute.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN attribute->setDivisor(1450); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "divisor"); - QCOMPARE(change->value().value<uint>(), 1450U); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), attribute.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN attribute->setAttributeType(Qt3DRender::QAttribute::IndexAttribute); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "attributeType"); - QCOMPARE(change->value().value<int>(), static_cast<int>(Qt3DRender::QAttribute::IndexAttribute)); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), attribute.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN Qt3DRender::QBuffer buf; attribute->setBuffer(&buf); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "buffer"); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), buf.id()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), attribute.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN Qt3DRender::QBuffer buf2; attribute->setBuffer(&buf2); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "buffer"); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), buf2.id()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), attribute.data()); + arbiter.dirtyNodes.clear(); } void checkBufferBookkeeping() @@ -309,7 +270,7 @@ private Q_SLOTS: { // WHEN Qt3DRender::QAttribute someOtherAttribute; - QScopedPointer<Qt3DRender::QBuffer> buf(new Qt3DRender::QBuffer(Qt3DRender::QBuffer::VertexBuffer, &someOtherAttribute)); + QScopedPointer<Qt3DRender::QBuffer> buf(new Qt3DRender::QBuffer(&someOtherAttribute)); attribute->setBuffer(buf.data()); // THEN diff --git a/tests/auto/render/qblitframebuffer/tst_qblitframebuffer.cpp b/tests/auto/render/qblitframebuffer/tst_qblitframebuffer.cpp index f6c7e1a8a..a53650945 100644 --- a/tests/auto/render/qblitframebuffer/tst_qblitframebuffer.cpp +++ b/tests/auto/render/qblitframebuffer/tst_qblitframebuffer.cpp @@ -119,217 +119,169 @@ private Q_SLOTS: // sourceRenderTarget // WHEN blitFramebuffer->setSource(sourceRenderTarget); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "source"); - QCOMPARE(change->subjectId(), blitFramebuffer->id()); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), sourceRenderTarget->id()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), blitFramebuffer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN blitFramebuffer->setSource(sourceRenderTarget); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); // WHEN blitFramebuffer->setSource(nullptr); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "source"); - QCOMPARE(change->subjectId(), blitFramebuffer->id()); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), Qt3DCore::QNodeId()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), blitFramebuffer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // destinationRenderTarget // WHEN blitFramebuffer->setDestination(destinationRenderTarget); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "destination"); - QCOMPARE(change->subjectId(), blitFramebuffer->id()); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), destinationRenderTarget->id()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), blitFramebuffer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN blitFramebuffer->setDestination(destinationRenderTarget); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); // WHEN blitFramebuffer->setDestination(nullptr); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "destination"); - QCOMPARE(change->subjectId(), blitFramebuffer->id()); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), Qt3DCore::QNodeId()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), blitFramebuffer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // sourceRect // WHEN blitFramebuffer->setSourceRect(QRect(0,0,1,1)); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "sourceRect"); - QCOMPARE(change->subjectId(), blitFramebuffer->id()); - QCOMPARE(change->value().value<QRect>(), QRect(0,0,1,1)) ; - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), blitFramebuffer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN blitFramebuffer->setSourceRect(QRect(0,0,1,1)); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); // WHEN blitFramebuffer->setSourceRect(QRect()); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "sourceRect"); - QCOMPARE(change->subjectId(), blitFramebuffer->id()); - QCOMPARE(change->value().value<QRect>(), QRect()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), blitFramebuffer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // destinationRect blitFramebuffer->setDestinationRect(QRect(0,0,1,1)); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "destinationRect"); - QCOMPARE(change->subjectId(), blitFramebuffer->id()); - QCOMPARE(change->value().value<QRect>(), QRect(0,0,1,1)) ; - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), blitFramebuffer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN blitFramebuffer->setDestinationRect(QRect(0,0,1,1)); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); // WHEN blitFramebuffer->setDestinationRect(QRect()); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "destinationRect"); - QCOMPARE(change->subjectId(), blitFramebuffer->id()); - QCOMPARE(change->value().value<QRect>(), QRect()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), blitFramebuffer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // sourceAttachmentPoint // WHEN blitFramebuffer->setSourceAttachmentPoint(Qt3DRender::QRenderTargetOutput::Color1); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "sourceAttachmentPoint"); - QCOMPARE(change->subjectId(), blitFramebuffer->id()); - QCOMPARE(change->value().value<Qt3DRender::QRenderTargetOutput::AttachmentPoint>(), Qt3DRender::QRenderTargetOutput::Color1); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), blitFramebuffer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN blitFramebuffer->setSourceAttachmentPoint(Qt3DRender::QRenderTargetOutput::Color1); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); // WHEN blitFramebuffer->setSourceAttachmentPoint(Qt3DRender::QRenderTargetOutput::Color0); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "sourceAttachmentPoint"); - QCOMPARE(change->subjectId(), blitFramebuffer->id()); - QCOMPARE(change->value().value<Qt3DRender::QRenderTargetOutput::AttachmentPoint>(), Qt3DRender::QRenderTargetOutput::Color0); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), blitFramebuffer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // destinationAttachmentPoint // WHEN blitFramebuffer->setDestinationAttachmentPoint(Qt3DRender::QRenderTargetOutput::Color1); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "destinationAttachmentPoint"); - QCOMPARE(change->subjectId(), blitFramebuffer->id()); - QCOMPARE(change->value().value<Qt3DRender::QRenderTargetOutput::AttachmentPoint>(), Qt3DRender::QRenderTargetOutput::Color1); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), blitFramebuffer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN blitFramebuffer->setDestinationAttachmentPoint(Qt3DRender::QRenderTargetOutput::Color1); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); // WHEN blitFramebuffer->setDestinationAttachmentPoint(Qt3DRender::QRenderTargetOutput::Color0); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "destinationAttachmentPoint"); - QCOMPARE(change->subjectId(), blitFramebuffer->id()); - QCOMPARE(change->value().value<Qt3DRender::QRenderTargetOutput::AttachmentPoint>(), Qt3DRender::QRenderTargetOutput::Color0); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - - arbiter.events.clear(); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), blitFramebuffer.data()); + + arbiter.dirtyNodes.clear(); } void checkSourceDestReset() diff --git a/tests/auto/render/qbuffer/tst_qbuffer.cpp b/tests/auto/render/qbuffer/tst_qbuffer.cpp index 21bedf744..8a9a25408 100644 --- a/tests/auto/render/qbuffer/tst_qbuffer.cpp +++ b/tests/auto/render/qbuffer/tst_qbuffer.cpp @@ -130,27 +130,23 @@ private Q_SLOTS: // WHEN buffer->setUsage(Qt3DRender::QBuffer::DynamicCopy); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "usage"); - QCOMPARE(change->value().value<int>(), static_cast<int>(Qt3DRender::QBuffer::DynamicCopy)); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), buffer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN buffer->setData(QByteArrayLiteral("Z28")); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "data"); - QCOMPARE(change->value().value<QByteArray>(), QByteArrayLiteral("Z28")); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), buffer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN Qt3DRender::QBufferDataGeneratorPtr functor(new TestFunctor(355)); @@ -159,7 +155,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); + auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); QCOMPARE(change->propertyName(), "dataGenerator"); QCOMPARE(change->value().value<Qt3DRender::QBufferDataGeneratorPtr>(), functor); @@ -167,15 +163,13 @@ private Q_SLOTS: // WHEN buffer->setSyncData(true); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "syncData"); - QCOMPARE(change->value().toBool(), true); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), buffer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN buffer->updateData(1, QByteArrayLiteral("L1")); diff --git a/tests/auto/render/qcameralens/tst_qcameralens.cpp b/tests/auto/render/qcameralens/tst_qcameralens.cpp index adff66dc5..c4f684d5f 100644 --- a/tests/auto/render/qcameralens/tst_qcameralens.cpp +++ b/tests/auto/render/qcameralens/tst_qcameralens.cpp @@ -423,12 +423,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "projectionMatrix"); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &cameraLens); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -438,6 +437,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -452,24 +452,22 @@ private Q_SLOTS: { // WHEN cameraLens.setNearPlane(5.0f); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "projectionMatrix"); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &cameraLens); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN cameraLens.setNearPlane(5.0f); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -484,24 +482,22 @@ private Q_SLOTS: { // WHEN cameraLens.setFarPlane(5.0f); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "projectionMatrix"); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &cameraLens); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN cameraLens.setFarPlane(5.0f); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -516,24 +512,22 @@ private Q_SLOTS: { // WHEN cameraLens.setFieldOfView(5.0f); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "projectionMatrix"); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &cameraLens); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN cameraLens.setFieldOfView(5.0f); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -548,24 +542,22 @@ private Q_SLOTS: { // WHEN cameraLens.setAspectRatio(9.0f); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "projectionMatrix"); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &cameraLens); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN cameraLens.setAspectRatio(9.0f); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -580,24 +572,22 @@ private Q_SLOTS: { // WHEN cameraLens.setLeft(0.0f); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "projectionMatrix"); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &cameraLens); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN cameraLens.setLeft(0.0f); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -612,24 +602,22 @@ private Q_SLOTS: { // WHEN cameraLens.setRight(24.0f); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "projectionMatrix"); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &cameraLens); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN cameraLens.setRight(24.0f); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -644,24 +632,22 @@ private Q_SLOTS: { // WHEN cameraLens.setBottom(-12.0f); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "projectionMatrix"); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &cameraLens); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN cameraLens.setBottom(-12.0f); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -676,24 +662,22 @@ private Q_SLOTS: { // WHEN cameraLens.setTop(12.0f); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "projectionMatrix"); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &cameraLens); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN cameraLens.setTop(12.0f); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -708,24 +692,22 @@ private Q_SLOTS: { // WHEN cameraLens.setExposure(2.0f); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "exposure"); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &cameraLens); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN cameraLens.setExposure(2.0f); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -743,25 +725,22 @@ private Q_SLOTS: { // WHEN cameraLens.setProjectionMatrix(m); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "projectionMatrix"); - QCOMPARE(change->value().value<QMatrix4x4>(), m); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &cameraLens); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN cameraLens.setProjectionMatrix(m); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.events.size(), 0); } } diff --git a/tests/auto/render/qcameraselector/tst_qcameraselector.cpp b/tests/auto/render/qcameraselector/tst_qcameraselector.cpp index c11dde57f..650e531c2 100644 --- a/tests/auto/render/qcameraselector/tst_qcameraselector.cpp +++ b/tests/auto/render/qcameraselector/tst_qcameraselector.cpp @@ -92,49 +92,41 @@ private Q_SLOTS: // WHEN Qt3DCore::QEntity *camera = new Qt3DCore::QEntity(); cameraSelector->setCamera(camera); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "camera"); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), camera->id()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), cameraSelector.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN cameraSelector->setCamera(camera); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); // WHEN Qt3DCore::QEntity *camera2 = new Qt3DCore::QEntity(); cameraSelector->setCamera(camera2); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "camera"); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), camera2->id()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - arbiter.events.clear(); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), cameraSelector.data()); + + arbiter.dirtyNodes.clear(); // WHEN cameraSelector->setCamera(nullptr); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "camera"); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), Qt3DCore::QNodeId()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), cameraSelector.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } void checkCameraBookkeeping() diff --git a/tests/auto/render/qclearbuffers/tst_qclearbuffers.cpp b/tests/auto/render/qclearbuffers/tst_qclearbuffers.cpp index ce1493e10..d2407229d 100644 --- a/tests/auto/render/qclearbuffers/tst_qclearbuffers.cpp +++ b/tests/auto/render/qclearbuffers/tst_qclearbuffers.cpp @@ -104,38 +104,30 @@ private Q_SLOTS: // WHEN clearBuffer->setBuffers(Qt3DRender::QClearBuffers::AllBuffers); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "buffers"); - QCOMPARE(change->subjectId(), clearBuffer->id()); - QCOMPARE(change->value().value<Qt3DRender::QClearBuffers::BufferType>(), Qt3DRender::QClearBuffers::AllBuffers); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), clearBuffer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN clearBuffer->setBuffers(Qt3DRender::QClearBuffers::AllBuffers); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); // WHEN clearBuffer->setBuffers(Qt3DRender::QClearBuffers::ColorDepthBuffer); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "buffers"); - QCOMPARE(change->subjectId(), clearBuffer->id()); - QCOMPARE(change->value().value<Qt3DRender::QClearBuffers::BufferType>(), Qt3DRender::QClearBuffers::ColorDepthBuffer); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - - arbiter.events.clear(); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), clearBuffer.data()); + + arbiter.dirtyNodes.clear(); } }; diff --git a/tests/auto/render/qcomputecommand/tst_qcomputecommand.cpp b/tests/auto/render/qcomputecommand/tst_qcomputecommand.cpp index cc07120a2..b46cc4ea0 100644 --- a/tests/auto/render/qcomputecommand/tst_qcomputecommand.cpp +++ b/tests/auto/render/qcomputecommand/tst_qcomputecommand.cpp @@ -214,13 +214,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "workGroupX"); - QCOMPARE(change->value().value<int>(), computeCommand.workGroupX()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &computeCommand); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -229,7 +227,7 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -244,25 +242,22 @@ private Q_SLOTS: { // WHEN computeCommand.setWorkGroupY(512); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "workGroupY"); - QCOMPARE(change->value().value<int>(), computeCommand.workGroupY()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &computeCommand); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { // WHEN computeCommand.setWorkGroupY(512); - QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -280,13 +275,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "workGroupZ"); - QCOMPARE(change->value().value<int>(), computeCommand.workGroupZ()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &computeCommand); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -296,6 +289,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -313,13 +307,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "runType"); - QCOMPARE(change->value().value<int>(), int(computeCommand.runType())); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &computeCommand); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -329,6 +321,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -349,22 +342,20 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 2); + QCOMPARE(arbiter.events.size(), 1); { auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); QCOMPARE(change->propertyName(), "frameCount"); QCOMPARE(change->value().value<int>(), 1); QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); } - { - auto change = arbiter.events.last().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "enabled"); - QCOMPARE(change->value().value<bool>(), true); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - } + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &computeCommand); + QCOMPARE(computeCommand.isEnabled(), true); computeCommand.setEnabled(false); QCoreApplication::processEvents(); + arbiter.dirtyNodes.clear(); arbiter.events.clear(); } @@ -374,24 +365,21 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 2); + QCOMPARE(arbiter.events.size(), 1); { auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); QCOMPARE(change->propertyName(), "frameCount"); QCOMPARE(change->value().value<int>(), 2); QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); } - { - auto change = arbiter.events.last().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "enabled"); - QCOMPARE(change->value().value<bool>(), true); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - } - + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &computeCommand); + QCOMPARE(computeCommand.isEnabled(), true); computeCommand.setEnabled(false); QCoreApplication::processEvents(); arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -400,41 +388,22 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 5); + QCOMPARE(arbiter.events.size(), 1); { auto change = arbiter.events.at(0).staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "workGroupX"); - QCOMPARE(change->value().value<int>(), 10); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - } - { - auto change = arbiter.events.at(1).staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "workGroupY"); - QCOMPARE(change->value().value<int>(), 11); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - } - { - auto change = arbiter.events.at(2).staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "workGroupZ"); - QCOMPARE(change->value().value<int>(), 12); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - } - { - auto change = arbiter.events.at(3).staticCast<Qt3DCore::QPropertyUpdatedChange>(); QCOMPARE(change->propertyName(), "frameCount"); QCOMPARE(change->value().value<int>(), 1); QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); } - { - auto change = arbiter.events.last().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "enabled"); - QCOMPARE(change->value().value<bool>(), true); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - } + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &computeCommand); + QCOMPARE(computeCommand.isEnabled(), true); + QCOMPARE(computeCommand.workGroupX(), 10); + QCOMPARE(computeCommand.workGroupY(), 11); + QCOMPARE(computeCommand.workGroupZ(), 12); computeCommand.setEnabled(false); - QCoreApplication::processEvents(); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } } diff --git a/tests/auto/render/qdispatchcompute/tst_qdispatchcompute.cpp b/tests/auto/render/qdispatchcompute/tst_qdispatchcompute.cpp index 6fa55f370..7d1a36f11 100644 --- a/tests/auto/render/qdispatchcompute/tst_qdispatchcompute.cpp +++ b/tests/auto/render/qdispatchcompute/tst_qdispatchcompute.cpp @@ -189,13 +189,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "workGroupX"); - QCOMPARE(change->value().value<int>(), dispatchCompute.workGroupX()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &dispatchCompute); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -205,6 +203,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -222,13 +221,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "workGroupY"); - QCOMPARE(change->value().value<int>(), dispatchCompute.workGroupY()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &dispatchCompute); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -238,6 +235,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -255,13 +253,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "workGroupZ"); - QCOMPARE(change->value().value<int>(), dispatchCompute.workGroupZ()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &dispatchCompute); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -271,6 +267,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } diff --git a/tests/auto/render/qfilterkey/tst_qfilterkey.cpp b/tests/auto/render/qfilterkey/tst_qfilterkey.cpp index 8c8381323..33691690e 100644 --- a/tests/auto/render/qfilterkey/tst_qfilterkey.cpp +++ b/tests/auto/render/qfilterkey/tst_qfilterkey.cpp @@ -166,13 +166,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "value"); - QCOMPARE(change->value().value<QVariant>(), filterKey.value()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &filterKey); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -182,6 +180,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -199,13 +198,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "name"); - QCOMPARE(change->value().value<QString>(), filterKey.name()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &filterKey); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -215,6 +212,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } diff --git a/tests/auto/render/qframegraphnode/tst_qframegraphnode.cpp b/tests/auto/render/qframegraphnode/tst_qframegraphnode.cpp index 1e19d8609..24febdac4 100644 --- a/tests/auto/render/qframegraphnode/tst_qframegraphnode.cpp +++ b/tests/auto/render/qframegraphnode/tst_qframegraphnode.cpp @@ -181,14 +181,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "enabled"); - QCOMPARE(change->subjectId(), frameGraphNode->id()); - QCOMPARE(change->value().toBool(), false); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), frameGraphNode.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN frameGraphNode->setEnabled(false); @@ -196,20 +193,18 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); // WHEN frameGraphNode->setEnabled(true); QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "enabled"); - QCOMPARE(change->subjectId(), frameGraphNode->id()); - QCOMPARE(change->value().toBool(), true); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - - arbiter.events.clear(); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), frameGraphNode.data()); + + arbiter.dirtyNodes.clear(); } void checkParentFrameNodeRetrieval() diff --git a/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp b/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp index 221d0f880..15cf98de0 100644 --- a/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp +++ b/tests/auto/render/qgeometryrenderer/tst_qgeometryrenderer.cpp @@ -162,117 +162,99 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "instanceCount"); - QCOMPARE(change->value().value<int>(), 256); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), geometryRenderer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN geometryRenderer->setVertexCount(1340); QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "vertexCount"); - QCOMPARE(change->value().value<int>(), 1340); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), geometryRenderer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN geometryRenderer->setIndexOffset(883); QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "indexOffset"); - QCOMPARE(change->value().value<int>(), 883); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), geometryRenderer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN geometryRenderer->setFirstInstance(1200); QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "firstInstance"); - QCOMPARE(change->value().value<int>(), 1200); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), geometryRenderer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN geometryRenderer->setIndexBufferByteOffset(91); QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "indexBufferByteOffset"); - QCOMPARE(change->value().value<int>(), 91); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), geometryRenderer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN geometryRenderer->setRestartIndexValue(65535); QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "restartIndexValue"); - QCOMPARE(change->value().value<int>(), 65535); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), geometryRenderer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN geometryRenderer->setVerticesPerPatch(2); QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "verticesPerPatch"); - QCOMPARE(change->value().toInt(), 2); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), geometryRenderer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN geometryRenderer->setPrimitiveRestartEnabled(true); QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "primitiveRestartEnabled"); - QCOMPARE(change->value().value<bool>(), true); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), geometryRenderer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN geometryRenderer->setPrimitiveType(Qt3DRender::QGeometryRenderer::Patches); QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "primitiveType"); - QCOMPARE(change->value().value<int>(), static_cast<int>(Qt3DRender::QGeometryRenderer::Patches)); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), geometryRenderer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN Qt3DRender::QGeometryFactoryPtr factory(new TestFactory(555)); @@ -281,7 +263,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); + auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); QCOMPARE(change->propertyName(), "geometryFactory"); QCOMPARE(change->value().value<Qt3DRender::QGeometryFactoryPtr>(), factory); QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); @@ -294,13 +276,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr nodeAddedChange = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(nodeAddedChange->propertyName(), "geometry"); - QCOMPARE(nodeAddedChange->value().value<Qt3DCore::QNodeId>(), geom.id()); - QCOMPARE(nodeAddedChange->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), geometryRenderer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN Qt3DRender::QGeometry geom2; @@ -308,13 +288,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr nodeRemovedChange = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(nodeRemovedChange->propertyName(), "geometry"); - QCOMPARE(nodeRemovedChange->value().value<Qt3DCore::QNodeId>(), geom2.id()); - QCOMPARE(nodeRemovedChange->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), geometryRenderer.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } void checkGeometryBookkeeping() diff --git a/tests/auto/render/qlevelofdetail/tst_qlevelofdetail.cpp b/tests/auto/render/qlevelofdetail/tst_qlevelofdetail.cpp index ba357c8c9..7d4e5d45d 100644 --- a/tests/auto/render/qlevelofdetail/tst_qlevelofdetail.cpp +++ b/tests/auto/render/qlevelofdetail/tst_qlevelofdetail.cpp @@ -93,12 +93,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "thresholdType"); - QCOMPARE(change->value().value<int>(), static_cast<int>(Qt3DRender::QLevelOfDetail::ProjectedScreenPixelSizeThreshold)); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), lod.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -108,12 +107,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "thresholds"); - QCOMPARE(change->value().value<decltype(thresholds)>(), thresholds); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), lod.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } } }; diff --git a/tests/auto/render/qmaterial/tst_qmaterial.cpp b/tests/auto/render/qmaterial/tst_qmaterial.cpp index dc6fe7789..5b24c6127 100644 --- a/tests/auto/render/qmaterial/tst_qmaterial.cpp +++ b/tests/auto/render/qmaterial/tst_qmaterial.cpp @@ -253,37 +253,26 @@ private Q_SLOTS: // WHEN Qt3DRender::QEffect effect; material->setEffect(&effect); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "effect"); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), effect.id()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), material.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // GIVEN TestArbiter arbiter2; QScopedPointer<TestMaterial> material2(new TestMaterial()); arbiter2.setArbiterOnNode(material2.data()); - QCoreApplication::processEvents(); - // Clear events trigger by child generation of TestMnterial - arbiter2.events.clear(); - // WHEN material2->setEffect(&effect); - QCoreApplication::processEvents(); // THEN - qDebug() << Q_FUNC_INFO << arbiter2.events.size(); - QCOMPARE(arbiter2.events.size(), 1); - change = arbiter2.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "effect"); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), effect.id()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter2.dirtyNodes.size(), 1); + QCOMPARE(arbiter2.dirtyNodes.front(), material2.data()); + + arbiter2.dirtyNodes.clear(); } void checkDynamicParametersAddedUpdates() @@ -364,93 +353,64 @@ private Q_SLOTS: TestMaterial *material = new TestMaterial(); arbiter.setArbiterOnNode(material); - QCoreApplication::processEvents(); - // Clear events trigger by child generation of TestMnterial - arbiter.events.clear(); - // WHEN const QByteArray vertexCode = QByteArrayLiteral("new vertex shader code"); material->m_shaderProgram->setVertexShaderCode(vertexCode); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "vertexShaderCode"); - QCOMPARE(change->value().value<QByteArray>(), vertexCode); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), material->m_shaderProgram); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN const QByteArray fragmentCode = QByteArrayLiteral("new fragment shader code"); material->m_shaderProgram->setFragmentShaderCode(fragmentCode); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "fragmentShaderCode"); - QCOMPARE(change->value().value<QByteArray>(), fragmentCode); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - - arbiter.events.clear(); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), material->m_shaderProgram); + arbiter.dirtyNodes.clear(); // WHEN const QByteArray geometryCode = QByteArrayLiteral("new geometry shader code"); material->m_shaderProgram->setGeometryShaderCode(geometryCode); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "geometryShaderCode"); - QCOMPARE(change->value().value<QByteArray>(), geometryCode); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), material->m_shaderProgram); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN const QByteArray computeCode = QByteArrayLiteral("new compute shader code"); material->m_shaderProgram->setComputeShaderCode(computeCode); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "computeShaderCode"); - QCOMPARE(change->value().value<QByteArray>(), computeCode); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), material->m_shaderProgram); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN const QByteArray tesselControlCode = QByteArrayLiteral("new tessellation control shader code"); material->m_shaderProgram->setTessellationControlShaderCode(tesselControlCode); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "tessellationControlShaderCode"); - QCOMPARE(change->value().value<QByteArray>(), tesselControlCode); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), material->m_shaderProgram); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN const QByteArray tesselEvalCode = QByteArrayLiteral("new tessellation eval shader code"); material->m_shaderProgram->setTessellationEvaluationShaderCode(tesselEvalCode); - QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "tessellationEvaluationShaderCode"); - QCOMPARE(change->value().value<QByteArray>(), tesselEvalCode); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), material->m_shaderProgram); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } void checkEffectBookkeeping() diff --git a/tests/auto/render/qmemorybarrier/tst_qmemorybarrier.cpp b/tests/auto/render/qmemorybarrier/tst_qmemorybarrier.cpp index 25ee10cad..3be43f677 100644 --- a/tests/auto/render/qmemorybarrier/tst_qmemorybarrier.cpp +++ b/tests/auto/render/qmemorybarrier/tst_qmemorybarrier.cpp @@ -148,13 +148,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "waitOperations"); - QCOMPARE(change->value().value<Qt3DRender::QMemoryBarrier::Operations>(), memoryBarrier.waitOperations()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &memoryBarrier); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -164,6 +162,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } diff --git a/tests/auto/render/qobjectpicker/tst_qobjectpicker.cpp b/tests/auto/render/qobjectpicker/tst_qobjectpicker.cpp index 2f351331a..53c0ec939 100644 --- a/tests/auto/render/qobjectpicker/tst_qobjectpicker.cpp +++ b/tests/auto/render/qobjectpicker/tst_qobjectpicker.cpp @@ -156,14 +156,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - QCOMPARE(picker.priority(), 883); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "priority"); - QCOMPARE(change->value().value<int>(), picker.priority()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - - arbiter.events.clear(); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &picker); + + arbiter.dirtyNodes.clear(); } { @@ -173,6 +170,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } { @@ -182,14 +180,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - QCOMPARE(picker.isDragEnabled(), true); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "dragEnabled"); - QCOMPARE(change->value().value<bool>(), picker.isDragEnabled()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - - arbiter.events.clear(); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &picker); + + arbiter.dirtyNodes.clear(); } { @@ -199,6 +194,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } { @@ -208,14 +204,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - QCOMPARE(picker.isHoverEnabled(), true); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "hoverEnabled"); - QCOMPARE(change->value().value<bool>(), picker.isHoverEnabled()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - - arbiter.events.clear(); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &picker); + + arbiter.dirtyNodes.clear(); } { @@ -225,6 +218,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } } @@ -272,13 +266,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.last().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "hoverEnabled"); - QCOMPARE(change->value().toBool(), true); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), objectPicker.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } void checkBackendUpdates_data() diff --git a/tests/auto/render/qparameter/tst_qparameter.cpp b/tests/auto/render/qparameter/tst_qparameter.cpp index d5957db27..77f9daae8 100644 --- a/tests/auto/render/qparameter/tst_qparameter.cpp +++ b/tests/auto/render/qparameter/tst_qparameter.cpp @@ -166,13 +166,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "name"); - QCOMPARE(change->value().value<QString>(), parameter.name()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), ¶meter); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -182,6 +180,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -199,13 +198,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "value"); - QCOMPARE(change->value().value<QVariant>(), parameter.value()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), ¶meter); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -215,6 +212,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } // WHEN -> QNode -> QNodeId @@ -227,13 +225,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "value"); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(),testEntity.id()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), ¶meter); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -243,6 +239,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } diff --git a/tests/auto/render/qproximityfilter/tst_qproximityfilter.cpp b/tests/auto/render/qproximityfilter/tst_qproximityfilter.cpp index 890d6ee3e..aa6be3143 100644 --- a/tests/auto/render/qproximityfilter/tst_qproximityfilter.cpp +++ b/tests/auto/render/qproximityfilter/tst_qproximityfilter.cpp @@ -176,13 +176,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "entity"); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), proximityFilter.entity()->id()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &proximityFilter); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -192,6 +190,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -209,13 +208,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "distanceThreshold"); - QCOMPARE(change->value().value<float>(), proximityFilter.distanceThreshold()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &proximityFilter); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -225,6 +222,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } diff --git a/tests/auto/render/qraycaster/tst_qraycaster.cpp b/tests/auto/render/qraycaster/tst_qraycaster.cpp index 43b317f00..c7f819a34 100644 --- a/tests/auto/render/qraycaster/tst_qraycaster.cpp +++ b/tests/auto/render/qraycaster/tst_qraycaster.cpp @@ -111,13 +111,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.last().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "origin"); - QCOMPARE(change->value().value<QVector3D>(), QVector3D(1., 1., 1.)); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), rayCaster.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN auto layer = new Qt3DRender::QLayer(rayCaster.data()); diff --git a/tests/auto/render/qrenderpass/tst_qrenderpass.cpp b/tests/auto/render/qrenderpass/tst_qrenderpass.cpp index bcc8e9313..38b66de94 100644 --- a/tests/auto/render/qrenderpass/tst_qrenderpass.cpp +++ b/tests/auto/render/qrenderpass/tst_qrenderpass.cpp @@ -305,13 +305,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "shaderProgram"); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), renderPass.shaderProgram()->id()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &renderPass); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -321,6 +319,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } diff --git a/tests/auto/render/qrendersettings/tst_qrendersettings.cpp b/tests/auto/render/qrendersettings/tst_qrendersettings.cpp index 6f182cbeb..224996579 100644 --- a/tests/auto/render/qrendersettings/tst_qrendersettings.cpp +++ b/tests/auto/render/qrendersettings/tst_qrendersettings.cpp @@ -253,13 +253,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "renderPolicy"); - QCOMPARE(change->value().value<Qt3DRender::QRenderSettings::RenderPolicy>(), renderSettings.renderPolicy()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &renderSettings); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -269,6 +267,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -287,13 +286,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "activeFrameGraph"); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), viewport.id()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &renderSettings); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -303,6 +300,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -322,13 +320,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "pickMethod"); - QCOMPARE(change->value().value<Qt3DRender::QPickingSettings::PickMethod>(), pickingSettings->pickMethod()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &renderSettings); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -338,6 +334,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -357,13 +354,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "pickResultMode"); - QCOMPARE(change->value().value<Qt3DRender::QPickingSettings::PickResultMode>(), pickingSettings->pickResultMode()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &renderSettings); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -373,6 +368,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -392,13 +388,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "faceOrientationPickingMode"); - QCOMPARE(change->value().value<Qt3DRender::QPickingSettings::FaceOrientationPickingMode>(), pickingSettings->faceOrientationPickingMode()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &renderSettings); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -408,6 +402,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -427,13 +422,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "pickWorldSpaceTolerance"); - QCOMPARE(change->value().toFloat(), pickingSettings->worldSpaceTolerance()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &renderSettings); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -443,6 +436,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } diff --git a/tests/auto/render/qrenderstate/tst_qrenderstate.cpp b/tests/auto/render/qrenderstate/tst_qrenderstate.cpp index 596aa9553..63319b42c 100644 --- a/tests/auto/render/qrenderstate/tst_qrenderstate.cpp +++ b/tests/auto/render/qrenderstate/tst_qrenderstate.cpp @@ -200,18 +200,18 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - QPropertyUpdatedChangePtr change = arbiter.events.first().staticCast<QPropertyUpdatedChange>(); - QVERIFY(change->propertyName() == propertyName); - QCOMPARE(change->subjectId(), frontend1->id()); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), frontend1); - // WHEN - backend1->sceneChangeEvent(change.staticCast<QSceneChange>()); + // TODOSYNC update when syncFromFrontendNode is implemented +// // WHEN +// backend1->sceneChangeEvent(change.staticCast<QSceneChange>()); - // THEN - QVERIFY(backend1->impl() == backend2->impl()); +// // THEN +// QVERIFY(backend1->impl() == backend2->impl()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } void checkStencilUpdates_data() diff --git a/tests/auto/render/qrendersurfaceselector/tst_qrendersurfaceselector.cpp b/tests/auto/render/qrendersurfaceselector/tst_qrendersurfaceselector.cpp index 982a58b2b..1004921d8 100644 --- a/tests/auto/render/qrendersurfaceselector/tst_qrendersurfaceselector.cpp +++ b/tests/auto/render/qrendersurfaceselector/tst_qrendersurfaceselector.cpp @@ -261,13 +261,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "surface"); - QCOMPARE(change->value().value<QObject *>(), renderSurfaceSelector.surface()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &renderSurfaceSelector); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -277,6 +275,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } // Prevents crashes with temporary window being destroyed @@ -296,13 +295,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "externalRenderTargetSize"); - QCOMPARE(change->value().value<QSize>(), renderSurfaceSelector.externalRenderTargetSize()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &renderSurfaceSelector); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -312,6 +309,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -329,13 +327,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "surfacePixelRatio"); - QCOMPARE(change->value().value<float>(), renderSurfaceSelector.surfacePixelRatio()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &renderSurfaceSelector); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -345,6 +341,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } diff --git a/tests/auto/render/qrendertargetoutput/tst_qrendertargetoutput.cpp b/tests/auto/render/qrendertargetoutput/tst_qrendertargetoutput.cpp index c847095dc..d501bc4e5 100644 --- a/tests/auto/render/qrendertargetoutput/tst_qrendertargetoutput.cpp +++ b/tests/auto/render/qrendertargetoutput/tst_qrendertargetoutput.cpp @@ -247,13 +247,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "attachmentPoint"); - QCOMPARE(change->value().value<Qt3DRender::QRenderTargetOutput::AttachmentPoint>(), renderTargetOutput.attachmentPoint()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &renderTargetOutput); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -263,6 +261,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -281,13 +280,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "texture"); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), renderTargetOutput.texture()->id()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &renderTargetOutput); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -297,6 +294,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -314,13 +312,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "mipLevel"); - QCOMPARE(change->value().value<int>(), renderTargetOutput.mipLevel()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &renderTargetOutput); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -330,6 +326,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -347,13 +344,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "layer"); - QCOMPARE(change->value().value<int>(), renderTargetOutput.layer()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &renderTargetOutput); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -363,6 +358,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -380,13 +376,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "face"); - QCOMPARE(change->value().value<Qt3DRender::QAbstractTexture::CubeMapFace>(), renderTargetOutput.face()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &renderTargetOutput); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -396,6 +390,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } diff --git a/tests/auto/render/qrendertargetselector/tst_qrendertargetselector.cpp b/tests/auto/render/qrendertargetselector/tst_qrendertargetselector.cpp index 6b53ab733..f525f1254 100644 --- a/tests/auto/render/qrendertargetselector/tst_qrendertargetselector.cpp +++ b/tests/auto/render/qrendertargetselector/tst_qrendertargetselector.cpp @@ -117,14 +117,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "target"); - QCOMPARE(change->subjectId(), renderTargetSelector->id()); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), target->id()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), renderTargetSelector.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN renderTargetSelector->setTarget(target); @@ -132,20 +129,18 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); // WHEN renderTargetSelector->setTarget(nullptr); QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "target"); - QCOMPARE(change->subjectId(), renderTargetSelector->id()); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), Qt3DCore::QNodeId()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), renderTargetSelector.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint> outputs; @@ -155,7 +150,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); + auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); QCOMPARE(change->propertyName(), "outputs"); QCOMPARE(change->subjectId(), renderTargetSelector->id()); QCOMPARE(change->value().value<QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint> >(), outputs); @@ -182,7 +177,6 @@ private Q_SLOTS: QCOMPARE(change->value().value<QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint> >(), QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>()); QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - arbiter.events.clear(); } diff --git a/tests/auto/render/qscene2d/tst_qscene2d.cpp b/tests/auto/render/qscene2d/tst_qscene2d.cpp index 846207456..5ea2dd110 100644 --- a/tests/auto/render/qscene2d/tst_qscene2d.cpp +++ b/tests/auto/render/qscene2d/tst_qscene2d.cpp @@ -222,13 +222,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "output"); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), scene2d.output()->id()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &scene2d); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -238,6 +236,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -255,14 +254,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "renderPolicy"); - QCOMPARE(change->value().value<Qt3DRender::Quick::QScene2D::RenderPolicy>(), - scene2d.renderPolicy()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - - arbiter.events.clear(); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &scene2d); + + arbiter.dirtyNodes.clear(); } { @@ -272,6 +268,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -289,13 +286,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "mouseEnabled"); - QCOMPARE(change->value().toBool(), scene2d.isMouseEnabled()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &scene2d); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -305,6 +300,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } diff --git a/tests/auto/render/qsceneloader/tst_qsceneloader.cpp b/tests/auto/render/qsceneloader/tst_qsceneloader.cpp index d5d3feec8..381960c42 100644 --- a/tests/auto/render/qsceneloader/tst_qsceneloader.cpp +++ b/tests/auto/render/qsceneloader/tst_qsceneloader.cpp @@ -130,34 +130,34 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "source"); - QCOMPARE(change->value().value<QUrl>(), sourceUrl); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), sceneLoader.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } - void checkStatusPropertyUpdate() - { - // GIVEN - qRegisterMetaType<Qt3DRender::QSceneLoader::Status>("Status"); - TestArbiter arbiter; - QScopedPointer<Qt3DRender::QSceneLoader> sceneLoader(new Qt3DRender::QSceneLoader()); - arbiter.setArbiterOnNode(sceneLoader.data()); - QSignalSpy spy(sceneLoader.data(), SIGNAL(statusChanged(Status))); + // DEPRECATED +// void checkStatusPropertyUpdate() +// { +// // GIVEN +// qRegisterMetaType<Qt3DRender::QSceneLoader::Status>("Status"); +// TestArbiter arbiter; +// QScopedPointer<Qt3DRender::QSceneLoader> sceneLoader(new Qt3DRender::QSceneLoader()); +// arbiter.setArbiterOnNode(sceneLoader.data()); +// QSignalSpy spy(sceneLoader.data(), SIGNAL(statusChanged(Status))); - // WHEN - const Qt3DRender::QSceneLoader::Status newStatus = Qt3DRender::QSceneLoader::Ready; - sceneLoader->setStatus(newStatus); +// // WHEN +// const Qt3DRender::QSceneLoader::Status newStatus = Qt3DRender::QSceneLoader::Ready; +// sceneLoader->setStatus(newStatus); - // THEN - QVERIFY(arbiter.events.empty()); - QCOMPARE(spy.count(), 1); +// // THEN +// QVERIFY(arbiter.events.empty()); +// QCOMPARE(spy.count(), 1); - spy.clear(); - } +// spy.clear(); +// } void checkPropertyChanges() { diff --git a/tests/auto/render/qscreenraycaster/tst_qscreenraycaster.cpp b/tests/auto/render/qscreenraycaster/tst_qscreenraycaster.cpp index fd67da175..60f386dd9 100644 --- a/tests/auto/render/qscreenraycaster/tst_qscreenraycaster.cpp +++ b/tests/auto/render/qscreenraycaster/tst_qscreenraycaster.cpp @@ -105,13 +105,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.last().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "position"); - QCOMPARE(change->value().value<QPoint>(), QPoint(200, 200)); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), rayCaster.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } void checkBackendUpdates_data() diff --git a/tests/auto/render/qshaderimage/tst_qshaderimage.cpp b/tests/auto/render/qshaderimage/tst_qshaderimage.cpp index 0a12e806f..67c9ca39b 100644 --- a/tests/auto/render/qshaderimage/tst_qshaderimage.cpp +++ b/tests/auto/render/qshaderimage/tst_qshaderimage.cpp @@ -279,13 +279,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "texture"); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), shaderImage.texture()->id()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &shaderImage); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -295,6 +293,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -312,13 +311,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "layered"); - QCOMPARE(change->value().value<bool>(), shaderImage.layered()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &shaderImage); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -328,6 +325,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -345,13 +343,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "mipLevel"); - QCOMPARE(change->value().value<int>(), shaderImage.mipLevel()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &shaderImage); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -361,6 +357,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -378,13 +375,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "layer"); - QCOMPARE(change->value().value<int>(), shaderImage.layer()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &shaderImage); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -394,6 +389,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -411,13 +407,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "access"); - QCOMPARE(change->value().value<Qt3DRender::QShaderImage::Access>(), shaderImage.access()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &shaderImage); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -427,6 +421,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -444,13 +439,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "format"); - QCOMPARE(change->value().value<Qt3DRender::QShaderImage::ImageFormat>(), shaderImage.format()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &shaderImage); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -460,6 +453,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } diff --git a/tests/auto/render/qshaderprogram/tst_qshaderprogram.cpp b/tests/auto/render/qshaderprogram/tst_qshaderprogram.cpp index 3fcc49067..7865a5f65 100644 --- a/tests/auto/render/qshaderprogram/tst_qshaderprogram.cpp +++ b/tests/auto/render/qshaderprogram/tst_qshaderprogram.cpp @@ -261,13 +261,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "vertexShaderCode"); - QCOMPARE(change->value().value<QByteArray>(), shaderProgram.vertexShaderCode()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &shaderProgram); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -277,6 +275,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -294,13 +293,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "tessellationControlShaderCode"); - QCOMPARE(change->value().value<QByteArray>(), shaderProgram.tessellationControlShaderCode()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &shaderProgram); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -310,6 +307,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -327,13 +325,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "tessellationEvaluationShaderCode"); - QCOMPARE(change->value().value<QByteArray>(), shaderProgram.tessellationEvaluationShaderCode()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &shaderProgram); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -343,6 +339,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -360,13 +357,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "geometryShaderCode"); - QCOMPARE(change->value().value<QByteArray>(), shaderProgram.geometryShaderCode()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &shaderProgram); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -376,6 +371,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -393,13 +389,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "fragmentShaderCode"); - QCOMPARE(change->value().value<QByteArray>(), shaderProgram.fragmentShaderCode()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &shaderProgram); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -409,6 +403,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -426,13 +421,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "computeShaderCode"); - QCOMPARE(change->value().value<QByteArray>(), shaderProgram.computeShaderCode()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &shaderProgram); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -442,6 +435,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } diff --git a/tests/auto/render/qshaderprogrambuilder/tst_qshaderprogrambuilder.cpp b/tests/auto/render/qshaderprogrambuilder/tst_qshaderprogrambuilder.cpp index 021a3d6c1..881c24728 100644 --- a/tests/auto/render/qshaderprogrambuilder/tst_qshaderprogrambuilder.cpp +++ b/tests/auto/render/qshaderprogrambuilder/tst_qshaderprogrambuilder.cpp @@ -351,13 +351,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "shaderProgram"); - QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), builder.shaderProgram()->id()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &builder); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -367,6 +365,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -384,13 +383,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "enabledLayers"); - QCOMPARE(change->value().toStringList(), layers); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &builder); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -400,6 +397,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -416,13 +414,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "vertexShaderGraph"); - QCOMPARE(change->value().value<QUrl>(), builder.vertexShaderGraph()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &builder); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -432,6 +428,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -449,13 +446,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "tessellationControlShaderGraph"); - QCOMPARE(change->value().value<QUrl>(), builder.tessellationControlShaderGraph()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &builder); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -465,6 +460,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -482,13 +478,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "tessellationEvaluationShaderGraph"); - QCOMPARE(change->value().value<QUrl>(), builder.tessellationEvaluationShaderGraph()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &builder); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -498,6 +492,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -515,13 +510,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "geometryShaderGraph"); - QCOMPARE(change->value().value<QUrl>(), builder.geometryShaderGraph()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &builder); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -531,6 +524,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -548,13 +542,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "fragmentShaderGraph"); - QCOMPARE(change->value().value<QUrl>(), builder.fragmentShaderGraph()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &builder); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -564,6 +556,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -581,13 +574,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "computeShaderGraph"); - QCOMPARE(change->value().value<QUrl>(), builder.computeShaderGraph()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &builder); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -597,6 +588,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } diff --git a/tests/auto/render/qsharedgltexture/tst_qsharedgltexture.cpp b/tests/auto/render/qsharedgltexture/tst_qsharedgltexture.cpp index 1a1db60e4..8402f86bd 100644 --- a/tests/auto/render/qsharedgltexture/tst_qsharedgltexture.cpp +++ b/tests/auto/render/qsharedgltexture/tst_qsharedgltexture.cpp @@ -144,13 +144,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - const auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "textureId"); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - QCOMPARE(change->value().toInt(), 1584); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &glTexture); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -160,6 +158,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } diff --git a/tests/auto/render/qsortpolicy/tst_qsortpolicy.cpp b/tests/auto/render/qsortpolicy/tst_qsortpolicy.cpp index 477acc058..66c625cfc 100644 --- a/tests/auto/render/qsortpolicy/tst_qsortpolicy.cpp +++ b/tests/auto/render/qsortpolicy/tst_qsortpolicy.cpp @@ -117,13 +117,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "sortTypes"); - QCOMPARE(change->value().value<QVector<int>>(), sortTypesInt); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), sortPolicy.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } }; diff --git a/tests/auto/render/qviewport/tst_qviewport.cpp b/tests/auto/render/qviewport/tst_qviewport.cpp index 93a2735f2..ab3dda08f 100644 --- a/tests/auto/render/qviewport/tst_qviewport.cpp +++ b/tests/auto/render/qviewport/tst_qviewport.cpp @@ -97,37 +97,32 @@ private Q_SLOTS: { // WHEN - viewport->setNormalizedRect(QRectF(0.5f, 0.5f, 1.0f, 1.0f)); + viewport->setNormalizedRect(QRectF(0.5, 0.5, 1.0, 1.0)); QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "normalizedRect"); - QCOMPARE(change->subjectId(), viewport->id()); - QCOMPARE(change->value().value<QRectF>(), QRectF(0.5f, 0.5f, 1.0f, 1.0f)); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), viewport.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN - viewport->setNormalizedRect(QRectF(0.5f, 0.5f, 1.0f, 1.0f)); + viewport->setNormalizedRect(QRectF(0.5, 0.5, 1.0, 1.0)); QCoreApplication::processEvents(); // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); // WHEN - viewport->setNormalizedRect(QRectF(0.0f, 0.0f, 1.0f, 1.0f)); + viewport->setNormalizedRect(QRectF(0.0, 0.0, 1.0, 1.0)); QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "normalizedRect"); - QCOMPARE(change->subjectId(), viewport->id()); - QCOMPARE(change->value().value<QRectF>(), QRectF(0.0f, 0.0f, 1.0f, 1.0f)); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), viewport.data()); } arbiter.events.clear(); @@ -138,14 +133,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "gamma"); - QCOMPARE(change->subjectId(), viewport->id()); - QCOMPARE(change->value().toFloat(), 1.8f); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), viewport.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN viewport->setGamma(1.8f); @@ -153,18 +145,16 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); // WHEN viewport->setGamma(2.0f); QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "gamma"); - QCOMPARE(change->subjectId(), viewport->id()); - QCOMPARE(change->value().toFloat(), 2.0f); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), viewport.data()); } } }; diff --git a/tests/auto/render/qwaitfence/tst_qwaitfence.cpp b/tests/auto/render/qwaitfence/tst_qwaitfence.cpp index ab3ae9b4d..db0618074 100644 --- a/tests/auto/render/qwaitfence/tst_qwaitfence.cpp +++ b/tests/auto/render/qwaitfence/tst_qwaitfence.cpp @@ -228,13 +228,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "handleType"); - QCOMPARE(change->value().value<Qt3DRender::QWaitFence::HandleType>(), waitFence.handleType()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &waitFence); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -244,6 +242,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -260,13 +259,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "handle"); - QCOMPARE(change->value().value<QVariant>(), waitFence.handle()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &waitFence); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -276,6 +273,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } @@ -292,13 +290,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "waitOnCPU"); - QCOMPARE(change->value().value<bool>(), waitFence.waitOnCPU()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &waitFence); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -308,6 +304,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.events.size(), 0); } } @@ -324,13 +321,11 @@ private Q_SLOTS: QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "timeout"); - QCOMPARE(change->value().value<quint64>(), waitFence.timeout()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &waitFence); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); } { @@ -340,6 +335,7 @@ private Q_SLOTS: // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); } } }; diff --git a/tests/auto/render/renderviewutils/tst_renderviewutils.cpp b/tests/auto/render/renderviewutils/tst_renderviewutils.cpp index 931778c6e..cf0c25d10 100644 --- a/tests/auto/render/renderviewutils/tst_renderviewutils.cpp +++ b/tests/auto/render/renderviewutils/tst_renderviewutils.cpp @@ -768,24 +768,20 @@ void tst_RenderViewUtils::shouldNotifyDynamicPropertyChanges() shaderData->setProperty("scalar", 883.0f); // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().dynamicCast<Qt3DCore::QDynamicPropertyUpdatedChange>(); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - QCOMPARE(change->propertyName(), QByteArrayLiteral("scalar")); - QCOMPARE(change->value().toFloat(), 883.0f); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), shaderData.data()); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN QScopedPointer<Qt3DRender::QAbstractTexture> texture(new Qt3DRender::QTexture2D); shaderData->setProperty("texture", QVariant::fromValue(texture.data())); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().dynamicCast<Qt3DCore::QDynamicPropertyUpdatedChange>(); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - QCOMPARE(change->propertyName(), QByteArrayLiteral("texture")); - QCOMPARE(change->value(), QVariant::fromValue(texture->id())); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), shaderData.data()); } QTEST_MAIN(tst_RenderViewUtils) diff --git a/tests/auto/render/texture/tst_texture.cpp b/tests/auto/render/texture/tst_texture.cpp index d827e900e..1d69c54be 100644 --- a/tests/auto/render/texture/tst_texture.cpp +++ b/tests/auto/render/texture/tst_texture.cpp @@ -114,13 +114,11 @@ void tst_RenderTexture::checkFrontendPropertyNotifications() QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - Qt3DCore::QPropertyUpdatedChangePtr change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "width"); - QCOMPARE(change->value().value<int>(), 512); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &texture); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN texture.setWidth(512); @@ -128,19 +126,18 @@ void tst_RenderTexture::checkFrontendPropertyNotifications() // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); // WHEN texture.setHeight(256); QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "height"); - QCOMPARE(change->value().value<int>(), 256); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &texture); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN texture.setHeight(256); @@ -148,19 +145,18 @@ void tst_RenderTexture::checkFrontendPropertyNotifications() // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); // WHEN texture.setDepth(128); QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "depth"); - QCOMPARE(change->value().value<int>(), 128); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &texture); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN texture.setDepth(128); @@ -168,19 +164,18 @@ void tst_RenderTexture::checkFrontendPropertyNotifications() // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.events.size(), 0); // WHEN texture.setLayers(16); QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "layers"); - QCOMPARE(change->value().value<int>(), 16); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &texture); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN texture.setLayers(16); @@ -188,19 +183,18 @@ void tst_RenderTexture::checkFrontendPropertyNotifications() // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); // WHEN texture.setSamples(32); QCoreApplication::processEvents(); // THEN - QCOMPARE(arbiter.events.size(), 1); - change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "samples"); - QCOMPARE(change->value().value<int>(), 32); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 1); + QCOMPARE(arbiter.dirtyNodes.front(), &texture); - arbiter.events.clear(); + arbiter.dirtyNodes.clear(); // WHEN texture.setSamples(32); @@ -208,6 +202,7 @@ void tst_RenderTexture::checkFrontendPropertyNotifications() // THEN QCOMPARE(arbiter.events.size(), 0); + QCOMPARE(arbiter.dirtyNodes.size(), 0); // WHEN Qt3DRender::QTextureImage img; |