#pragma once #include "core/time.h" #include "classicmode/classicactions.h" #include #include struct ArrowElement; struct MockElement; class ClassicGraphicsManager : public std::enable_shared_from_this { public: virtual ~ClassicGraphicsManager() = default; explicit ClassicGraphicsManager(const kku::microsec& visibility_offset) : _visibility_offset(visibility_offset) {} virtual void input(kku::GameEvent&& input) = 0; virtual void display(const std::vector& elements) const = 0; virtual void setGraphics(std::vector& elements, kku::TimeRange&& range) = 0; virtual void display(const std::vector& elements) const = 0; virtual void setGraphics(std::vector& elements, kku::TimeRange&& range) = 0; virtual void display() const = 0; virtual void update(const kku::microsec& offset) = 0; protected: kku::microsec _visibility_offset; };