diff options
Diffstat (limited to 'src/Runtime/ogl-runtime/src/runtimerender/graphobjects/Qt3DSRenderScene.cpp')
m--------- | src/Runtime/ogl-runtime | 0 | ||||
-rw-r--r-- | src/Runtime/ogl-runtime/src/runtimerender/graphobjects/Qt3DSRenderScene.cpp | 122 |
2 files changed, 0 insertions, 122 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/graphobjects/Qt3DSRenderScene.cpp b/src/Runtime/ogl-runtime/src/runtimerender/graphobjects/Qt3DSRenderScene.cpp deleted file mode 100644 index 7917bd7a..00000000 --- a/src/Runtime/ogl-runtime/src/runtimerender/graphobjects/Qt3DSRenderScene.cpp +++ /dev/null @@ -1,122 +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$ -** -****************************************************************************/ -#include "Qt3DSRender.h" -#include "Qt3DSRenderScene.h" -#include "Qt3DSRenderLayer.h" -#include "Qt3DSRenderContextCore.h" -#include "render/Qt3DSRenderContext.h" - -using namespace qt3ds::render; - -SScene::SScene() - : SGraphObject(GraphObjectTypes::Scene) - , m_Presentation(NULL) - , m_FirstChild(NULL) - , m_ClearColor(0.0f) - , m_UseClearColor(true) - , m_Dirty(true) -{ -} - -void SScene::AddChild(SLayer &inLayer) -{ - if (m_FirstChild == NULL) - m_FirstChild = &inLayer; - else - GetLastChild()->m_NextSibling = &inLayer; - inLayer.m_Scene = this; -} - -SLayer *SScene::GetLastChild() -{ - // empty loop intentional - SLayer *child; - for (child = m_FirstChild; child && child->m_NextSibling; - child = (SLayer *)child->m_NextSibling) { - } - - return child; -} - -bool SScene::PrepareForRender(const QT3DSVec2 &inViewportDimensions, IQt3DSRenderContext &inContext, - const SRenderInstanceId id) -{ - // We need to iterate through the layers in reverse order and ask them to render. - bool wasDirty = m_Dirty; - m_Dirty = false; - if (m_FirstChild) { - wasDirty |= - inContext.GetRenderer().PrepareLayerForRender(*m_FirstChild, inViewportDimensions, - true, id); - } - return wasDirty; -} - -void SScene::Render(const QT3DSVec2 &inViewportDimensions, IQt3DSRenderContext &inContext, - RenderClearCommand inClearColorBuffer, const SRenderInstanceId id) -{ - if ((inClearColorBuffer == SScene::ClearIsOptional && m_UseClearColor) - || inClearColorBuffer == SScene::AlwaysClear) { - QT3DSF32 clearColorAlpha - = inContext.IsInSubPresentation() && !m_UseClearColor ? 0.0f : 1.0f; - QT3DSVec4 clearColor(0.0f, 0.0f, 0.0f, clearColorAlpha); - if (m_UseClearColor) { - clearColor.x = m_ClearColor.x; - clearColor.y = m_ClearColor.y; - clearColor.z = m_ClearColor.z; - clearColor.w = m_ClearColor.w; - } - // Maybe clear and reset to previous clear color after we leave. - qt3ds::render::NVRenderContextScopedProperty<QT3DSVec4> __clearColor( - inContext.GetRenderContext(), &NVRenderContext::GetClearColor, - &NVRenderContext::SetClearColor, clearColor); - inContext.GetRenderContext().Clear(qt3ds::render::NVRenderClearValues::Color); - } - if (m_FirstChild) { - inContext.GetRenderer().RenderLayer(*m_FirstChild, inViewportDimensions, m_UseClearColor, - m_ClearColor, true, id); - } -} -void SScene::RenderWithClear(const QT3DSVec2 &inViewportDimensions, - IQt3DSRenderContext &inContext, - RenderClearCommand inClearColorBuffer, - QT3DSVec4 inClearColor, - const SRenderInstanceId id) -{ - // If this scene is not using clear color, we set the color - // to background color from parent layer. This allows - // fully transparent subpresentations (both scene and layer(s) transparent) - // to inherit color from the layer that contains them. - if (!m_UseClearColor) { - m_ClearColor = inClearColor; - m_UseClearColor = true; - } - Render(inViewportDimensions, inContext, inClearColorBuffer, id); -} |