summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/render/backend/parameterpack_p.h5
-rw-r--r--src/render/framegraph/renderpassfilternode.cpp10
-rw-r--r--src/render/framegraph/renderpassfilternode_p.h2
3 files changed, 17 insertions, 0 deletions
diff --git a/src/render/backend/parameterpack_p.h b/src/render/backend/parameterpack_p.h
index da1ec6e44..d09f2b7cb 100644
--- a/src/render/backend/parameterpack_p.h
+++ b/src/render/backend/parameterpack_p.h
@@ -70,6 +70,11 @@ public:
void removeParameter(Qt3DCore::QNodeId parameterId);
QVector<Qt3DCore::QNodeId> parameters() const;
+ void setParameters(const Qt3DCore::QNodeIdVector &parameterIds)
+ {
+ m_peers = parameterIds;
+ }
+
private:
QVector<Qt3DCore::QNodeId> m_peers;
};
diff --git a/src/render/framegraph/renderpassfilternode.cpp b/src/render/framegraph/renderpassfilternode.cpp
index a36560d09..c8bd81b4f 100644
--- a/src/render/framegraph/renderpassfilternode.cpp
+++ b/src/render/framegraph/renderpassfilternode.cpp
@@ -40,6 +40,7 @@
#include "renderpassfilternode_p.h"
#include "qfilterkey.h"
#include "qrenderpassfilter.h"
+#include <Qt3DRender/private/qrenderpassfilter_p.h>
#include <Qt3DCore/qscenepropertychange.h>
#include <Qt3DRender/qparameter.h>
@@ -69,6 +70,15 @@ void RenderPassFilter::updateFromPeer(Qt3DCore::QNode *peer)
m_parameterPack.appendParameter(p->id());
}
+void RenderPassFilter::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change)
+{
+ const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QRenderPassFilterData>>(change);
+ const auto &data = typedChange->data;
+ setEnabled(change->isNodeEnabled());
+ m_filters = data.matchIds;
+ m_parameterPack.setParameters(data.parameterIds);
+}
+
QVector<Qt3DCore::QNodeId> RenderPassFilter::filters() const
{
return m_filters;
diff --git a/src/render/framegraph/renderpassfilternode_p.h b/src/render/framegraph/renderpassfilternode_p.h
index d1c4e8234..4047beb89 100644
--- a/src/render/framegraph/renderpassfilternode_p.h
+++ b/src/render/framegraph/renderpassfilternode_p.h
@@ -81,6 +81,8 @@ public:
void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE;
private:
+ void initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) Q_DECL_FINAL;
+
QVector<Qt3DCore::QNodeId> m_filters;
ParameterPack m_parameterPack;
};