#ifndef BILLYSHEET_WINDOW_HPP #define BILLYSHEET_WINDOW_HPP #include #include #include #include namespace gui { class Window final { private: static void delete_glfw_window(GLFWwindow *glfWwindow) { glfwDestroyWindow(glfWwindow); glfwTerminate(); } std::unique_ptr wwindow{ nullptr, delete_glfw_window }; public: Window(); ~Window() noexcept = default; [[nodiscard]] const std::unique_ptr &get_window() const { return wwindow; } [[nodiscard]] bool should_close() const noexcept; void swap_buffers() const noexcept; }; } #endif //BILLYSHEET_WINDOW_HPP