summaryrefslogtreecommitdiffstats
path: root/src/runtimerender/graphobjects
diff options
context:
space:
mode:
authorAntti Määttä <antti.maatta@qt.io>2019-12-17 18:22:59 +0200
committerAntti Määttä <antti.maatta@qt.io>2020-01-13 13:27:28 +0200
commit49fba62dfff3166e44a4b85f99180c27f2bba69e (patch)
treeb7d1d2efb96115e30b44354f0f2e2eaa494aef60 /src/runtimerender/graphobjects
parent9f9c5497ac52b40ef336a0931cbac6068f6035e9 (diff)
Implement ordered group
Add ordered property to group, which disables automatic depth sorting for that group and all it's children. The group as a whole gets sorted with other objects as if it was one object. Task-number: QT3DS-3820 Change-Id: Iea71917fc78f4c543aa944d851c77b6794bd7d80 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Diffstat (limited to 'src/runtimerender/graphobjects')
-rw-r--r--src/runtimerender/graphobjects/Qt3DSRenderNode.cpp4
-rw-r--r--src/runtimerender/graphobjects/Qt3DSRenderNode.h3
2 files changed, 7 insertions, 0 deletions
diff --git a/src/runtimerender/graphobjects/Qt3DSRenderNode.cpp b/src/runtimerender/graphobjects/Qt3DSRenderNode.cpp
index bf47bb8..9d42aa5 100644
--- a/src/runtimerender/graphobjects/Qt3DSRenderNode.cpp
+++ b/src/runtimerender/graphobjects/Qt3DSRenderNode.cpp
@@ -47,11 +47,13 @@ SNode::SNode(GraphObjectTypes::Enum inGraphObjectType)
, m_LocalOpacity(1.0f)
, m_GlobalOpacity(1.0f)
, m_SkeletonId(-1)
+ , m_ordered(false)
, m_Parent(NULL)
, m_NextSibling(NULL)
, m_PreviousSibling(NULL)
, m_FirstChild(NULL)
, m_DFSIndex(0)
+ , m_GroupIndex(0)
{
m_Flags.SetDirty(true);
m_Flags.SetTransformDirty(true);
@@ -72,11 +74,13 @@ SNode::SNode(const SNode &inCloningObject, NVAllocatorCallback &inAllocator)
, m_GlobalTransform(inCloningObject.m_GlobalTransform)
, m_GlobalOpacity(inCloningObject.m_GlobalOpacity)
, m_SkeletonId(inCloningObject.m_SkeletonId)
+ , m_ordered(inCloningObject.m_ordered)
, m_Parent(NULL)
, m_NextSibling(NULL)
, m_PreviousSibling(NULL)
, m_FirstChild(NULL)
, m_DFSIndex(0)
+ , m_GroupIndex(0)
{
m_Flags.SetDirty(true);
m_Flags.SetTransformDirty(true);
diff --git a/src/runtimerender/graphobjects/Qt3DSRenderNode.h b/src/runtimerender/graphobjects/Qt3DSRenderNode.h
index 87a1500..751ed27 100644
--- a/src/runtimerender/graphobjects/Qt3DSRenderNode.h
+++ b/src/runtimerender/graphobjects/Qt3DSRenderNode.h
@@ -201,6 +201,7 @@ namespace render {
QT3DSMat44 m_GlobalTransform;
QT3DSF32 m_GlobalOpacity;
QT3DSI32 m_SkeletonId;
+ bool m_ordered;
// node graph members.
SNode *m_Parent;
@@ -210,6 +211,8 @@ namespace render {
// Property maintained solely by the render system.
// Depth-first-search index assigned and maintained by render system.
QT3DSU32 m_DFSIndex;
+ // Index to the group of the node
+ QT3DSU32 m_GroupIndex;
SNode(GraphObjectTypes::Enum inType = GraphObjectTypes::Node);
SNode(const SNode &inCloningObject, NVAllocatorCallback &inAllocator);