summaryrefslogtreecommitdiffstats
path: root/src/runtime/dragon/dragonrendersettings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/dragon/dragonrendersettings.cpp')
-rw-r--r--src/runtime/dragon/dragonrendersettings.cpp16
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;
}