#ifndef HYDRALIGHTBUFFERMANAGER #define HYDRALIGHTBUFFERMANAGER #include "../engine/HydraObject.h" #include "../ecs/components/HydraLightComponent.h" #include #include #include class HydraLightBufferManager : public HydraObject { public: void Initialise(); void Shutdown(); uint32_t GetLightCount(); void UpdateBuffer(); void AddLight(HydraLightComponent light); void RemoveLight(HydraID entity_id); private: std::mutex m_mutex; uint32_t m_light_count = 0; std::vector m_lights; std::queue m_available_lights; std::vector m_light_lookup; HydraID m_light_buffer_id = INVALID_HYDRA_ID; }; #endif /* HYDRALIGHTBUFFERMANAGER */