#pragma once #include #define GLFW_INCLUDE_NONE #include "GLFW/glfw3.h" namespace cbt::opengl { class context { GLFWwindow* m_window = nullptr; bool m_initialized = false; static auto init() -> bool; static auto terminate() -> void; static auto setup_gl() -> bool; static auto print_info() -> void; public: explicit context(std::string title, int width, int height); ~context(); auto should_close() const -> bool; auto valid() const -> bool; auto swap_buffers() -> void; auto poll_events() -> void; auto raw() const -> GLFWwindow*; }; }