sculpto
layers_stack.cpp
Go to the documentation of this file.
1/*!****************************************************************//*!*
2 * \file layers_stack.cpp
3 * \brief Application layers stack implemetation module.
4 *
5 * \author Sabitov Kirill
6 * \date 26 June 2022
7 *********************************************************************/
8
9#include "sclpch.h"
10#include "layers_stack.h"
11
13{
14 for (layer *layer : Layers)
15 delete layer;
16}
17
18void scl::layers_stack::Push(layer *Layer)
19{
20 Layer->OnInit();
21 Layers.emplace(Layers.begin() + (LayerIndex++), Layer);
22}
23
25{
26 Layer->OnInit();
27 Layers.emplace_back(Layer);
28}
29
30void scl::layers_stack::Pop(layer *Layer)
31{
32 iterator it = std::find(Layers.begin(), Layers.begin() + LayerIndex, Layer);
33 if (it != Layers.end())
34 {
35 Layers.erase(it);
36 LayerIndex--;
37 }
38 Layer->OnClose();
39}
40
42{
43 iterator it = std::find(Layers.begin() + LayerIndex, Layers.end(), Layer);
44 if (it != Layers.end()) Layers.erase(it);
45 Layer->OnClose();
46}
void Push(layer *Layer)
void PopOverlay(layer *Layer)
void PushOverlay(layer *Layer)
void Pop(layer *Layer)
Application layers stack class definition module.
Sculpto library prehompiled header. Defines common definitions, includes commonly used modules.