From 90398614bcc9e1c1bde7a0f65a0db66173a1d8b4 Mon Sep 17 00:00:00 2001 From: hachem Date: Thu, 27 Aug 2026 10:50:02 +0200 Subject: add: window manager and opengl context --- src/core/window_manager.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/core/window_manager.h (limited to 'src/core/window_manager.h') diff --git a/src/core/window_manager.h b/src/core/window_manager.h new file mode 100644 index 0000000..d3a915c --- /dev/null +++ b/src/core/window_manager.h @@ -0,0 +1,38 @@ +#pragma once + +#include "core/window.h" + +#include +#include + +namespace Hsdbg +{ + class WindowManager + { + public: + WindowManager(); + ~WindowManager(); + + WindowManager(const WindowManager&) = delete; + WindowManager(WindowManager&&) = delete; + auto operator=(const WindowManager&) -> WindowManager& = delete; + auto operator=(WindowManager&&) -> WindowManager& = delete; + + static auto get() -> WindowManager&; + + auto create_window(const WindowSpec& spec) -> Window&; + auto destroy_window(const Window& window) -> void; + + auto poll_events() -> void; + auto wait_events(double timeout_seconds) -> void; + + auto window_count() const -> size_t { return m_windows.size(); } + + private: + static auto on_error(int code, const char* description) -> void; + + static WindowManager* s_instance; + + std::vector> m_windows; + }; +} -- cgit v1.3