diff options
author | Liang Qi <liang.qi@qt.io> | 2018-02-14 11:55:27 +0000 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2018-02-14 11:56:26 +0000 |
commit | a400bbe50deb98f5d924cd4f6562e1b868e73248 (patch) | |
tree | a636e2224d3677aca2406bac5d835100610500e3 /src/render/materialsystem/technique.cpp | |
parent | d360e16fdcab2197924e2505695c412bcaadbbe0 (diff) | |
parent | 1382b0cfb336cc04924d61b46f0b69dadb1c3d39 (diff) |
Merge "Merge remote-tracking branch 'origin/5.10.1' into 5.11" into refs/staging/5.11v5.11.0-alpha1
Diffstat (limited to 'src/render/materialsystem/technique.cpp')
-rw-r--r-- | src/render/materialsystem/technique.cpp | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/src/render/materialsystem/technique.cpp b/src/render/materialsystem/technique.cpp index 4fd1555e1..5438fa9c8 100644 --- a/src/render/materialsystem/technique.cpp +++ b/src/render/materialsystem/technique.cpp @@ -102,43 +102,53 @@ void Technique::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) switch (e->type()) { case PropertyUpdated: { const auto change = qSharedPointerCast<QPropertyUpdatedChange>(e); - if (change->propertyName() == QByteArrayLiteral("graphicsApiFilterData")) { + if (change->propertyName() == QByteArrayLiteral("enabled")) { + markDirty(AbstractRenderer::TechniquesDirty); + } else if (change->propertyName() == QByteArrayLiteral("graphicsApiFilterData")) { GraphicsApiFilterData filterData = change->value().value<GraphicsApiFilterData>(); m_graphicsApiFilterData = filterData; // Notify the manager that our graphicsApiFilterData has changed // and that we therefore need to be check for compatibility again m_isCompatibleWithRenderer = false; m_nodeManager->techniqueManager()->addDirtyTechnique(peerId()); + markDirty(AbstractRenderer::TechniquesDirty); } break; } case PropertyValueAdded: { const auto change = qSharedPointerCast<QPropertyNodeAddedChange>(e); - if (change->propertyName() == QByteArrayLiteral("pass")) + if (change->propertyName() == QByteArrayLiteral("pass")) { appendRenderPass(change->addedNodeId()); - else if (change->propertyName() == QByteArrayLiteral("parameter")) + markDirty(AbstractRenderer::TechniquesDirty); + } else if (change->propertyName() == QByteArrayLiteral("parameter")) { m_parameterPack.appendParameter(change->addedNodeId()); - else if (change->propertyName() == QByteArrayLiteral("filterKeys")) + markDirty(AbstractRenderer::TechniquesDirty); + } else if (change->propertyName() == QByteArrayLiteral("filterKeys")) { appendFilterKey(change->addedNodeId()); + markDirty(AbstractRenderer::TechniquesDirty); + } break; } case PropertyValueRemoved: { const auto change = qSharedPointerCast<QPropertyNodeRemovedChange>(e); - if (change->propertyName() == QByteArrayLiteral("pass")) + if (change->propertyName() == QByteArrayLiteral("pass")) { removeRenderPass(change->removedNodeId()); - else if (change->propertyName() == QByteArrayLiteral("parameter")) + markDirty(AbstractRenderer::TechniquesDirty); + } else if (change->propertyName() == QByteArrayLiteral("parameter")) { m_parameterPack.removeParameter(change->removedNodeId()); - else if (change->propertyName() == QByteArrayLiteral("filterKeys")) + markDirty(AbstractRenderer::TechniquesDirty); + } else if (change->propertyName() == QByteArrayLiteral("filterKeys")) { removeFilterKey(change->removedNodeId()); + markDirty(AbstractRenderer::TechniquesDirty); + } break; } default: break; } - markDirty(AbstractRenderer::AllDirty); BackendNode::sceneChangeEvent(e); } |