summaryrefslogtreecommitdiffstats
path: root/src/render/materialsystem/technique.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/materialsystem/technique.cpp')
-rw-r--r--src/render/materialsystem/technique.cpp26
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);
}