Files
HydraV3/HydraEngine/source/buffer/HydraLightBufferManager.h
2026-07-17 15:30:29 +01:00

28 lines
767 B
C++

#ifndef HYDRALIGHTBUFFERMANAGER
#define HYDRALIGHTBUFFERMANAGER
#include "../engine/HydraObject.h"
#include "HydraLightBuffer.h"
#include <vector>
#include <queue>
#include <mutex>
class HydraLightBufferManager : public HydraObject
{
public:
void Initialise();
void Shutdown();
HydraID CreateLight(HydraLightBuffer light_buffer);
HydraLightBuffer* const GetLightBufferBase();
HydraLightBuffer& GetLightBuffer(HydraID light_id);
uint32_t GetLightCount();
private:
std::mutex m_mutex;
uint32_t m_light_count = 0;
std::vector<HydraLightBuffer> m_lights;
std::queue<HydraID> m_available_lights;
std::vector<HydraID> m_light_lookup;
};
#endif /* HYDRALIGHTBUFFERMANAGER */