diff --git a/exemples/sandbox.cpp b/exemples/sandbox.cpp index e87c892..58c6429 100644 --- a/exemples/sandbox.cpp +++ b/exemples/sandbox.cpp @@ -3,10 +3,6 @@ #include #include -#include - -//USE THE FUCKING NAMESPACE OR BREAK - class TestLayer : public Bk::Layer { public: @@ -40,20 +36,9 @@ class Sandbox : public Bk::Application Sandbox() { push_layer(new TestLayer()); - push_layer(new TestLayer()); - std::unique_ptr layer = pop_overlay(); - BK_INFO("Layer retirer et récupérer {0}", layer->to_string()); - - } - - ~Sandbox() - { - } }; - - std::unique_ptr Bk::create_app() { return std::unique_ptr(new Sandbox()); } \ No newline at end of file diff --git a/src/bakara/core/application.h b/src/bakara/core/application.h index 6a6d8d0..59f8705 100644 --- a/src/bakara/core/application.h +++ b/src/bakara/core/application.h @@ -50,9 +50,8 @@ namespace Bk { inline void push_overlay(Layer* layer) { p_layer_stack.push_overlay(layer); } /*! \fn Bk::Application::pop_overlay Pop's the layer on top of the layer stack - @return a unique ptr to the layer ressource */ - inline std::unique_ptr pop_overlay() { return p_layer_stack.pop_overlay(); } + inline void pop_overlay() { p_layer_stack.pop_overlay(); } /*! \fn Bk::Application::push_overlay Push's the layer at the bottom of the layer stack @param layer : Layer pointer to push @@ -60,9 +59,8 @@ namespace Bk { inline void push_layer(Layer* layer) { p_layer_stack.push_layer(layer); } /*! \fn Bk::Application::push_overlay Pop's the layer at the bottom of the layer stack - @return a unique ptr to the layer ressource */ - inline std::unique_ptr pop_layer() { return p_layer_stack.pop_layer(); } + inline void pop_layer() { p_layer_stack.pop_layer(); } /*! \fn Bk::Application::run Starts the application and the update loop. diff --git a/src/bakara/core/layer.h b/src/bakara/core/layer.h index c1f6210..eeb3453 100644 --- a/src/bakara/core/layer.h +++ b/src/bakara/core/layer.h @@ -7,7 +7,7 @@ namespace Bk { { public: Layer(const std::string& name = "Layer"); - virtual ~Layer() {} + ~Layer() {} virtual void on_attach() {} virtual void on_detach() {} diff --git a/src/bakara/core/layer_stack.cpp b/src/bakara/core/layer_stack.cpp index af06632..8809348 100644 --- a/src/bakara/core/layer_stack.cpp +++ b/src/bakara/core/layer_stack.cpp @@ -3,12 +3,7 @@ namespace Bk { LayerStack::~LayerStack() { - std::for_each(p_layers.begin(), p_layers.end(), [](Layer* layer) - { - layer->on_detach(); - delete layer; - }); - p_layers.clear(); + clear(); } void LayerStack::push_overlay(Layer* layer) @@ -17,14 +12,14 @@ namespace Bk { p_layers.emplace_back(layer); } - std::unique_ptr LayerStack::pop_overlay() + void LayerStack::pop_overlay() { if(auto layer = p_layers.back()) { + layer->on_detach(); p_layers.pop_back(); - return std::make_unique(*layer); + delete layer; } - return nullptr; } void LayerStack::push_layer(Layer* layer) @@ -33,18 +28,23 @@ namespace Bk { p_layers.emplace_front(layer); } - std::unique_ptr LayerStack::pop_layer() + void LayerStack::pop_layer() { if(auto layer = p_layers.front()) { + layer->on_detach(); p_layers.pop_front(); - return std::make_unique(*layer); + delete layer; } - return nullptr; } void LayerStack::clear() { + std::for_each(p_layers.begin(), p_layers.end(), [](Layer* layer) + { + layer->on_detach(); + delete layer; + }); p_layers.clear(); } } \ No newline at end of file diff --git a/src/bakara/core/layer_stack.h b/src/bakara/core/layer_stack.h index d986f57..3b0801e 100644 --- a/src/bakara/core/layer_stack.h +++ b/src/bakara/core/layer_stack.h @@ -11,9 +11,9 @@ namespace Bk { ~LayerStack(); void push_overlay(Layer* layer); - std::unique_ptr pop_overlay(); + void pop_overlay(); void push_layer(Layer* layer); - std::unique_ptr pop_layer(); + void pop_layer(); void clear(); std::deque::iterator begin() { return p_layers.begin(); } diff --git a/src/bakara/imgui/imgui_layer.h b/src/bakara/imgui/imgui_layer.h index 111744d..373674e 100644 --- a/src/bakara/imgui/imgui_layer.h +++ b/src/bakara/imgui/imgui_layer.h @@ -13,8 +13,6 @@ namespace Bk { ImguiLayer() : Layer("Imgui") {} - ~ImguiLayer() = default; - void on_attach() override; void on_detach() override; void on_event(Bk::Event& e) override;