// Renderer abstraction (minimal scaffold) #pragma once #include #include namespace renderer { class Renderer { public: virtual ~Renderer() = default; // Create/destroy textures virtual SDL_Texture* createTextureFromSurface(SDL_Surface* surf) = 0; virtual void destroyTexture(SDL_Texture* tex) = 0; // Draw operations (minimal) virtual void copy(SDL_Texture* tex, const SDL_Rect* src, const SDL_Rect* dst) = 0; virtual void clear(const SDL_Color& color) = 0; virtual void present() = 0; }; // Factory helper implemented by SDL-specific backend std::unique_ptr MakeSDLRenderer(SDL_Renderer* rdr); } // namespace renderer