summaryrefslogtreecommitdiffstats
path: root/src/runtimerender/Qt3DSRenderContextCore.cpp
diff options
context:
space:
mode:
authorAntti Määttä <antti.maatta@qt.io>2020-05-05 11:01:30 +0300
committerAntti Määttä <antti.maatta@qt.io>2020-05-07 08:35:00 +0300
commitfa819899abd4d405da782b34abde8a23cbc2da5a (patch)
treefc0f51b9300763414f7ff8128a5512c13b694bf6 /src/runtimerender/Qt3DSRenderContextCore.cpp
parentfcfe2c787a6429323afe974ee8d9abcf8f2747ee (diff)
Fix studio viewport rendering when scene camera is visible
The runtime contains unused viewport parameters. Remove those and fix the editor by reading the scissor rect from render list instead of render context, which contains wrong scissor rect. Task-number: QT3DS-4103 Change-Id: I8b443c3a5e8d7ac84eb211633cea2afeed6da30b Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Diffstat (limited to 'src/runtimerender/Qt3DSRenderContextCore.cpp')
-rw-r--r--src/runtimerender/Qt3DSRenderContextCore.cpp25
1 files changed, 6 insertions, 19 deletions
diff --git a/src/runtimerender/Qt3DSRenderContextCore.cpp b/src/runtimerender/Qt3DSRenderContextCore.cpp
index d1d0fff..44f10c0 100644
--- a/src/runtimerender/Qt3DSRenderContextCore.cpp
+++ b/src/runtimerender/Qt3DSRenderContextCore.cpp
@@ -241,8 +241,7 @@ struct SRenderContext : public IQt3DSRenderContext
NVScopedRefCounted<IRenderList> m_RenderList;
QT3DSU32 m_FrameCount;
volatile QT3DSI32 mRefCount;
- // Viewport that this render context should use
- Option<NVRenderRect> m_Viewport;
+
QSize m_WindowDimensions;
ScaleModes::Enum m_ScaleMode;
StereoModes::Enum m_StereoMode;
@@ -501,9 +500,6 @@ struct SRenderContext : public IQt3DSRenderContext
bool GetWireframeMode() override { return m_WireframeMode; }
- void SetViewport(Option<NVRenderRect> inViewport) override { m_Viewport = inViewport; }
- Option<NVRenderRect> GetViewport() const override { return m_Viewport; }
-
IRenderWidgetContext &GetRenderWidgetContext() override
{
return m_Renderer->GetRenderWidgetContext();
@@ -556,11 +552,7 @@ struct SRenderContext : public IQt3DSRenderContext
NVRenderRect GetContextViewport() const override
{
NVRenderRect retval;
- if (m_Viewport.hasValue())
- retval = *m_Viewport;
- else
- retval = NVRenderRect(0, 0, m_WindowDimensions.width(), m_WindowDimensions.height());
-
+ retval = NVRenderRect(0, 0, m_WindowDimensions.width(), m_WindowDimensions.height());
return retval;
}
@@ -697,12 +689,8 @@ struct SRenderContext : public IQt3DSRenderContext
m_PerFrameAllocator.reset();
IRenderList &theRenderList(*m_RenderList);
theRenderList.BeginFrame();
- if (m_Viewport.hasValue()) {
- theRenderList.SetScissorTestEnabled(true);
- theRenderList.SetScissorRect(theContextViewport);
- } else {
- theRenderList.SetScissorTestEnabled(false);
- }
+ theRenderList.SetScissorRect(theContextViewport);
+ theRenderList.SetScissorTestEnabled(false);
bool renderOffscreen = m_Rotation != RenderRotationValues::NoRotation;
eastl::pair<NVRenderRect, NVRenderRect> thePresViewportAndOuterViewport =
GetPresentationViewportAndOuterViewport();
@@ -782,11 +770,10 @@ struct SRenderContext : public IQt3DSRenderContext
{
bool stereoProgressiveEnabled = GetStereoProgressiveEnabled();
// Clearing for matte / scene background
- if (m_Viewport.hasValue() || stereoProgressiveEnabled) {
+ if (stereoProgressiveEnabled) {
// With progressive stereoscopic rendering needs to be adjusted to viewport
NVRenderRect theContextViewport(GetContextViewport());
- if (stereoProgressiveEnabled)
- adjustRectToStereoMode(theContextViewport);
+ adjustRectToStereoMode(theContextViewport);
m_RenderContext->SetScissorTestEnabled(true);
m_RenderContext->SetScissorRect(theContextViewport);
} else {