summaryrefslogtreecommitdiffstats
path: root/src/render/backend/renderersettings.cpp
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2016-01-15 11:57:28 +0000
committerSean Harmer <sean.harmer@kdab.com>2016-01-17 17:20:42 +0000
commit5301ff32875355fc1c9bfad06f31f78733b14a65 (patch)
tree66d572221904e078126a3218aecc8a71be336a52 /src/render/backend/renderersettings.cpp
parent022e920cac539cdb94a7c9002737f4ecf3e0d3a2 (diff)
Register renderer settings and set on renderer
Change-Id: I7f4a0c7a51721e8425f9e32aa1a0609fc3e5ee14 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/backend/renderersettings.cpp')
-rw-r--r--src/render/backend/renderersettings.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/render/backend/renderersettings.cpp b/src/render/backend/renderersettings.cpp
index 04d22ee67..0a53746ba 100644
--- a/src/render/backend/renderersettings.cpp
+++ b/src/render/backend/renderersettings.cpp
@@ -37,6 +37,7 @@
#include "renderersettings_p.h"
#include <Qt3DCore/qscenepropertychange.h>
+#include <Qt3DRender/private/abstractrenderer_p.h>
QT_BEGIN_NAMESPACE
@@ -74,6 +75,40 @@ void RendererSettings::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e)
}
}
+
+RendererSettingsFunctor::RendererSettingsFunctor(AbstractRenderer *renderer)
+ : m_renderer(renderer)
+{
+}
+
+Qt3DCore::QBackendNode *RendererSettingsFunctor::create(Qt3DCore::QNode *frontend, const Qt3DCore::QBackendNodeFactory *factory) const
+{
+ QRendererSettings *settingsFrontend = static_cast<QRendererSettings *>(frontend);
+ if (m_renderer->settings() != Q_NULLPTR) {
+ qWarning() << "Renderer settings already exists";
+ return Q_NULLPTR;
+ }
+
+ RendererSettings *settings = new RendererSettings;
+ settings->setFactory(factory);
+ settings->setPeer(settingsFrontend);
+ m_renderer->setSettings(settings);
+ return settings;
+}
+
+Qt3DCore::QBackendNode *RendererSettingsFunctor::get(const Qt3DCore::QNodeId &id) const
+{
+ Q_UNUSED(id);
+ return Q_NULLPTR;
+}
+
+void RendererSettingsFunctor::destroy(const Qt3DCore::QNodeId &id) const
+{
+ Q_UNUSED(id);
+ // Deletes the old settings object
+ m_renderer->setSettings(Q_NULLPTR);
+}
+
} // namespace Render
} // namespace Qt3DRender