summaryrefslogtreecommitdiffstats
path: root/src/render/framegraph
diff options
context:
space:
mode:
authorWieland Hagen <wieland.hagen@kdab.com>2017-01-09 12:36:48 +0700
committerSean Harmer <sean.harmer@kdab.com>2017-01-09 20:17:25 +0000
commitd2215e0986395539ea5dcf63d8bd1bc1b41d3de7 (patch)
tree37e5b0db8a853518db4db6cee122d32ad3d7b4e4 /src/render/framegraph
parent5386c767fa5a6be312f02b0cf23869974d5766b2 (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.cpp20
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);