#pragma once #include "core/time.h" #include "core/gameevent.h" #include class ClassicArrowNote; // class ClassicSliderNote; 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 = 0; virtual void update(const kku::microsec& offset, ClassicArrowNote* note) = 0; // virtual void update(const kku::microsec& offset, ClassicSliderNote* note) = 0; virtual void draw(const ClassicArrowNote* note) const = 0; // virtual void draw(ClassicSliderNote* note) const = 0; protected: kku::microsec _visibility_offset; };