diff options
author | Wieland Hagen <wieland.hagen@kdab.com> | 2016-02-17 17:53:42 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-03-09 13:19:39 +0000 |
commit | c042228267dc4bb05ee3e6d53074c7218d1e7054 (patch) | |
tree | aacbe10f48912e9324526e64d722377143d542cc /src/render/frontend/qrendersettings.cpp | |
parent | 807a25d74550faf42ed79dfe234b5f1ce3380cf4 (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.cpp | 22 |
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; } |