Graphics/InstancedRenderable: Add OnInstancedRenderableInvalidateMaterial signal
This commit is contained in:
parent
6b949afb9b
commit
e0db2e69f8
|
|
@ -66,6 +66,7 @@ namespace Nz
|
|||
// Signals:
|
||||
NazaraSignal(OnInstancedRenderableInvalidateBoundingVolume, const InstancedRenderable* /*instancedRenderable*/);
|
||||
NazaraSignal(OnInstancedRenderableInvalidateData, const InstancedRenderable* /*instancedRenderable*/, UInt32 /*flags*/);
|
||||
NazaraSignal(OnInstancedRenderableInvalidateMaterial, const InstancedRenderable* /*instancedRenderable*/, std::size_t /*skinIndex*/, std::size_t /*matIndex*/, MaterialRef /*newMat*/);
|
||||
NazaraSignal(OnInstancedRenderableRelease, const InstancedRenderable* /*instancedRenderable*/);
|
||||
|
||||
struct InstanceData
|
||||
|
|
|
|||
|
|
@ -230,7 +230,13 @@ namespace Nz
|
|||
NazaraAssert(matIndex < m_materials.size(), "Material index out of bounds");
|
||||
NazaraAssert(material.IsValid(), "Material must be valid");
|
||||
|
||||
m_materials[m_matCount * skinIndex + matIndex] = std::move(material);
|
||||
MaterialRef& matEntry = m_materials[m_matCount * skinIndex + matIndex];
|
||||
if (matEntry != material)
|
||||
{
|
||||
OnInstancedRenderableInvalidateMaterial(this, skinIndex, matIndex, material);
|
||||
|
||||
matEntry = std::move(material);
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
|
|
|
|||
Loading…
Reference in New Issue