summaryrefslogtreecommitdiffstats
path: root/src/Authoring
diff options
context:
space:
mode:
authorTony Leinonen <tony.leinonen@qt.io>2020-10-13 12:12:56 +0300
committerTony Leinonen <tony.leinonen@qt.io>2020-10-15 14:27:56 +0300
commitf719f0c951b7d626fcce9ac8eaeeae76b9be9d31 (patch)
tree658b934ce59f40f85cff4cf43f6c0b8c74546443 /src/Authoring
parente676aafa1986f5f6592b53e39c198e13a77c4177 (diff)
Handle editor preview depth prepass better
Editor now shows everything with depth prepass enabled. Scene camera shows layers how depth prepass was set in their advanced properties. Task-number: QT3DS-4174 Change-Id: I93259fb26a4932b96729442d924e0685ee33562c Reviewed-by: Antti Määttä <antti.maatta@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Diffstat (limited to 'src/Authoring')
-rw-r--r--src/Authoring/Qt3DStudio/Render/StudioRendererTranslation.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/Authoring/Qt3DStudio/Render/StudioRendererTranslation.cpp b/src/Authoring/Qt3DStudio/Render/StudioRendererTranslation.cpp
index e261fda1..d24f1061 100644
--- a/src/Authoring/Qt3DStudio/Render/StudioRendererTranslation.cpp
+++ b/src/Authoring/Qt3DStudio/Render/StudioRendererTranslation.cpp
@@ -2881,17 +2881,17 @@ void STranslation::Render(int inWidgetId, bool inDrawGuides, bool scenePreviewPa
if (m_axisHelperEnabled)
m_Context.GetRenderer().AddRenderWidget(*m_AxisHelperWidget);
}
-
+ QVector<bool> layerDepthPrepasses = {};
if (scenePreviewPass) {
m_Context.GetRenderContext().SetViewport(GetPreviewViewport());
m_Context.SetSceneColor(Option<QT3DSVec4>());
-
+ } else {
SLayer *child = m_Scene->m_FirstChild;
do {
+ layerDepthPrepasses.append(child->m_Flags.IsLayerEnableDepthPrepass());
child->m_Flags.SetLayerEnableDepthPrepass(true);
child = (SLayer *)child->m_NextSibling;
} while (child);
-
}
m_Scene->PrepareForRender(m_Context);
@@ -3068,6 +3068,15 @@ void STranslation::Render(int inWidgetId, bool inDrawGuides, bool scenePreviewPa
theRenderContext.SetDepthWriteEnabled( false );
m_Context.GetRenderer().RenderQuad( theDimensions, theVP, *m_PickBuffer );
}*/
+ if (!scenePreviewPass) {
+ SLayer *child = m_Scene->m_FirstChild;
+ int childIndex = 0;
+ do {
+ child->m_Flags.SetLayerEnableDepthPrepass(layerDepthPrepasses.at(childIndex));
+ child = (SLayer *)child->m_NextSibling;
+ ++childIndex;
+ } while (child);
+ }
}
}