summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Hafreager <andershaf@gmail.com>2017-09-24 20:13:55 +0200
committerAnders Hafreager <andershaf@gmail.com>2017-09-24 19:32:34 +0000
commit72e80520d36802672eca1e93bc6c6019e6f5ffc3 (patch)
treedcdf5f309d70079e33137e3a283268c8520eb0af
parentba9a38ceca15f9bc086a6c9c5d341001e9e73852 (diff)
Copy size and pixelRatio when switching activeFrameGraph
Copy externalRenderTargetSize and surfacePixelRatio from old to new surfaceSelector when setting activeFrameGraph on RenderSettings. Previously, when switching activeFrameGraph, surface was copied from old to new surfaceSelector, but these other properties were not. The rendered image was then stretched until window is resized again. Change-Id: I62b78da05c764f981813ab96b9a769bae7d786b2 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r--src/render/frontend/qrendersettings.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/render/frontend/qrendersettings.cpp b/src/render/frontend/qrendersettings.cpp
index b73fed77b..e89764b4e 100644
--- a/src/render/frontend/qrendersettings.cpp
+++ b/src/render/frontend/qrendersettings.cpp
@@ -209,8 +209,11 @@ void QRenderSettings::setActiveFrameGraph(QFrameGraphNode *activeFrameGraph)
if (d->m_activeFrameGraph && activeFrameGraph) {
Qt3DRender::QRenderSurfaceSelector *oldSurfaceSelector = Qt3DRender::QRenderSurfaceSelectorPrivate::find(d->m_activeFrameGraph);
Qt3DRender::QRenderSurfaceSelector *newSurfaceSelector = Qt3DRender::QRenderSurfaceSelectorPrivate::find(activeFrameGraph);
- if (oldSurfaceSelector && newSurfaceSelector && oldSurfaceSelector->surface())
+ if (oldSurfaceSelector && newSurfaceSelector && oldSurfaceSelector->surface()) {
+ newSurfaceSelector->setExternalRenderTargetSize(oldSurfaceSelector->externalRenderTargetSize());
+ newSurfaceSelector->setSurfacePixelRatio(oldSurfaceSelector->surfacePixelRatio());
newSurfaceSelector->setSurface(oldSurfaceSelector->surface());
+ }
}
if (d->m_activeFrameGraph)