add: bring textures to draw layer

Adding the Scene::BringToDrawLayer() to fix layering issues after a Scene::ResetScene() call
This commit is contained in:
Namonay
2024-10-27 23:12:07 +01:00
parent fed7111362
commit 8c287e4cbc
3 changed files with 17 additions and 5 deletions

View File

@@ -45,14 +45,14 @@ namespace mlx
new_text.SetColor(std::move(vec_color));
// if(m_pixelput_called)
{
m_draw_layer++;
// m_draw_layer++;
// m_pixelput_called = false;
}
}
else if(!p_scene->IsTextAtGivenDrawLayer(str, m_draw_layer))
{
p_scene->BringToFront(text.Get());
m_draw_layer++;
p_scene->BringToDrawLayer(text.Get(), m_draw_layer);
//m_draw_layer++;
}
}
@@ -73,8 +73,8 @@ namespace mlx
}
else if(!p_scene->IsTextureAtGivenDrawLayer(texture, m_draw_layer))
{
p_scene->BringToFront(sprite.Get());
m_draw_layer++;
p_scene->BringToDrawLayer(sprite.Get(), m_draw_layer);
//m_draw_layer++;
}
}

View File

@@ -27,6 +27,7 @@ namespace mlx
inline void BindFont(std::shared_ptr<Font> font) { Verify((bool)font, "invalid fond pointer"); p_bound_font = font; }
void BringToFront(NonOwningPtr<Drawable> drawable);
void BringToDrawLayer(NonOwningPtr<Drawable> drawable, std::uint64_t draw_layer);
inline void ResetScene() { m_drawables.clear(); }