#pragma once #include namespace cbt { class window { void* m_window = nullptr; bool m_initialized = false; static auto init() -> bool; static auto terminate() -> void; static auto setup_opengl() -> bool; static auto info_opengl() -> void; public: explicit window(std::string title, int width, int height); ~window(); auto should_close() const -> bool; auto valid() const -> bool; auto swap_buffers() -> void; auto poll_events() -> void; auto raw() const -> void* { return m_window; } }; }