#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(Window &&window) noexcept: wwindow(std::move(window.wwindow)) {} ~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