diff options
author | Anders Hafreager <andershaf@gmail.com> | 2017-09-24 20:13:55 +0200 |
---|---|---|
committer | Anders Hafreager <andershaf@gmail.com> | 2017-09-24 19:32:34 +0000 |
commit | 72e80520d36802672eca1e93bc6c6019e6f5ffc3 (patch) | |
tree | dcdf5f309d70079e33137e3a283268c8520eb0af | |
parent | ba9a38ceca15f9bc086a6c9c5d341001e9e73852 (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.cpp | 5 |
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) |