Files
Nuake-custom/Nuake/src/Application/LayerStack.cpp
2023-10-15 14:58:12 -04:00

40 lines
735 B
C++

#include "LayerStack.h"
#include "Layer.h"
namespace Nuake {
LayerStack::LayerStack()
{
m_LayerInsert = m_Layers.begin();
}
void LayerStack::PushLayer(Ref<Layer> layer)
{
m_LayerInsert = m_Layers.emplace(m_LayerInsert, std::move(layer));
}
void LayerStack::PushOverlayLayer(Ref<Layer> layer)
{
m_Layers.emplace_back(std::move(layer));
}
void LayerStack::PopLayer(Ref<Layer> layer)
{
auto it = std::find(m_Layers.begin(), m_Layers.end(), layer);
if (it != m_Layers.end())
{
m_Layers.erase(it);
m_LayerInsert--;
}
}
void LayerStack::PopOverlayLayer(Ref<Layer> layer)
{
auto it = std::find(m_Layers.begin(), m_Layers.end(), layer);
if (it != m_Layers.end())
{
m_Layers.erase(it);
}
}
}