BillySheet/include/gui/window.hpp
2022-01-11 22:33:29 +01:00

33 lines
718 B
C++

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