diff options
author | Wieland Hagen <wieland.hagen@kdab.com> | 2017-01-09 12:36:48 +0700 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2017-01-09 20:17:25 +0000 |
commit | d2215e0986395539ea5dcf63d8bd1bc1b41d3de7 (patch) | |
tree | 37e5b0db8a853518db4db6cee122d32ad3d7b4e4 /src/render/framegraph | |
parent | 5386c767fa5a6be312f02b0cf23869974d5766b2 (diff) |
QRendererSettings::setActiveFrameGraph(): Set surface for new graph
If the old frame graph already has a QRenderSurfaceSelector, use the
surface assigned to this selector for the new frame graph, too.
Task-number: QTBUG-57401
Change-Id: I5a0142d4ca40f5ff0047b7b42ae79fdc48189cf0
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/framegraph')
-rw-r--r-- | src/render/framegraph/qrendersurfaceselector.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/render/framegraph/qrendersurfaceselector.cpp b/src/render/framegraph/qrendersurfaceselector.cpp index d5e2a79bb..41112101a 100644 --- a/src/render/framegraph/qrendersurfaceselector.cpp +++ b/src/render/framegraph/qrendersurfaceselector.cpp @@ -136,16 +136,20 @@ QRenderSurfaceSelectorPrivate::~QRenderSurfaceSelectorPrivate() QRenderSurfaceSelector *QRenderSurfaceSelectorPrivate::find(QObject *rootObject) { - auto rendererSettings = rootObject->findChild<Qt3DRender::QRenderSettings *>(); - if (!rendererSettings) { - qWarning() << "No renderer settings component found"; - return nullptr; - } + QFrameGraphNode *frameGraphRoot = qobject_cast<QFrameGraphNode *>(rootObject); - auto frameGraphRoot = rendererSettings->activeFrameGraph(); if (!frameGraphRoot) { - qWarning() << "No active frame graph found"; - return nullptr; + auto rendererSettings = rootObject->findChild<Qt3DRender::QRenderSettings *>(); + if (!rendererSettings) { + qWarning() << "No renderer settings component found"; + return nullptr; + } + + frameGraphRoot = rendererSettings->activeFrameGraph(); + if (!frameGraphRoot) { + qWarning() << "No active frame graph found"; + return nullptr; + } } auto surfaceSelector = qobject_cast<Qt3DRender::QRenderSurfaceSelector *>(frameGraphRoot); |