summaryrefslogtreecommitdiffstats
path: root/src/runtimerender/Qt3DSRenderContextCore.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtimerender/Qt3DSRenderContextCore.cpp')
-rw-r--r--src/runtimerender/Qt3DSRenderContextCore.cpp36
1 files changed, 17 insertions, 19 deletions
diff --git a/src/runtimerender/Qt3DSRenderContextCore.cpp b/src/runtimerender/Qt3DSRenderContextCore.cpp
index dde70fd..44f10c0 100644
--- a/src/runtimerender/Qt3DSRenderContextCore.cpp
+++ b/src/runtimerender/Qt3DSRenderContextCore.cpp
@@ -241,14 +241,14 @@ 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;
StereoViews::Enum m_StereoView;
double m_StereoEyeSeparation;
bool m_StereoProgressiveEnabled;
+ int m_SkipFramesInterval;
bool m_WireframeMode;
bool m_subPresentationRenderInLayer;
Option<QT3DSVec4> m_SceneColor;
@@ -291,6 +291,7 @@ struct SRenderContext : public IQt3DSRenderContext
, m_StereoView(StereoViews::Mono)
, m_StereoEyeSeparation(0.4)
, m_StereoProgressiveEnabled(false)
+ , m_SkipFramesInterval(0)
, m_WireframeMode(false)
, m_subPresentationRenderInLayer(false)
, m_matteEnabled(false)
@@ -486,13 +487,19 @@ struct SRenderContext : public IQt3DSRenderContext
|| m_StereoMode == StereoModes::TopBottom);
}
+ void SetSkipFramesInterval(int interval) override
+ {
+ m_SkipFramesInterval = interval;
+ }
+
+ int GetSkipFramesInterval() const override {
+ return m_SkipFramesInterval;
+ }
+
void SetWireframeMode(bool inEnable) override { m_WireframeMode = inEnable; }
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();
@@ -545,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;
}
@@ -686,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();
@@ -771,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 {