diff options
Diffstat (limited to 'src/runtime/dragon/dragonrendersettings.cpp')
-rw-r--r-- | src/runtime/dragon/dragonrendersettings.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/runtime/dragon/dragonrendersettings.cpp b/src/runtime/dragon/dragonrendersettings.cpp index 6bf33f0..dd24064 100644 --- a/src/runtime/dragon/dragonrendersettings.cpp +++ b/src/runtime/dragon/dragonrendersettings.cpp @@ -44,7 +44,7 @@ using namespace Qt3DCore; namespace Qt3DRender { namespace Dragon { -RenderSettings::RenderSettings() +RenderSettings::RenderSettings(NodeTree *nodeTree) : Qt3DCore::QBackendNode() , m_renderPolicy(QRenderSettings::OnDemand) , m_pickMethod(QPickingSettings::BoundingVolumePicking) @@ -52,11 +52,17 @@ RenderSettings::RenderSettings() , m_faceOrientationPickingMode(QPickingSettings::FrontFace) , m_pickWorldSpaceTolerance(.1f) , m_activeFrameGraph() + , m_nodeTree(nodeTree) { } +// TODO see if maybe all that was needed was for this to have a parent? + void RenderSettings::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) { + m_nodeTree->addNode(peerId()); + m_nodeTree->setParent(peerId(), change->parentId()); + const auto typedChange = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<QRenderSettingsData>>(change); const auto &data = typedChange->data; m_activeFrameGraph = data.activeFrameGraphId; @@ -84,14 +90,18 @@ void RenderSettings::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) m_activeFrameGraph = propertyChange->value().value<QNodeId>(); else if (propertyChange->propertyName() == QByteArrayLiteral("renderPolicy")) m_renderPolicy = propertyChange->value().value<QRenderSettings::RenderPolicy>(); + else if (propertyChange->propertyName() == QByteArrayLiteral("parent")) { + m_nodeTree->setParent(peerId(), propertyChange->value().value<QNodeId>()); + } // markDirty(AbstractRenderer::AllDirty); } QBackendNode::sceneChangeEvent(e); } -RenderSettingsFunctor::RenderSettingsFunctor(QDragonRenderAspect *renderer) +RenderSettingsFunctor::RenderSettingsFunctor(QDragonRenderAspect *renderer, NodeTree *nodeTree) : m_renderer(renderer) + , m_nodeTree(nodeTree) { } @@ -103,7 +113,7 @@ Qt3DCore::QBackendNode *RenderSettingsFunctor::create(const Qt3DCore::QNodeCreat return nullptr; } - RenderSettings *settings = new RenderSettings; + RenderSettings *settings = new RenderSettings(m_nodeTree); m_renderer->m_renderSettings = settings; return settings; } |