Widgets: Add support for render layer (fixes rendering)

This commit is contained in:
Jérôme Leclercq
2021-12-01 18:58:48 +01:00
parent 653c9e0028
commit 8f897084d7
17 changed files with 135 additions and 16 deletions

View File

@@ -91,6 +91,7 @@ namespace Nz
{
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();
m_registry->emplace<GraphicsComponent>(backgroundEntity).AttachRenderable(m_backgroundSprite, GetCanvas()->GetRenderMask());
@@ -107,6 +108,11 @@ namespace Nz
DestroyEntity(*m_backgroundEntity);
m_backgroundSprite.reset();
}
OnRenderLayerUpdated(GetBaseRenderLayer());
for (const auto& widgetPtr : m_children)
widgetPtr->SetBaseRenderLayer(m_baseRenderLayer + m_renderLayerCount);
}
/*!
@@ -306,6 +312,10 @@ namespace Nz
{
}
void BaseWidget::OnRenderLayerUpdated(int /*firstRenderLayer*/)
{
}
void BaseWidget::OnParentResized(const Vector2f& /*newSize*/)
{
}