diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-01-15 11:57:28 +0000 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-01-17 17:20:42 +0000 |
commit | 5301ff32875355fc1c9bfad06f31f78733b14a65 (patch) | |
tree | 66d572221904e078126a3218aecc8a71be336a52 /src/render/backend/renderersettings.cpp | |
parent | 022e920cac539cdb94a7c9002737f4ecf3e0d3a2 (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.cpp | 35 |
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 |