1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#pragma once #include "interfaces/cursor.hpp" #include "interfaces/matrix.hpp" #include "interfaces/window.hpp" #include <memory> #include <string_view> class IScene { public: virtual ~IScene() = default; virtual void enter() = 0; virtual void leave() = 0; }; using ISceneFactory = std::shared_ptr<IScene> (*)();