Nigel Barink 8e202f9d59 Introducing application layers
This feature is not really used yet but will help in the future simplify the propegation of events
2023-05-08 22:01:44 +02:00

22 lines
525 B
C++

#pragma once
#include "Layer.h"
#include <vector>
class LayerStack{
public:
LayerStack() = default;
~LayerStack();
void PushLayer(Layer* layer);
void PopLayer(Layer* layer);
std::vector<Layer*>::iterator begin() { return layers.begin(); }
std::vector<Layer*>::iterator end() { return layers.end(); }
std::vector<Layer*>::reverse_iterator rbegin() { return layers.rbegin(); }
std::vector<Layer*>::reverse_iterator rend() { return layers.rend(); }
private:
std::vector<Layer*> layers;
int insertion_index = 0;
};