#pragma once #include "MinimalEngine.h" #include "Containers/List.h" #include //DEPRECATED namespace Seele { DECLARE_REF(Component); DECLARE_REF(Actor); class SceneUpdater { public: SceneUpdater(); ~SceneUpdater(); void registerComponentUpdate(PComponent component); void registerActorUpdate(PActor actor); void runUpdates(float delta); private: Array workers; std::mutex pendingUpdatesLock; std::counting_semaphore<> pendingUpdatesSem; List> pendingUpdates; List> updatesRan; void work(); float frameDelta; std::atomic_bool running; std::mutex frameFinishedLock; std::condition_variable frameFinishedCV; }; DEFINE_REF(SceneUpdater) } // namespace Seele