summaryrefslogtreecommitdiffstats
path: root/src/Runtime/ogl-runtime/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderData.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Runtime/ogl-runtime/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderData.h')
m---------src/Runtime/ogl-runtime0
-rw-r--r--src/Runtime/ogl-runtime/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderData.h182
2 files changed, 0 insertions, 182 deletions
diff --git a/src/Runtime/ogl-runtime b/src/Runtime/ogl-runtime
new file mode 160000
+Subproject 427fddb50d43aa21a90fc7356ee3cdd8a908df5
diff --git a/src/Runtime/ogl-runtime/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderData.h b/src/Runtime/ogl-runtime/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderData.h
deleted file mode 100644
index 4e237b0b..00000000
--- a/src/Runtime/ogl-runtime/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderData.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2008-2012 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#pragma once
-#ifndef QT3DS_RENDERER_IMPL_LAYER_RENDER_DATA_H
-#define QT3DS_RENDERER_IMPL_LAYER_RENDER_DATA_H
-#include "Qt3DSRender.h"
-#include "Qt3DSRendererImplLayerRenderPreparationData.h"
-#include "Qt3DSRenderResourceBufferObjects.h"
-
-namespace qt3ds {
-namespace render {
-
-struct AdvancedBlendModes
-{
- enum Enum {
- None = 0,
- Overlay,
- ColorBurn,
- ColorDodge
- };
-};
- struct QT3DS_AUTOTEST_EXPORT SLayerRenderData : public SLayerRenderPreparationData
- {
-
- // 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_TemporalAATexture;
- // Sometimes we need to render our depth buffer to a depth texture.
- CResourceTexture2D m_LayerDepthTexture;
- CResourceTexture2D m_LayerPrepassDepthTexture;
- CResourceTexture2D m_LayerWidgetTexture;
- CResourceTexture2D m_LayerSsaoTexture;
- // if we render multisampled we need resolve buffers
- CResourceTexture2D m_LayerMultisampleTexture;
- CResourceTexture2D m_LayerMultisamplePrepassDepthTexture;
- CResourceTexture2D m_LayerMultisampleWidgetTexture;
- // the texture contains the render result inclusive post effects
- NVRenderTexture2D *m_LayerCachedTexture;
-
- NVRenderTexture2D *m_AdvancedBlendDrawTexture;
- NVRenderTexture2D *m_AdvancedBlendBlendTexture;
- qt3ds::render::NVRenderFrameBuffer *m_AdvancedModeDrawFB;
- qt3ds::render::NVRenderFrameBuffer *m_AdvancedModeBlendFB;
-
- // True if this layer was rendered offscreen.
- // If this object has no value then this layer wasn't rendered at all.
- SOffscreenRendererEnvironment m_LastOffscreenRenderEnvironment;
-
- // GPU profiler per layer
- NVScopedRefCounted<IRenderProfiler> m_LayerProfilerGpu;
-
- SCamera m_SceneCamera;
- QT3DSVec2 m_SceneDimensions;
-
- // ProgressiveAA algorithm details.
- QT3DSU32 m_ProgressiveAAPassIndex;
- // Increments every frame regardless to provide appropriate jittering
- QT3DSU32 m_TemporalAAPassIndex;
- // Ensures we don't stop on an in-between frame; we will run two frames after the dirty flag
- // is clear.
- QT3DSU32 m_NonDirtyTemporalAAPassIndex;
- QT3DSF32 m_TextScale;
-
- volatile QT3DSI32 mRefCount;
- Option<QT3DSVec3> m_BoundingRectColor;
- NVRenderTextureFormats::Enum m_DepthBufferFormat;
-
- QSize m_previousDimensions;
-
- SLayerRenderData(SLayer &inLayer, Qt3DSRendererImpl &inRenderer);
-
- virtual ~SLayerRenderData();
-
- void PrepareForRender();
-
- // Internal Call
- void PrepareForRender(const QSize &inViewportDimensions) override;
-
- NVRenderTextureFormats::Enum GetDepthBufferFormat();
- NVRenderFrameBufferAttachments::Enum
- GetFramebufferDepthAttachmentFormat(NVRenderTextureFormats::Enum depthFormat);
-
- // Render this layer assuming viewport and RT are setup. Just renders exactly this item
- // no effects.
- void RenderDepthPass(bool inEnableTransparentDepthWrite = false);
- void RenderAoPass();
- void RenderFakeDepthMapPass(NVRenderTexture2D *theDepthTex,
- NVRenderTextureCube *theDepthCube);
- void RenderShadowMapPass(CResourceFrameBuffer *theFB);
- void RenderShadowCubeBlurPass(CResourceFrameBuffer *theFB, NVRenderTextureCube *target0,
- NVRenderTextureCube *target1, QT3DSF32 filterSz, QT3DSF32 clipFar);
- void RenderShadowMapBlurPass(CResourceFrameBuffer *theFB, NVRenderTexture2D *target0,
- NVRenderTexture2D *target1, QT3DSF32 filterSz, QT3DSF32 clipFar);
-
- void Render(CResourceFrameBuffer *theFB = NULL);
- void ResetForFrame() override;
-
- void CreateGpuProfiler();
- void StartProfiling(CRegisteredString &nameID, bool sync);
- void EndProfiling(CRegisteredString &nameID);
- void StartProfiling(const char *nameID, bool sync);
- void EndProfiling(const char *nameID);
- void AddVertexCount(QT3DSU32 count);
-
- void RenderToViewport();
- // Render this layer's data to a texture. Required if we have any effects,
- // prog AA, or if forced.
- void RenderToTexture();
-
- void ApplyLayerPostEffects();
-
- void RunnableRenderToViewport(qt3ds::render::NVRenderFrameBuffer *theFB);
-
- void AddLayerRenderStep();
-
- void RenderRenderWidgets();
-
-#ifdef ADVANCED_BLEND_SW_FALLBACK
- void BlendAdvancedEquationSwFallback(NVRenderTexture2D *drawTexture,
- NVRenderTexture2D *m_LayerTexture,
- AdvancedBlendModes::Enum blendMode);
-#endif
- // test method to render this layer to a given view projection without running the entire
- // layer setup system. This assumes the client has setup the viewport, scissor, and render
- // target
- // the way they want them.
- void PrepareAndRender(const QT3DSMat44 &inViewProjection);
-
- SOffscreenRendererEnvironment CreateOffscreenRenderEnvironment() override;
- IRenderTask &CreateRenderToTextureRunnable() override;
-
- void addRef();
- void release();
-
- protected:
- // Used for both the normal passes and the depth pass.
- // When doing the depth pass, we disable blending completely because it does not really make
- // sense
- // to write blend equations into
- void RunRenderPass(TRenderRenderableFunction renderFn, bool inEnableBlending,
- bool inEnableDepthWrite, bool inEnableTransparentDepthWrite,
- QT3DSU32 indexLight, const SCamera &inCamera,
- CResourceFrameBuffer *theFB = NULL);
-#ifdef ADVANCED_BLEND_SW_FALLBACK
- //Functions for advanced blending mode fallback
- void SetupDrawFB(bool depthEnabled);
- void BlendAdvancedToFB(DefaultMaterialBlendMode::Enum blendMode, bool depthEnabled,
- CResourceFrameBuffer *theFB);
-#endif
- };
-}
-}
-#endif