diff options
Diffstat (limited to 'src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderData.h')
-rw-r--r-- | src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderData.h | 20 |
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); }; |