summaryrefslogtreecommitdiffstats
path: root/src/render/frontend/qrendersettings.cpp
diff options
context:
space:
mode:
authorWieland Hagen <wieland.hagen@kdab.com>2016-02-17 17:53:42 +0100
committerSean Harmer <sean.harmer@kdab.com>2016-03-09 13:19:39 +0000
commitc042228267dc4bb05ee3e6d53074c7218d1e7054 (patch)
treeaacbe10f48912e9324526e64d722377143d542cc /src/render/frontend/qrendersettings.cpp
parent807a25d74550faf42ed79dfe234b5f1ce3380cf4 (diff)
Drop QFrameGraph in favor of QRenderSettings
QFrameGraph did store just the Frame Graph Root, and was not configurable at runtime. This functionality has been moved to QRenderSettings. The renderer now gets the scene graph root directly from QRenderSettings. Change-Id: I3012eb96b8073717f96f5e42374859a3f4a89bfc Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/frontend/qrendersettings.cpp')
-rw-r--r--src/render/frontend/qrendersettings.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/render/frontend/qrendersettings.cpp b/src/render/frontend/qrendersettings.cpp
index 06dfa238d..bf6537c84 100644
--- a/src/render/frontend/qrendersettings.cpp
+++ b/src/render/frontend/qrendersettings.cpp
@@ -37,6 +37,7 @@
**
****************************************************************************/
+#include "qframegraphnode.h"
#include "qrendersettings.h"
#include "qrendersettings_p.h"
@@ -46,6 +47,7 @@ namespace Qt3DRender {
QRenderSettingsPrivate::QRenderSettingsPrivate()
: Qt3DCore::QComponentPrivate()
+ , m_activeFrameGraph(Q_NULLPTR)
, m_pickMethod(QRenderSettings::BoundingVolumePicking)
, m_pickResultMode(QRenderSettings::NearestPick)
{
@@ -66,6 +68,12 @@ QRenderSettings::~QRenderSettings()
QNode::cleanup();
}
+QFrameGraphNode *QRenderSettings::activeFrameGraph() const
+{
+ Q_D(const QRenderSettings);
+ return d->m_activeFrameGraph;
+}
+
QRenderSettings::PickMethod QRenderSettings::pickMethod() const
{
Q_D(const QRenderSettings);
@@ -78,6 +86,18 @@ QRenderSettings::PickResultMode QRenderSettings::pickResultMode() const
return d->m_pickResultMode;
}
+void QRenderSettings::setActiveFrameGraph(QFrameGraphNode *activeFrameGraph)
+{
+ Q_D(QRenderSettings);
+ if (d->m_activeFrameGraph == activeFrameGraph)
+ return;
+
+ if (activeFrameGraph != Q_NULLPTR && !activeFrameGraph->parent())
+ activeFrameGraph->setParent(this);
+ d->m_activeFrameGraph = activeFrameGraph;
+ emit activeFrameGraphChanged(activeFrameGraph);
+}
+
void QRenderSettings::setPickMethod(QRenderSettings::PickMethod pickMethod)
{
Q_D(QRenderSettings);
@@ -102,6 +122,8 @@ void QRenderSettings::copy(const QNode *ref)
{
QComponent::copy(ref);
const QRenderSettings *object = static_cast<const QRenderSettings *>(ref);
+ setActiveFrameGraph(qobject_cast<QFrameGraphNode *>(QNode::clone(object->activeFrameGraph())));
+
d_func()->m_pickMethod = object->d_func()->m_pickMethod;
d_func()->m_pickResultMode = object->d_func()->m_pickResultMode;
}