diff options
-rw-r--r-- | src/render/backend/parameterpack_p.h | 5 | ||||
-rw-r--r-- | src/render/framegraph/renderpassfilternode.cpp | 10 | ||||
-rw-r--r-- | src/render/framegraph/renderpassfilternode_p.h | 2 |
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 ¶meterIds) + { + 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; }; |