#pragma once #include #include #include #include #include class Renderer { public: enum Api { API_OPENGL }; Renderer() = default; static std::unique_ptr Select(Api api, SDL_Window *window); public: virtual ~Renderer() = 0; virtual bool Init() = 0; virtual void Draw(RenderGroup &render_group) = 0; virtual void Present() = 0; };