#pragma once #include #include namespace GLContext { class Context { public: virtual ~Context() {} virtual void Create(const char *Title) = 0; virtual void Shutdown() = 0; virtual void Swap() = 0; virtual void GetDim(uint32_t *Dim) = 0; using ResizeEvent = std::function; virtual void RegisterResizeEvent(ResizeEvent Event) = 0; virtual void* GetWindow() = 0; }; std::unique_ptr CreateContext(); }