#pragma once #include #include #include "../Common/Pure.hpp" #include "../Common/Sizes.hpp" namespace MC::GFX { class Window { public: Window(std::string const& title, U32 width, U32 height); ~Window(); PURE GLFWwindow* get() const; void on_size_change(void (* callback)(GLFWwindow*, I32, I32)) const; void attach() const; void detach() const; void close() const; void start_render() const; void poll_events() const; PURE Bool should_close() const; private: GLFWwindow* m_window; }; }