summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaj Grönholm <kaj.gronholm@qt.io>2020-02-14 12:35:45 +0200
committerKaj Grönholm <kaj.gronholm@qt.io>2020-02-14 12:46:56 +0200
commitdd818e3bcf64669dd49235f1b9e634c8f24f4808 (patch)
treea96d0acf0eb1f6d6d9478808322b55c86ca5f69b
parent7ee97f3489bb1cba4095e58d4aa5241de772dc7b (diff)
Fix rendering after stereoscopic mode switch
When stereoscopic mode is changed, mark layerdata dirty. This fixes at least presentations with temporalAA on. Task-number: QT3DS-4067 Change-Id: I99afda71f56e81d1a9b67ba1e2c882b9b33c97ee Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
-rw-r--r--src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp7
-rw-r--r--src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.h1
2 files changed, 8 insertions, 0 deletions
diff --git a/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp b/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp
index 821a0b8..9c1da26 100644
--- a/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp
+++ b/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp
@@ -155,6 +155,7 @@ namespace render {
, m_FeaturesDirty(true)
, m_FeatureSetHash(0)
, m_TooManyLightsError(false)
+ , m_StereoMode(StereoModes::Mono)
{
}
@@ -1333,6 +1334,12 @@ namespace render {
m_Renderer.PrepareImageForIbl(*m_Layer.m_LightProbe);
wasDataDirty = true;
}
+ if (m_StereoMode != thePrepResult.getStereoMode()) {
+ // When stereo mode changes we need to mark data dirty
+ // for e.g. temporalAA to render correctly.
+ m_StereoMode = thePrepResult.getStereoMode();
+ wasDataDirty = true;
+ }
bool lightProbeValid = HasValidLightProbe(m_Layer.m_LightProbe);
diff --git a/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.h b/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.h
index 8b1463a..376749e 100644
--- a/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.h
+++ b/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.h
@@ -296,6 +296,7 @@ namespace render {
bool m_FeaturesDirty;
size_t m_FeatureSetHash;
bool m_TooManyLightsError;
+ StereoModes::Enum m_StereoMode;
// shadow mapps
NVScopedRefCounted<Qt3DSShadowMap> m_ShadowMapManager;