Widgets/BaseWidget: Fix background entity not being released
This commit is contained in:
parent
5e4c175395
commit
42ea4ebbfb
|
|
@ -88,9 +88,12 @@ namespace Nz
|
||||||
|
|
||||||
if (enable)
|
if (enable)
|
||||||
{
|
{
|
||||||
m_backgroundSprite = std::make_shared<Sprite>((m_backgroundColor.IsOpaque()) ? Widgets::Instance()->GetOpaqueMaterial() : Widgets::Instance()->GetTransparentMaterial());
|
if (!m_backgroundSprite)
|
||||||
m_backgroundSprite->SetColor(m_backgroundColor);
|
{
|
||||||
m_backgroundSprite->UpdateRenderLayer(m_baseRenderLayer);
|
m_backgroundSprite = std::make_shared<Sprite>((m_backgroundColor.IsOpaque()) ? Widgets::Instance()->GetOpaqueMaterial() : Widgets::Instance()->GetTransparentMaterial());
|
||||||
|
m_backgroundSprite->SetColor(m_backgroundColor);
|
||||||
|
m_backgroundSprite->UpdateRenderLayer(m_baseRenderLayer);
|
||||||
|
}
|
||||||
|
|
||||||
entt::entity backgroundEntity = CreateEntity();
|
entt::entity backgroundEntity = CreateEntity();
|
||||||
m_registry->emplace<GraphicsComponent>(backgroundEntity).AttachRenderable(m_backgroundSprite, GetCanvas()->GetRenderMask());
|
m_registry->emplace<GraphicsComponent>(backgroundEntity).AttachRenderable(m_backgroundSprite, GetCanvas()->GetRenderMask());
|
||||||
|
|
@ -105,7 +108,7 @@ namespace Nz
|
||||||
assert(m_backgroundEntity);
|
assert(m_backgroundEntity);
|
||||||
|
|
||||||
DestroyEntity(*m_backgroundEntity);
|
DestroyEntity(*m_backgroundEntity);
|
||||||
m_backgroundSprite.reset();
|
m_backgroundEntity.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
OnRenderLayerUpdated(GetBaseRenderLayer());
|
OnRenderLayerUpdated(GetBaseRenderLayer());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue