diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-05-17 07:52:01 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-05-20 18:18:17 +0000 |
commit | b8e6376df567dafda8c6b9015c9e87972351edf6 (patch) | |
tree | 3523c9c840eefc32e9b1062fe45271902842a3c1 /src | |
parent | b6abf3d5104dc573f6df049580f77d278a7c30d0 (diff) |
Improvements to RenderSettings
Get function now returns the RenderSettings object so that it can be
destroyed in response to a node destroyed change.
No need for a cleanup function as it's not managed by a resource
manager that needs to recycle it. Instead initialize in the ctor
initializer.
Change-Id: I0ac6c43d1ce99bf7e1532580901894c8457c1a56
Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/render/backend/rendersettings.cpp | 17 | ||||
-rw-r--r-- | src/render/backend/rendersettings_p.h | 1 |
2 files changed, 7 insertions, 11 deletions
diff --git a/src/render/backend/rendersettings.cpp b/src/render/backend/rendersettings.cpp index b602d23e1..184aff37f 100644 --- a/src/render/backend/rendersettings.cpp +++ b/src/render/backend/rendersettings.cpp @@ -53,8 +53,11 @@ namespace Render { RenderSettings::RenderSettings() : BackendNode() + , m_renderPolicy(QRenderSettings::OnDemand) + , m_pickMethod(QPickingSettings::BoundingVolumePicking) + , m_pickResultMode(QPickingSettings::NearestPick) + , m_activeFrameGraph() { - cleanup(); } void RenderSettings::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) @@ -67,14 +70,6 @@ void RenderSettings::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePt m_pickResultMode = data.pickResultMode; } -void RenderSettings::cleanup() -{ - m_pickMethod = QPickingSettings::BoundingVolumePicking; - m_pickResultMode = QPickingSettings::NearestPick; - m_activeFrameGraph = Qt3DCore::QNodeId(); - m_renderPolicy = QRenderSettings::OnDemand; -} - void RenderSettings::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) { if (e->type() == PropertyUpdated) { @@ -115,13 +110,15 @@ Qt3DCore::QBackendNode *RenderSettingsFunctor::create(const Qt3DCore::QNodeCreat Qt3DCore::QBackendNode *RenderSettingsFunctor::get(Qt3DCore::QNodeId id) const { Q_UNUSED(id); - return nullptr; + return m_renderer->settings(); } void RenderSettingsFunctor::destroy(Qt3DCore::QNodeId id) const { Q_UNUSED(id); // Deletes the old settings object + auto settings = m_renderer->settings(); + delete settings; m_renderer->setSettings(nullptr); } diff --git a/src/render/backend/rendersettings_p.h b/src/render/backend/rendersettings_p.h index 643959a8f..f95ec9645 100644 --- a/src/render/backend/rendersettings_p.h +++ b/src/render/backend/rendersettings_p.h @@ -67,7 +67,6 @@ class RenderSettings : public BackendNode public: RenderSettings(); - void cleanup(); void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; Qt3DCore::QNodeId activeFrameGraphID() const { return m_activeFrameGraph; } |