summaryrefslogtreecommitdiffstats
path: root/src/runtimerender/rendererimpl/Qt3DSRenderableObjects.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtimerender/rendererimpl/Qt3DSRenderableObjects.h')
-rw-r--r--src/runtimerender/rendererimpl/Qt3DSRenderableObjects.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/runtimerender/rendererimpl/Qt3DSRenderableObjects.h b/src/runtimerender/rendererimpl/Qt3DSRenderableObjects.h
index abc8143..12533c4 100644
--- a/src/runtimerender/rendererimpl/Qt3DSRenderableObjects.h
+++ b/src/runtimerender/rendererimpl/Qt3DSRenderableObjects.h
@@ -63,6 +63,7 @@ namespace render {
ShadowCaster = 1 << 10,
DistanceField = 1 << 11,
HasAlphaTest = 1 << 12,
+ OrderedGroup = 1 << 13,
};
};
@@ -167,6 +168,14 @@ namespace render {
{
return *this & RenderPreparationResultFlagValues::HasAlphaTest;
}
+ bool isOrderedGroup() const
+ {
+ return *this & RenderPreparationResultFlagValues::OrderedGroup;
+ }
+ void setOrderedGroup(bool ordered)
+ {
+ ClearOrSet(ordered, RenderPreparationResultFlagValues::OrderedGroup);
+ }
};
struct SNodeLightEntry
@@ -480,6 +489,20 @@ namespace render {
void RenderShadowMapPass(const QT3DSVec2 &inCameraVec, const SLight *inLight,
const SCamera &inCamera, SShadowMapEntry *inShadowMapEntry);
};
+
+ struct SOrderedGroupRenderable : public SRenderableObject
+ {
+ SOrderedGroupRenderable(SRenderableObjectFlags inFlags, const QT3DSVec3 &inWorldCenterPt,
+ const QT3DSMat44 &inGlobalTransform, const NVBounds3 &inBounds,
+ NVAllocatorCallback &allocator)
+ : SRenderableObject(inFlags, inWorldCenterPt, inGlobalTransform, inBounds)
+ , m_renderables(allocator, "SOrderedGroupRenderable::m_renderables")
+ {
+ m_RenderableFlags.setOrderedGroup(true);
+ }
+ void update();
+ nvvector<SRenderableObject *> m_renderables;
+ };
}
}