initial commit
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
#include "HydraLightBufferManager.h"
|
||||
|
||||
void HydraLightBufferManager::Initialise()
|
||||
{
|
||||
m_light_lookup.resize(MAX_LIGHTS);
|
||||
m_lights.resize(MAX_LIGHTS);
|
||||
for(uint32_t i = 0; i < MAX_LIGHTS; i ++)
|
||||
{
|
||||
m_available_lights.push(i);
|
||||
}
|
||||
}
|
||||
|
||||
void HydraLightBufferManager::Shutdown()
|
||||
{
|
||||
}
|
||||
|
||||
HydraID HydraLightBufferManager::CreateLight(HydraLightBuffer light_buffer)
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(m_mutex);
|
||||
if(m_available_lights.size() > 0)
|
||||
{
|
||||
HydraID light_id = m_available_lights.front();
|
||||
m_available_lights.pop();
|
||||
m_lights[m_light_count] = light_buffer;
|
||||
m_light_lookup[light_id] = m_light_count;
|
||||
m_light_count++;
|
||||
return light_id;
|
||||
}
|
||||
|
||||
return INVALID_HYDRA_ID;
|
||||
}
|
||||
|
||||
HydraLightBuffer *const HydraLightBufferManager::GetLightBufferBase()
|
||||
{
|
||||
return &m_lights[0];
|
||||
}
|
||||
|
||||
HydraLightBuffer &HydraLightBufferManager::GetLightBuffer(HydraID light_id)
|
||||
{
|
||||
HydraID light_idx = m_light_lookup[light_id];
|
||||
return m_lights[light_idx];
|
||||
}
|
||||
|
||||
uint32_t HydraLightBufferManager::GetLightCount()
|
||||
{
|
||||
return m_light_count;
|
||||
}
|
||||
Reference in New Issue
Block a user