diff options
Diffstat (limited to 'src/runtimerender/rendererimpl')
-rw-r--r-- | src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp | 7 | ||||
-rw-r--r-- | src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.h | 1 |
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; |