diff options
author | Antti Määttä <antti.maatta@qt.io> | 2019-12-17 18:22:59 +0200 |
---|---|---|
committer | Antti Määttä <antti.maatta@qt.io> | 2020-01-13 13:27:28 +0200 |
commit | 49fba62dfff3166e44a4b85f99180c27f2bba69e (patch) | |
tree | b7d1d2efb96115e30b44354f0f2e2eaa494aef60 /src/runtimerender/graphobjects | |
parent | 9f9c5497ac52b40ef336a0931cbac6068f6035e9 (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.cpp | 4 | ||||
-rw-r--r-- | src/runtimerender/graphobjects/Qt3DSRenderNode.h | 3 |
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); |