SDK/GraphicsComponent: Fix invalidation slot disconnection in case Detach has been called

Former-commit-id: 8962d36d0fa699c6f96e67802fddd0880aab3594 [formerly 3f3f176ef41832cbb474cb9bbd4c96619ad7af1d] [formerly 504be94e13a864f006eb3089970b7eb43abf2b4f [formerly f60ab676eb22a0e31aacbe668e4a9d41312d800e]]
Former-commit-id: 7b1f734f447e6797f4f87372c8319f904aa40e1a [formerly cb9ec84e912f0886bc94f4bdd26b25c757d1563c]
Former-commit-id: cece1ffceb6a37dc86b61cfa218c0ef9907050a2
This commit is contained in:
Lynix 2016-08-11 01:03:53 +02:00
parent f22633adb5
commit b3b0d9a270
2 changed files with 5 additions and 3 deletions

View File

@ -35,7 +35,7 @@ namespace Ndk
inline void Clear(); inline void Clear();
inline void Detach(const Nz::InstancedRenderableRef& renderable); inline void Detach(const Nz::InstancedRenderable* renderable);
inline void EnsureBoundingVolumeUpdate() const; inline void EnsureBoundingVolumeUpdate() const;
inline void EnsureTransformMatrixUpdate() const; inline void EnsureTransformMatrixUpdate() const;
@ -75,7 +75,8 @@ namespace Ndk
Renderable(Renderable&& renderable) noexcept : Renderable(Renderable&& renderable) noexcept :
data(std::move(renderable.data)), data(std::move(renderable.data)),
renderable(std::move(renderable.renderable)), renderable(std::move(renderable.renderable)),
dataUpdated(renderable.dataUpdated) dataUpdated(renderable.dataUpdated),
renderableInvalidationSlot(std::move(renderable.renderableInvalidationSlot)),
{ {
} }
@ -84,6 +85,7 @@ namespace Ndk
data = std::move(r.data); data = std::move(r.data);
dataUpdated = r.dataUpdated; dataUpdated = r.dataUpdated;
renderable = std::move(r.renderable); renderable = std::move(r.renderable);
renderableInvalidationSlot = std::move(r.renderableInvalidationSlot);
return *this; return *this;
} }

View File

@ -54,7 +54,7 @@ namespace Ndk
InvalidateBoundingVolume(); InvalidateBoundingVolume();
} }
inline void GraphicsComponent::Detach(const Nz::InstancedRenderableRef& renderable) inline void GraphicsComponent::Detach(const Nz::InstancedRenderable* renderable)
{ {
for (auto it = m_renderables.begin(); it != m_renderables.end(); ++it) for (auto it = m_renderables.begin(); it != m_renderables.end(); ++it)
{ {