diff options
Diffstat (limited to 'src/runtimerender/rendererimpl/Qt3DSRenderableObjects.h')
-rw-r--r-- | src/runtimerender/rendererimpl/Qt3DSRenderableObjects.h | 23 |
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; + }; } } |