summaryrefslogtreecommitdiffstats
path: root/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderData.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderData.h')
-rw-r--r--src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderData.h20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderData.h b/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderData.h
index 0f0a838..623e8b2 100644
--- a/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderData.h
+++ b/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderData.h
@@ -33,6 +33,7 @@
#include "Qt3DSRender.h"
#include "Qt3DSRendererImplLayerRenderPreparationData.h"
#include "Qt3DSRenderResourceBufferObjects.h"
+#include "Qt3DSRuntimeView.h"
namespace qt3ds {
namespace render {
@@ -52,7 +53,7 @@ struct AdvancedBlendModes
// Layers can be rendered offscreen for many reasons; effects, progressive aa,
// or just because a flag forces it. If they are rendered offscreen we can then
// cache the result so we don't render the layer again if it isn't dirty.
- CResourceTexture2D m_LayerTexture;
+ CResourceTexture2D m_LayerTexture[2];
// Multiple temporal AA textures for stereoscopic needs.
// First used for mono/left view, second for right view.
CResourceTexture2D m_TemporalAATexture[2];
@@ -66,7 +67,7 @@ struct AdvancedBlendModes
CResourceTexture2D m_LayerMultisamplePrepassDepthTexture;
CResourceTexture2D m_LayerMultisampleWidgetTexture;
// the texture contains the render result inclusive post effects
- NVRenderTexture2D *m_LayerCachedTexture;
+ NVRenderTexture2D *m_LayerCachedTexture[2];
NVRenderTexture2D *m_AdvancedBlendDrawTexture;
NVRenderTexture2D *m_AdvancedBlendBlendTexture;
@@ -97,15 +98,19 @@ struct AdvancedBlendModes
NVRenderTextureFormats::Enum m_DepthBufferFormat;
QSize m_previousDimensions;
+ QRuntimeViewSignalProxy *m_SignalProxy;
+ SLayerRenderPreparationResultFlags m_LeftFlags;
+
+ int getCameraIndex() const;
SLayerRenderData(SLayer &inLayer, Qt3DSRendererImpl &inRenderer);
virtual ~SLayerRenderData();
- void PrepareForRender();
+ bool PrepareForRender();
// Internal Call
- void PrepareForRender(const QSize &inViewportDimensions) override;
+ bool PrepareForRender(const QSize &inViewportDimensions) override;
NVRenderTextureFormats::Enum GetDepthBufferFormat();
NVRenderFrameBufferAttachments::Enum
@@ -125,6 +130,10 @@ struct AdvancedBlendModes
void Render(CResourceFrameBuffer *theFB = NULL);
void ResetForFrame() override;
+ void renderOrderedGroup(SRenderableObject &theObject, TRenderRenderableFunction inRenderFn,
+ bool inEnableBlending, bool inEnableDepthWrite,
+ bool inEnableTransparentDepthWrite, QT3DSU32 indexLight,
+ const SCamera &inCamera, CResourceFrameBuffer *theFB);
void CreateGpuProfiler();
void StartProfiling(CRegisteredString &nameID, bool sync);
@@ -179,7 +188,8 @@ struct AdvancedBlendModes
CResourceFrameBuffer *theFB);
#endif
void renderTransparentObjectsPass(TRenderRenderableFunction inRenderFn,
- bool inEnableBlending, bool inEnableTransparentDepthWrite,
+ bool inEnableBlending, bool inEnableDepthWrite,
+ bool inEnableTransparentDepthWrite,
QT3DSU32 indexLight, const SCamera &inCamera,
CResourceFrameBuffer *theFB);
};