diff options
Diffstat (limited to 'src/Runtime/ogl-runtime/src/engine/Qt3DSRenderRuntimeBindingImplRenderer.cpp')
m--------- | src/Runtime/ogl-runtime | 0 | ||||
-rw-r--r-- | src/Runtime/ogl-runtime/src/engine/Qt3DSRenderRuntimeBindingImplRenderer.cpp | 224 |
2 files changed, 0 insertions, 224 deletions
diff --git a/src/Runtime/ogl-runtime b/src/Runtime/ogl-runtime new file mode 160000 +Subproject 2025912174c4cf99270b7439ec3b021e1d089ae diff --git a/src/Runtime/ogl-runtime/src/engine/Qt3DSRenderRuntimeBindingImplRenderer.cpp b/src/Runtime/ogl-runtime/src/engine/Qt3DSRenderRuntimeBindingImplRenderer.cpp deleted file mode 100644 index b41c83b9..00000000 --- a/src/Runtime/ogl-runtime/src/engine/Qt3DSRenderRuntimeBindingImplRenderer.cpp +++ /dev/null @@ -1,224 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 1993-2009 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 "EnginePrefix.h" -#include "Qt3DSRenderRuntimeBindingImpl.h" -#include "Qt3DSRuntimeView.h" -#include "Qt3DSWindowSystem.h" -#include "Qt3DSRenderLoadedTexture.h" - -struct SRenderer; -struct SRendererRSM : public Q3DStudio::ITegraRenderStateManager -{ - SRenderer &m_Renderer; - -public: - SRendererRSM(SRenderer &renderer) - : m_Renderer(renderer) - { - } - - void SetViewport(Q3DStudio::INT32 inX, Q3DStudio::INT32 inY, Q3DStudio::INT32 inWidth, - Q3DStudio::INT32 inHeight) override; - void PushState() override; - void PopState() override; - void SetScissorTestEnabled(bool inValue) override; - void SaveAllState() override; - void RestoreAllState() override; -}; - -struct SRenderer : public Q3DStudio::ITegraApplicationRenderEngine -{ - NVScopedRefCounted<SBindingCore> m_BindingCore; - NVScopedRefCounted<IQt3DSRenderContext> m_Context; - NVRenderRect m_Viewport; - nvvector<NVRenderRect> m_StateStack; - QSize m_PresentationDimensions; - SRendererRSM m_RSM; - Q3DStudio::IWindowSystem &m_WindowSystem; - - SRenderer(SBindingCore &inCore, Q3DStudio::IWindowSystem &inWindowSystem) - : m_BindingCore(inCore) - , m_Context(*inCore.m_Context) - , m_StateStack(inCore.m_Context->GetAllocator(), "SRenderer::m_StateStack") - , m_RSM(*this) - , m_WindowSystem(inWindowSystem) - { - m_Context->SetSceneColor(QT3DSVec4(0, 0, 0, 0.0f)); - if (m_BindingCore->m_RenderContext) { - m_BindingCore->m_RenderContext->SetDefaultRenderTarget( - m_WindowSystem.GetDefaultRenderTargetID()); - m_BindingCore->m_RenderContext->SetDefaultDepthBufferBitCount( - m_WindowSystem.GetDepthBitCount()); - } - } - - void ensureRenderTarget() override - { - m_BindingCore->m_RenderContext->SetDefaultRenderTarget( - m_WindowSystem.GetDefaultRenderTargetID()); - } - - void CheckResize(bool, Q3DStudio::IPresentation & /*inPresentation*/) override - { - QSize theWindowDims(m_WindowSystem.GetWindowDimensions()); - m_BindingCore->m_WindowDimensions = theWindowDims; - m_BindingCore->m_Context->SetWindowDimensions(m_BindingCore->m_WindowDimensions); - } - Q3DStudio::BOOL LoadShaderCache(const char * /*inFilePath*/) override { return true; } - - void AbandonLoadingImages(Q3DStudio::IScene & /*inScene*/) override {} - - Q3DStudio::BOOL IsPickValid(Q3DStudio::FLOAT &outX, Q3DStudio::FLOAT &outY, - const Q3DStudio::IPresentation & /*inPresentation*/) const override - { - Q3DStudio::FLOAT theX = outX; - Q3DStudio::FLOAT theY = outY; - theX = theX / static_cast<Q3DStudio::FLOAT>(m_BindingCore->m_WindowDimensions.width()); - theY = theY / static_cast<Q3DStudio::FLOAT>(m_BindingCore->m_WindowDimensions.height()); - Q3DStudio::BOOL theValid = false; - - if ((theX >= 0.0f) && (theY >= 0.0f) && (theX <= 1.0f) && (theY <= 1.0f)) - theValid = true; - return theValid; - } - - void SetScaleMode(Q3DStudio::TegraRenderScaleModes::Enum inScale) override - { - if (m_BindingCore && m_BindingCore->m_Context) - m_BindingCore->m_Context->SetScaleMode(static_cast<ScaleModes::Enum>(inScale)); - } - Q3DStudio::TegraRenderScaleModes::Enum GetScaleMode() const override - { - if (m_BindingCore && m_BindingCore->m_Context) - return static_cast<Q3DStudio::TegraRenderScaleModes::Enum>( - const_cast<SRenderer &>(*this).m_BindingCore->m_Context->GetScaleMode()); - - QT3DS_ASSERT(false); - return Q3DStudio::TegraRenderScaleModes::ExactSize; - } - - void SetShadeMode(Q3DStudio::TegraRenderShadeModes::Enum inShade) override - { - if (m_BindingCore && m_BindingCore->m_Context) { - m_BindingCore->m_Context->SetWireframeMode( - (inShade == Q3DStudio::TegraRenderShadeModes::Shaded) ? false : true); - } - } - - void EnableRenderRotation(bool inEnable) override - { - m_BindingCore->m_RenderRotationsEnabled = inEnable; - } - - void SetWriteOutShaderCache(bool inWriteOutShaderCache) override - { - m_BindingCore->m_WriteOutShaderCache = inWriteOutShaderCache; - } - - Q3DStudio::ITegraRenderStateManager &GetTegraRenderStateManager() override { return m_RSM; } - qt3ds::render::NVRenderContext &GetRenderContext() override - { - return *m_BindingCore->m_RenderContext; - } - - void Release() override - { - // Ensure the core doesn't die until after we do. - NVScopedRefCounted<SBindingCore> theContext(m_BindingCore); - NVDelete(m_Context->GetAllocator(), this); - } - - void SetViewport(Q3DStudio::INT32 inX, Q3DStudio::INT32 inY, Q3DStudio::INT32 inWidth, - Q3DStudio::INT32 inHeight) override - { - m_Viewport = NVRenderRect(inX, inY, inWidth, inHeight); - m_BindingCore->m_RenderContext->SetViewport(m_Viewport); - } - void SetApplicationViewport(const qt3ds::render::NVRenderRect &inViewport) override - { - m_BindingCore->m_Context->SetViewport(inViewport); - } - - void SetMatteColor(Option<QT3DSVec4> inColor) override { m_Context->SetMatteColor(inColor); } - virtual void PushState() { m_StateStack.push_back(m_Viewport); } - virtual void PopState() - { - m_Viewport = m_StateStack.back(); - m_StateStack.pop_back(); - SetViewport(m_Viewport.m_X, m_Viewport.m_Y, m_Viewport.m_Width, m_Viewport.m_Height); - } - - void RenderText2D(Q3DStudio::FLOAT x, Q3DStudio::FLOAT y, - qt3ds::foundation::Option<qt3ds::QT3DSVec3> inColor, const char *text) override - { - m_Context->RenderText2D(x, y, inColor, text); - } - - void RenderGpuProfilerStats(Q3DStudio::FLOAT x, Q3DStudio::FLOAT y, - qt3ds::foundation::Option<qt3ds::QT3DSVec3> inColor) override - { - m_Context->RenderGpuProfilerStats(x, y, inColor); - } -}; - -void SRendererRSM::SetViewport(Q3DStudio::INT32 inX, Q3DStudio::INT32 inY, Q3DStudio::INT32 inWidth, - Q3DStudio::INT32 inHeight) -{ - m_Renderer.SetViewport(inX, inY, inWidth, inHeight); -} -void SRendererRSM::PushState() -{ - m_Renderer.PushState(); -} -void SRendererRSM::PopState() -{ - m_Renderer.PopState(); -} -void SRendererRSM::SetScissorTestEnabled(bool inValue) -{ - m_Renderer.m_BindingCore->m_RenderContext->SetScissorTestEnabled(inValue); -} -void SRendererRSM::SaveAllState() -{ - m_Renderer.m_BindingCore->m_RenderContext->PushPropertySet(); -} -void SRendererRSM::RestoreAllState() -{ - m_Renderer.m_BindingCore->m_RenderContext->PopPropertySet(true); -} - -Q3DStudio::ITegraApplicationRenderEngine &SBindingCore::CreateRenderer() -{ - SRenderer *retval = NULL; - if (m_Context) - retval = QT3DS_NEW(m_Context->GetAllocator(), SRenderer)(*this, this->m_WindowSystem); - - return *retval; -} |