#ifndef HYDRADIRECTIONALSHADOWSOURCESYSTEM #define HYDRADIRECTIONALSHADOWSOURCESYSTEM #include "../../engine/HydraObject.h" #include "../HydraSystem.h" #include "../components/HydraDirectionalShadowSourceComponent.h" #include #include #include #include class HydraDirectionalShadowSourceSystem : public HydraSystem { public: virtual void Initialise() override; protected: void InitialiseComponent(HydraID entity_id) override; void DestroyComponent(HydraID entity_id) override; void UpdateSystem(float delta_t_seconds) override; private: void _UpdateShadowMap(HydraID entity_id); HydraID m_shadow_actor_id = INVALID_HYDRA_ID; std::mutex m_mutex; }; #endif /* HYDRASHADOWCASTERSYSTEM */