#pragma once #include "IShader.hpp" #include "TransformationStack.hpp" #include "elements/Transformable.hpp" namespace TSE { class Camera; class IRenderer { public: static std::vector camerasToRenderWith; virtual void End() = 0; virtual void Flush() = 0; virtual void Begin() = 0; virtual void Submit(const Transformable& trans, TransformationStack& stack) = 0; virtual void Submit(const Transformable& trans, IShader* shader, TransformationStack& stack) = 0; virtual ~IRenderer() = default; }; } // namespace TSE