summaryrefslogtreecommitdiffstats
path: root/src/Authoring/Studio/Render/StudioRenderer.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2018-08-10 17:52:58 +0300
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2018-08-14 07:46:06 +0000
commit43d1f99ea4ea8aee825fabcdd7ec9fdad9a6539f (patch)
tree34b635798ecab3a9b0e9f007ecc10896ba189a9e /src/Authoring/Studio/Render/StudioRenderer.cpp
parent07d58b5fe318d1ab2341e7cd3b9802efdd338387 (diff)
Fix preview view issues
Dragging was inaccurate when preview view was shown due to incorrect translation being left after preview view was rendered. Changed the preview view to render first to a texture, which is then draw on top at the end of the regular view rendering pass. The viewport for camera was also incorrect for preview view. Task-number: QT3DS-2036 Change-Id: I3ed8f092c2a2a2f3806d5219ca8fb7718a8d4fe0 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Antti Määttä <antti.maatta@qt.io>
Diffstat (limited to 'src/Authoring/Studio/Render/StudioRenderer.cpp')
-rw-r--r--src/Authoring/Studio/Render/StudioRenderer.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/Authoring/Studio/Render/StudioRenderer.cpp b/src/Authoring/Studio/Render/StudioRenderer.cpp
index 4099022e..7c2eda44 100644
--- a/src/Authoring/Studio/Render/StudioRenderer.cpp
+++ b/src/Authoring/Studio/Render/StudioRenderer.cpp
@@ -397,22 +397,25 @@ struct SRendererImpl : public IStudioRenderer,
m_RenderRequested = false;
if (!m_Closed && IsInitialized()) {
m_RenderContext->BeginRender();
- if (m_Translation)
- m_Translation->PreRender(false);
+ bool preview = false;
+ if (m_Translation) {
+ preview = CStudioPreferences::showEditModePreview()
+ && m_Translation->m_EditCameraEnabled
+ && !m_Translation->GetPreviewViewportDimensions().isZero();
+ m_Translation->PreRender(preview);
+ }
NVRenderContext &theContext = m_RenderContext->GetRenderContext();
theContext.SetDepthWriteEnabled(true);
theContext.Clear(qt3ds::render::NVRenderClearFlags(
- qt3ds::render::NVRenderClearValues::Color | qt3ds::render::NVRenderClearValues::Depth));
+ qt3ds::render::NVRenderClearValues::Color
+ | qt3ds::render::NVRenderClearValues::Depth));
if (m_Translation) {
- m_Translation->Render(m_PickResult.GetWidgetId(), m_GuidesEnabled, false);
-
// draw scene preview view screen display area layer
- if (CStudioPreferences::showEditModePreview()
- && m_Translation->m_EditCameraEnabled
- && !m_Translation->GetPreviewViewportDimensions().isZero()) {
- m_Translation->PreRender(true);
- m_Translation->Render(0, false, true);
+ if (preview) {
+ m_Translation->Render(0, false, true, false);
+ m_Translation->PreRender(false);
}
+ m_Translation->Render(m_PickResult.GetWidgetId(), m_GuidesEnabled, false, preview);
}
m_RenderContext->EndRender();