From dbe642e5e26cf2bd99218f727157b58c7fed286e Mon Sep 17 00:00:00 2001 From: hachem Date: Tue, 12 Aug 2025 16:35:42 +0200 Subject: feat: application manager and EventDispatcher --- src/core/application.h | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/core/application.h (limited to 'src/core/application.h') diff --git a/src/core/application.h b/src/core/application.h new file mode 100644 index 0000000..d88eab2 --- /dev/null +++ b/src/core/application.h @@ -0,0 +1,35 @@ +#pragma once + +#include "window.h" +#include "event.h" +#include +#include + +namespace Donut +{ + class Application + { + public: + Application(const std::string& name = "Donut", + int width = 1280, int height = 720); + ~Application(); + + void run(); + void close(); + + Window& get_window() { return *m_window; } + static Application& get() { return *s_instance; } + private: + void on_init(); + void on_shutdown(); + void on_update(); + void on_render(); + void on_event(Event& event); + private: + std::unique_ptr m_window; + bool m_running; + bool m_minimized; + + static Application* s_instance; + }; +} -- cgit v1.3