#ifndef HYDRASHADOWSOURCESYSTEM #define HYDRASHADOWSOURCESYSTEM #include "../../engine/HydraObject.h" #include "../HydraSystem.h" #include "../components/HydraShadowSourceComponent.h" #include #include class HydraShadowSourceSystem : public HydraSystem { public: virtual void Initialise() override; protected: void InitialiseComponent(HydraID entity_id) override; void UpdateSystem(float delta_t_seconds) override; private: void _UpdateDirectionalLight(HydraID entity_id); void _InitialiseDirectionalLight(HydraID entity_id); void _WriteToGPU(std::vector shadows); HydraID m_shadow_buffer_id = INVALID_HYDRA_ID; }; #endif /* HYDRASHADOWCASTERSYSTEM */