Graphics/InstancedRenderable: Add OnInstancedRenderableInvalidateMaterial signal
This commit is contained in:
parent
6b949afb9b
commit
e0db2e69f8
|
|
@ -66,6 +66,7 @@ namespace Nz
|
||||||
// Signals:
|
// Signals:
|
||||||
NazaraSignal(OnInstancedRenderableInvalidateBoundingVolume, const InstancedRenderable* /*instancedRenderable*/);
|
NazaraSignal(OnInstancedRenderableInvalidateBoundingVolume, const InstancedRenderable* /*instancedRenderable*/);
|
||||||
NazaraSignal(OnInstancedRenderableInvalidateData, const InstancedRenderable* /*instancedRenderable*/, UInt32 /*flags*/);
|
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*/);
|
NazaraSignal(OnInstancedRenderableRelease, const InstancedRenderable* /*instancedRenderable*/);
|
||||||
|
|
||||||
struct InstanceData
|
struct InstanceData
|
||||||
|
|
|
||||||
|
|
@ -230,7 +230,13 @@ namespace Nz
|
||||||
NazaraAssert(matIndex < m_materials.size(), "Material index out of bounds");
|
NazaraAssert(matIndex < m_materials.size(), "Material index out of bounds");
|
||||||
NazaraAssert(material.IsValid(), "Material must be valid");
|
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