summaryrefslogtreecommitdiffstats
path: root/src/Runtime/ogl-runtime/src/runtimerender/Qt3DSRenderWidgets.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Runtime/ogl-runtime/src/runtimerender/Qt3DSRenderWidgets.h')
m---------src/Runtime/ogl-runtime0
-rw-r--r--src/Runtime/ogl-runtime/src/runtimerender/Qt3DSRenderWidgets.h181
2 files changed, 0 insertions, 181 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/runtimerender/Qt3DSRenderWidgets.h b/src/Runtime/ogl-runtime/src/runtimerender/Qt3DSRenderWidgets.h
deleted file mode 100644
index 28cb3322..00000000
--- a/src/Runtime/ogl-runtime/src/runtimerender/Qt3DSRenderWidgets.h
+++ /dev/null
@@ -1,181 +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_RENDER_WIDGETS_H
-#define QT3DS_RENDER_WIDGETS_H
-#include "Qt3DSRender.h"
-#include "foundation/Qt3DSOption.h"
-#include "foundation/Qt3DSMat44.h"
-#include "foundation/Qt3DSMat33.h"
-#include "foundation/Qt3DSBounds3.h"
-#include "foundation/Qt3DSVec3.h"
-#include "EASTL/utility.h"
-#include "foundation/Qt3DSDataRef.h"
-#include "render/Qt3DSRenderVertexBuffer.h"
-#include "render/Qt3DSRenderIndexBuffer.h"
-#include "Qt3DSRenderText.h"
-
-namespace qt3ds {
-namespace render {
-
- struct SWidgetRenderInformation
- {
- // Just the rotation component of the nodeparenttocamera.
- QT3DSMat33 m_NormalMatrix;
- // The node parent's global transform multiplied by the inverse camera global transfrom;
- // basically the MV from model-view-projection
- QT3DSMat44 m_NodeParentToCamera;
- // Projection that accounts for layer scaling
- QT3DSMat44 m_LayerProjection;
- // Pure camera projection without layer scaling
- QT3DSMat44 m_PureProjection;
- // A look at matrix that will rotate objects facing directly up
- // the Z axis such that the point to the camera.
- QT3DSMat33 m_LookAtMatrix;
- // Conversion from world to camera position so world points not in object
- // local space can be converted to camera space without going through the node's
- // inverse global transform
- QT3DSMat44 m_CameraGlobalInverse;
- // Offset to add to the node's world position in camera space to move to the ideal camera
- // location so that scale will work. This offset should be added *after* translation into
- // camera space
- QT3DSVec3 m_WorldPosOffset;
- // Position in camera space to center the widget around
- QT3DSVec3 m_Position;
- // Scale factor to scale the widget by.
- QT3DSF32 m_Scale;
-
- // The camera used to render this object.
- SCamera *m_Camera;
- SWidgetRenderInformation(const QT3DSMat33 &inNormal, const QT3DSMat44 &inNodeParentToCamera,
- const QT3DSMat44 &inLayerProjection, const QT3DSMat44 &inProjection,
- const QT3DSMat33 &inLookAt, const QT3DSMat44 &inCameraGlobalInverse,
- const QT3DSVec3 &inWorldPosOffset, const QT3DSVec3 &inPos, QT3DSF32 inScale,
- SCamera &inCamera)
- : m_NormalMatrix(inNormal)
- , m_NodeParentToCamera(inNodeParentToCamera)
- , m_LayerProjection(inLayerProjection)
- , m_PureProjection(inProjection)
- , m_LookAtMatrix(inLookAt)
- , m_CameraGlobalInverse(inCameraGlobalInverse)
- , m_WorldPosOffset(inWorldPosOffset)
- , m_Position(inPos)
- , m_Scale(inScale)
- , m_Camera(&inCamera)
- {
- }
- SWidgetRenderInformation()
- : m_Camera(NULL)
- {
- }
- };
- typedef eastl::pair<SShaderVertexCodeGenerator &, SShaderFragmentCodeGenerator &>
- TShaderGeneratorPair;
-
- struct RenderWidgetModes
- {
- enum Enum {
- Local,
- Global,
- };
- };
- // Context used to get render data for the widget.
- class IRenderWidgetContext
- {
- protected:
- virtual ~IRenderWidgetContext() {}
- public:
- virtual NVRenderVertexBuffer &
- GetOrCreateVertexBuffer(CRegisteredString &inStr, QT3DSU32 stride,
- NVConstDataRef<QT3DSU8> bufferData = NVConstDataRef<QT3DSU8>()) = 0;
- virtual NVRenderIndexBuffer &
- GetOrCreateIndexBuffer(CRegisteredString &inStr,
- qt3ds::render::NVRenderComponentTypes::Enum componentType, size_t size,
- NVConstDataRef<QT3DSU8> bufferData = NVConstDataRef<QT3DSU8>()) = 0;
- virtual NVRenderAttribLayout &
- CreateAttributeLayout(NVConstDataRef<qt3ds::render::NVRenderVertexBufferEntry> attribs) = 0;
- virtual NVRenderInputAssembler &
- GetOrCreateInputAssembler(CRegisteredString &inStr, NVRenderAttribLayout *attribLayout,
- NVConstDataRef<NVRenderVertexBuffer *> buffers,
- const NVRenderIndexBuffer *indexBuffer,
- NVConstDataRef<QT3DSU32> strides, NVConstDataRef<QT3DSU32> offsets) = 0;
-
- virtual NVRenderVertexBuffer *GetVertexBuffer(CRegisteredString &inStr) = 0;
- virtual NVRenderIndexBuffer *GetIndexBuffer(CRegisteredString &inStr) = 0;
- virtual NVRenderInputAssembler *GetInputAssembler(CRegisteredString &inStr) = 0;
-
- virtual NVRenderShaderProgram *GetShader(CRegisteredString inStr) = 0;
- virtual IShaderProgramGenerator &GetProgramGenerator() = 0;
- // calls compile on the program generator and stores result under this name.
- virtual NVRenderShaderProgram *CompileAndStoreShader(CRegisteredString inStr) = 0;
- virtual STextDimensions MeasureText(const STextRenderInfo &inText) = 0;
- // Render text using a specific MVP
- virtual void RenderText(const STextRenderInfo &inText, const QT3DSVec3 &inTextColor,
- const QT3DSVec3 &inBackgroundColor, const QT3DSMat44 &inMVP) = 0;
- // Given a node and a point in the node's local space (most likely its pivot point), we
- // return
- // a normal matrix so you can get the axis out, a transformation from node to camera
- // a new position and a floating point scale factor so you can render in 1/2 perspective
- // mode
- // or orthographic mode if you would like to.
- virtual SWidgetRenderInformation
- GetWidgetRenderInformation(SNode &inNode, const QT3DSVec3 &inPos,
- RenderWidgetModes::Enum inWidgetMode) = 0;
- };
-
- class IRenderWidget
- {
- protected:
- virtual ~IRenderWidget() {}
- SNode *m_Node;
-
- public:
- IRenderWidget(SNode &inNode)
- : m_Node(&inNode)
- {
- }
- IRenderWidget()
- : m_Node(NULL)
- {
- }
- virtual void Render(IRenderWidgetContext &inWidgetContext,
- NVRenderContext &inRenderContext) = 0;
- SNode &GetNode() { return *m_Node; }
-
- // Pure widgets.
- static IRenderWidget &CreateBoundingBoxWidget(SNode &inNode, const NVBounds3 &inBounds,
- const QT3DSVec3 &inColor,
- NVAllocatorCallback &inAlloc);
- static IRenderWidget &CreateAxisWidget(SNode &inNode, NVAllocatorCallback &inAlloc);
- };
-}
-}
-
-#endif