summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2016-05-17 07:52:01 +0100
committerSean Harmer <sean.harmer@kdab.com>2016-05-20 18:18:17 +0000
commitb8e6376df567dafda8c6b9015c9e87972351edf6 (patch)
tree3523c9c840eefc32e9b1062fe45271902842a3c1 /src
parentb6abf3d5104dc573f6df049580f77d278a7c30d0 (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.cpp17
-rw-r--r--src/render/backend/rendersettings_p.h1
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; }