Components/GraphicsComponent: Watch every used material to handle reflective information

This commit is contained in:
Lynix
2017-03-28 23:36:08 +02:00
parent 5b236ab09a
commit 6851428c3c
5 changed files with 163 additions and 57 deletions

View File

@@ -38,6 +38,17 @@ namespace Ndk
InvalidateBoundingVolume();
}
/*!
* \brief Attaches a renderable to the entity
*
* \param renderable Reference to a renderable element
* \param renderOrder Render order of the element
*/
inline void GraphicsComponent::Attach(Nz::InstancedRenderableRef renderable, int renderOrder)
{
return Attach(std::move(renderable), Nz::Matrix4f::Identity(), renderOrder);
}
/*!
* \brief Clears every renderable elements
*/
@@ -62,6 +73,11 @@ namespace Ndk
if (it->renderable == renderable)
{
InvalidateBoundingVolume();
std::size_t materialCount = renderable->GetMaterialCount();
for (std::size_t i = 0; i < materialCount; ++i)
UnregisterMaterial(renderable->GetMaterial(i));
m_renderables.erase(it);
break;
}
@@ -172,4 +188,4 @@ namespace Ndk
InvalidateBoundingVolume();
InvalidateRenderables();
}
}
}