summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/engine/Qt3DSRenderRuntimeBinding.cpp5
-rw-r--r--src/engine/Qt3DSRenderRuntimeBindingImplRenderer.cpp4
-rw-r--r--src/engine/Qt3DSRuntimeView.h1
-rw-r--r--src/runtimerender/Qt3DSRenderContextCore.cpp25
-rw-r--r--src/runtimerender/Qt3DSRenderContextCore.h5
-rw-r--r--src/runtimerender/Qt3DSRenderSubpresentation.cpp5
-rw-r--r--src/runtimerender/Qt3DSRenderer.h2
-rw-r--r--src/runtimerender/graphobjects/Qt3DSRenderScene.cpp4
-rw-r--r--src/runtimerender/graphobjects/Qt3DSRenderScene.h2
-rw-r--r--src/runtimerender/rendererimpl/Qt3DSRendererImpl.cpp2
-rw-r--r--src/runtimerender/rendererimpl/Qt3DSRendererImpl.h4
-rw-r--r--src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp2
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();