diff options
-rw-r--r-- | src/engine/Qt3DSRenderRuntimeBinding.cpp | 5 | ||||
-rw-r--r-- | src/engine/Qt3DSRenderRuntimeBindingImplRenderer.cpp | 4 | ||||
-rw-r--r-- | src/engine/Qt3DSRuntimeView.h | 1 | ||||
-rw-r--r-- | src/runtimerender/Qt3DSRenderContextCore.cpp | 25 | ||||
-rw-r--r-- | src/runtimerender/Qt3DSRenderContextCore.h | 5 | ||||
-rw-r--r-- | src/runtimerender/Qt3DSRenderSubpresentation.cpp | 5 | ||||
-rw-r--r-- | src/runtimerender/Qt3DSRenderer.h | 2 | ||||
-rw-r--r-- | src/runtimerender/graphobjects/Qt3DSRenderScene.cpp | 4 | ||||
-rw-r--r-- | src/runtimerender/graphobjects/Qt3DSRenderScene.h | 2 | ||||
-rw-r--r-- | src/runtimerender/rendererimpl/Qt3DSRendererImpl.cpp | 2 | ||||
-rw-r--r-- | src/runtimerender/rendererimpl/Qt3DSRendererImpl.h | 4 | ||||
-rw-r--r-- | src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp | 2 |
12 files changed, 15 insertions, 46 deletions
diff --git a/src/engine/Qt3DSRenderRuntimeBinding.cpp b/src/engine/Qt3DSRenderRuntimeBinding.cpp index 3d7dac8..e099e47 100644 --- a/src/engine/Qt3DSRenderRuntimeBinding.cpp +++ b/src/engine/Qt3DSRenderRuntimeBinding.cpp @@ -293,10 +293,7 @@ struct Qt3DSRenderScene : public Q3DStudio::IScene TransferDirtyProperties(); m_LastRenderViewport = m_Context->GetRenderList().GetViewport(); if (m_Presentation && m_Presentation->m_Scene) { - NVRenderRect theViewportSize(m_LastRenderViewport); - return m_Presentation->m_Scene->PrepareForRender( - QT3DSVec2(QT3DSF32(theViewportSize.m_Width), QT3DSF32(theViewportSize.m_Height)), - *m_Context); + return m_Presentation->m_Scene->PrepareForRender(*m_Context); } return false; } diff --git a/src/engine/Qt3DSRenderRuntimeBindingImplRenderer.cpp b/src/engine/Qt3DSRenderRuntimeBindingImplRenderer.cpp index 78a1d17..e0176c7 100644 --- a/src/engine/Qt3DSRenderRuntimeBindingImplRenderer.cpp +++ b/src/engine/Qt3DSRenderRuntimeBindingImplRenderer.cpp @@ -210,10 +210,6 @@ struct SRenderer : public Q3DStudio::ITegraApplicationRenderEngine m_Viewport = NVRenderRect(inX, inY, inWidth, inHeight); m_BindingCore->m_RenderContext->SetViewport(m_Viewport); } - void SetApplicationViewport(const qt3ds::render::NVRenderRect &inViewport) override - { - m_BindingCore->m_Context->SetViewport(inViewport); - } void SetMatteColor(Option<QT3DSVec4> inColor) override { m_Context->SetMatteColor(inColor); } void setMatteEnabled(bool enabled) override { m_Context->setMatteEnabled(enabled); }; diff --git a/src/engine/Qt3DSRuntimeView.h b/src/engine/Qt3DSRuntimeView.h index cb6da7f..72d8908 100644 --- a/src/engine/Qt3DSRuntimeView.h +++ b/src/engine/Qt3DSRuntimeView.h @@ -132,7 +132,6 @@ protected: public: virtual void SetViewport(INT32 inX, INT32 inY, INT32 inWidth, INT32 inHeight) = 0; - virtual void SetApplicationViewport(const qt3ds::render::NVRenderRect &inViewport) = 0; virtual void ensureRenderTarget() = 0; virtual void CheckResize(bool inForce, IPresentation &inActivePresentation) = 0; virtual QByteArray exportShaderCache(bool binaryShaders) = 0; 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 { diff --git a/src/runtimerender/Qt3DSRenderContextCore.h b/src/runtimerender/Qt3DSRenderContextCore.h index 64e91c0..c239d78 100644 --- a/src/runtimerender/Qt3DSRenderContextCore.h +++ b/src/runtimerender/Qt3DSRenderContextCore.h @@ -184,11 +184,6 @@ namespace render { virtual void SetWindowDimensions(const QSize &inWindowDimensions) = 0; virtual QSize GetWindowDimensions() = 0; - // In addition to the window dimensions which really have to be set, you can optionally - // set the viewport which will force the entire viewer to render specifically to this - // viewport. - virtual void SetViewport(Option<NVRenderRect> inViewport) = 0; - virtual Option<NVRenderRect> GetViewport() const = 0; virtual NVRenderRect GetContextViewport() const = 0; // Only valid between calls to Begin,End. virtual NVRenderRect GetPresentationViewport() const = 0; diff --git a/src/runtimerender/Qt3DSRenderSubpresentation.cpp b/src/runtimerender/Qt3DSRenderSubpresentation.cpp index 64f08be..8b13361 100644 --- a/src/runtimerender/Qt3DSRenderSubpresentation.cpp +++ b/src/runtimerender/Qt3DSRenderSubpresentation.cpp @@ -68,10 +68,7 @@ namespace render { QT3DSVec2 /*inPresScale*/, const SRenderInstanceId instanceId) { - NVRenderRect theViewportSize(m_RenderContext.GetRenderList().GetViewport()); - bool wasDirty = m_Presentation.m_Scene->PrepareForRender( - QT3DSVec2((QT3DSF32)theViewportSize.m_Width, (QT3DSF32)theViewportSize.m_Height), - m_RenderContext, instanceId); + bool wasDirty = m_Presentation.m_Scene->PrepareForRender(m_RenderContext, instanceId); // Always transparent return SOffscreenRenderFlags(true, wasDirty); } diff --git a/src/runtimerender/Qt3DSRenderer.h b/src/runtimerender/Qt3DSRenderer.h index 336baab..50c27c3 100644 --- a/src/runtimerender/Qt3DSRenderer.h +++ b/src/runtimerender/Qt3DSRenderer.h @@ -132,7 +132,7 @@ namespace render { virtual void RenderPointsIndirect() = 0; // Returns true if this layer or a sibling was dirty. - virtual bool PrepareLayerForRender(SLayer &inLayer, const QT3DSVec2 &inViewportDimensions, + virtual bool PrepareLayerForRender(SLayer &inLayer, bool inRenderSiblings = true, const SRenderInstanceId id = nullptr) = 0; virtual void RenderLayer(SLayer &inLayer, const QT3DSVec2 &inViewportDimensions, bool clear, diff --git a/src/runtimerender/graphobjects/Qt3DSRenderScene.cpp b/src/runtimerender/graphobjects/Qt3DSRenderScene.cpp index 2dadc26..afe68d5 100644 --- a/src/runtimerender/graphobjects/Qt3DSRenderScene.cpp +++ b/src/runtimerender/graphobjects/Qt3DSRenderScene.cpp @@ -65,7 +65,7 @@ SLayer *SScene::GetLastChild() return child; } -bool SScene::PrepareForRender(const QT3DSVec2 &inViewportDimensions, IQt3DSRenderContext &inContext, +bool SScene::PrepareForRender(IQt3DSRenderContext &inContext, const SRenderInstanceId id) { // We need to iterate through the layers in reverse order and ask them to render. @@ -74,7 +74,7 @@ bool SScene::PrepareForRender(const QT3DSVec2 &inViewportDimensions, IQt3DSRende if (m_FirstChild) { wasDirty |= - inContext.GetRenderer().PrepareLayerForRender(*m_FirstChild, inViewportDimensions, + inContext.GetRenderer().PrepareLayerForRender(*m_FirstChild, true, id); } return wasDirty; diff --git a/src/runtimerender/graphobjects/Qt3DSRenderScene.h b/src/runtimerender/graphobjects/Qt3DSRenderScene.h index 8c4d3fe..00a4591 100644 --- a/src/runtimerender/graphobjects/Qt3DSRenderScene.h +++ b/src/runtimerender/graphobjects/Qt3DSRenderScene.h @@ -69,7 +69,7 @@ namespace render { inRemapper.Remap(m_FirstChild); } // returns true if any of the layers were dirty or if this object was dirty - bool PrepareForRender(const QT3DSVec2 &inViewportDimensions, IQt3DSRenderContext &inContext, + bool PrepareForRender(IQt3DSRenderContext &inContext, const SRenderInstanceId id = nullptr); void Render(const QT3DSVec2 &inViewportDimensions, IQt3DSRenderContext &inContext, RenderClearCommand command = ClearIsOptional, diff --git a/src/runtimerender/rendererimpl/Qt3DSRendererImpl.cpp b/src/runtimerender/rendererimpl/Qt3DSRendererImpl.cpp index 300980c..a8b6a4f 100644 --- a/src/runtimerender/rendererimpl/Qt3DSRendererImpl.cpp +++ b/src/runtimerender/rendererimpl/Qt3DSRendererImpl.cpp @@ -233,11 +233,9 @@ namespace render { } bool Qt3DSRendererImpl::PrepareLayerForRender(SLayer &inLayer, - const QT3DSVec2 &inViewportDimensions, bool inRenderSiblings, const SRenderInstanceId id) { - (void)inViewportDimensions; nvvector<SLayer *> renderableLayers(m_qt3dsContext.GetPerFrameAllocator(), "LayerVector"); // Found by fair roll of the dice. renderableLayers.reserve(4); diff --git a/src/runtimerender/rendererimpl/Qt3DSRendererImpl.h b/src/runtimerender/rendererimpl/Qt3DSRendererImpl.h index 99b0b51..decd7fd 100644 --- a/src/runtimerender/rendererimpl/Qt3DSRendererImpl.h +++ b/src/runtimerender/rendererimpl/Qt3DSRendererImpl.h @@ -342,8 +342,8 @@ namespace render { // Calls prepare layer for render // and then do render layer. - bool PrepareLayerForRender(SLayer &inLayer, const QT3DSVec2 &inViewportDimensions, - bool inRenderSiblings, const SRenderInstanceId id) override; + bool PrepareLayerForRender(SLayer &inLayer, bool inRenderSiblings, + const SRenderInstanceId id) override; void RenderLayer(SLayer &inLayer, const QT3DSVec2 &inViewportDimensions, bool clear, QT3DSVec4 clearColor, bool inRenderSiblings, const SRenderInstanceId id) override; diff --git a/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp b/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp index 26b0a3c..54cb55f 100644 --- a/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp +++ b/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp @@ -1414,7 +1414,7 @@ namespace render { NVRenderRect theViewport(theGraph.GetViewport()); NVRenderRect theScissor(theGraph.GetViewport()); if (theGraph.IsScissorTestEnabled()) - theScissor = m_Renderer.GetContext().GetScissorRect(); + theScissor = theGraph.GetScissor(); bool wasDirty = false; bool wasDataDirty = false; wasDirty = m_Layer.m_Flags.IsDirty(); |