void tst_RenderTexture::checkPropertyChanges() { // GIVEN TestRenderer renderer; Qt3DRender::Render::Texture backend; backend.setRenderer(&renderer); // WHEN Qt3DCore::QPropertyUpdatedChangePtr updateChange(new Qt3DCore::QPropertyUpdatedChange(Qt3DCore::QNodeId())); updateChange->setValue(256); updateChange->setPropertyName("width"); backend.sceneChangeEvent(updateChange); // THEN QCOMPARE(backend.properties().width, 256); QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::TexturesDirty); renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); // WHEN updateChange = QSharedPointer<Qt3DCore::QPropertyUpdatedChange>::create(Qt3DCore::QNodeId()); updateChange->setValue(128); updateChange->setPropertyName("height"); backend.sceneChangeEvent(updateChange); // THEN QCOMPARE(backend.properties().height, 128); QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::TexturesDirty); renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); // WHEN updateChange = QSharedPointer<Qt3DCore::QPropertyUpdatedChange>::create(Qt3DCore::QNodeId()); updateChange->setValue(16); updateChange->setPropertyName("depth"); backend.sceneChangeEvent(updateChange); // THEN QCOMPARE(backend.properties().depth, 16); QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::TexturesDirty); renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); // WHEN updateChange = QSharedPointer<Qt3DCore::QPropertyUpdatedChange>::create(Qt3DCore::QNodeId()); updateChange->setValue(32); updateChange->setPropertyName("layers"); backend.sceneChangeEvent(updateChange); // THEN QCOMPARE(backend.properties().layers, 32); QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::TexturesDirty); renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); // WHEN updateChange = QSharedPointer<Qt3DCore::QPropertyUpdatedChange>::create(Qt3DCore::QNodeId()); updateChange->setValue(64); updateChange->setPropertyName("samples"); backend.sceneChangeEvent(updateChange); // THEN QCOMPARE(backend.properties().samples, 64); QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::TexturesDirty); renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); }
void checkPropertyChanges() { // GIVEN Qt3DRender::Render::GeometryRenderer renderGeometryRenderer; QVERIFY(!renderGeometryRenderer.isDirty()); // WHEN Qt3DCore::QScenePropertyChangePtr updateChange(new Qt3DCore::QScenePropertyChange(Qt3DCore::NodeUpdated, Qt3DCore::QSceneChange::Node, Qt3DCore::QNodeId())); updateChange->setPropertyName("instanceCount"); updateChange->setValue(2); renderGeometryRenderer.sceneChangeEvent(updateChange); // THEN QCOMPARE(renderGeometryRenderer.instanceCount(), 2); QVERIFY(renderGeometryRenderer.isDirty()); renderGeometryRenderer.unsetDirty(); QVERIFY(!renderGeometryRenderer.isDirty()); // WHEN updateChange.reset(new Qt3DCore::QScenePropertyChange(Qt3DCore::NodeUpdated, Qt3DCore::QSceneChange::Node, Qt3DCore::QNodeId())); updateChange->setPropertyName("primitiveCount"); updateChange->setValue(56); renderGeometryRenderer.sceneChangeEvent(updateChange); // THEN QCOMPARE(renderGeometryRenderer.primitiveCount(), 56); QVERIFY(renderGeometryRenderer.isDirty()); renderGeometryRenderer.unsetDirty(); QVERIFY(!renderGeometryRenderer.isDirty()); // WHEN updateChange.reset(new Qt3DCore::QScenePropertyChange(Qt3DCore::NodeUpdated, Qt3DCore::QSceneChange::Node, Qt3DCore::QNodeId())); updateChange->setPropertyName("baseVertex"); updateChange->setValue(65); renderGeometryRenderer.sceneChangeEvent(updateChange); // THEN QCOMPARE(renderGeometryRenderer.baseVertex(), 65); QVERIFY(renderGeometryRenderer.isDirty()); renderGeometryRenderer.unsetDirty(); QVERIFY(!renderGeometryRenderer.isDirty()); // WHEN updateChange.reset(new Qt3DCore::QScenePropertyChange(Qt3DCore::NodeUpdated, Qt3DCore::QSceneChange::Node, Qt3DCore::QNodeId())); updateChange->setPropertyName("baseInstance"); updateChange->setValue(82); renderGeometryRenderer.sceneChangeEvent(updateChange); // THEN QCOMPARE(renderGeometryRenderer.baseInstance(), 82); QVERIFY(renderGeometryRenderer.isDirty()); renderGeometryRenderer.unsetDirty(); QVERIFY(!renderGeometryRenderer.isDirty()); // WHEN updateChange.reset(new Qt3DCore::QScenePropertyChange(Qt3DCore::NodeUpdated, Qt3DCore::QSceneChange::Node, Qt3DCore::QNodeId())); updateChange->setPropertyName("restartIndex"); updateChange->setValue(46); renderGeometryRenderer.sceneChangeEvent(updateChange); // THEN QCOMPARE(renderGeometryRenderer.restartIndex(), 46); QVERIFY(renderGeometryRenderer.isDirty()); renderGeometryRenderer.unsetDirty(); QVERIFY(!renderGeometryRenderer.isDirty()); // WHEN updateChange.reset(new Qt3DCore::QScenePropertyChange(Qt3DCore::NodeUpdated, Qt3DCore::QSceneChange::Node, Qt3DCore::QNodeId())); updateChange->setPropertyName("primitiveRestart"); updateChange->setValue(true); renderGeometryRenderer.sceneChangeEvent(updateChange); // THEN QCOMPARE(renderGeometryRenderer.primitiveRestart(), true); QVERIFY(renderGeometryRenderer.isDirty()); renderGeometryRenderer.unsetDirty(); QVERIFY(!renderGeometryRenderer.isDirty()); // WHEN updateChange.reset(new Qt3DCore::QScenePropertyChange(Qt3DCore::NodeUpdated, Qt3DCore::QSceneChange::Node, Qt3DCore::QNodeId())); updateChange->setPropertyName("primitiveType"); updateChange->setValue(static_cast<int>(Qt3DRender::QGeometryRenderer::LineLoop)); renderGeometryRenderer.sceneChangeEvent(updateChange); // THEN QCOMPARE(renderGeometryRenderer.primitiveType(), Qt3DRender::QGeometryRenderer::LineLoop); QVERIFY(renderGeometryRenderer.isDirty()); renderGeometryRenderer.unsetDirty(); QVERIFY(!renderGeometryRenderer.isDirty()); // WHEN updateChange.reset(new Qt3DCore::QScenePropertyChange(Qt3DCore::NodeUpdated, Qt3DCore::QSceneChange::Node, Qt3DCore::QNodeId())); updateChange->setPropertyName("geometryFunctor"); Qt3DRender::QGeometryFunctorPtr functor(new TestFunctor(1450)); updateChange->setValue(QVariant::fromValue(functor)); renderGeometryRenderer.sceneChangeEvent(updateChange); // THEN QCOMPARE(renderGeometryRenderer.geometryFunctor(), functor); QVERIFY(renderGeometryRenderer.isDirty()); renderGeometryRenderer.unsetDirty(); QVERIFY(!renderGeometryRenderer.isDirty()); // WHEN updateChange.reset(new Qt3DCore::QScenePropertyChange(Qt3DCore::NodeAdded, Qt3DCore::QSceneChange::Node, Qt3DCore::QNodeId())); Qt3DCore::QNodeId geometryId = Qt3DCore::QNodeId::createId(); updateChange->setValue(QVariant::fromValue(geometryId)); updateChange->setPropertyName("geometry"); renderGeometryRenderer.sceneChangeEvent(updateChange); // THEN QCOMPARE(renderGeometryRenderer.geometryId(), geometryId); QVERIFY(renderGeometryRenderer.isDirty()); renderGeometryRenderer.unsetDirty(); QVERIFY(!renderGeometryRenderer.isDirty()); // WHEN updateChange.reset(new Qt3DCore::QScenePropertyChange(Qt3DCore::NodeRemoved, Qt3DCore::QSceneChange::Node, Qt3DCore::QNodeId())); updateChange->setValue(QVariant::fromValue(geometryId)); updateChange->setPropertyName("geometry"); renderGeometryRenderer.sceneChangeEvent(updateChange); // THEN QCOMPARE(renderGeometryRenderer.geometryId(), Qt3DCore::QNodeId()); QVERIFY(renderGeometryRenderer.isDirty()); renderGeometryRenderer.unsetDirty(); QVERIFY(!renderGeometryRenderer.isDirty()); // WHEN updateChange.reset(new Qt3DCore::QScenePropertyChange(Qt3DCore::NodeUpdated, Qt3DCore::QSceneChange::Node, Qt3DCore::QNodeId())); updateChange->setValue(QVariant::fromValue(false)); updateChange->setPropertyName("enabled"); renderGeometryRenderer.sceneChangeEvent(updateChange); // THEN QCOMPARE(renderGeometryRenderer.isEnabled(), false); QVERIFY(!renderGeometryRenderer.isDirty()); }