Оптимизация загрузки
This commit is contained in:
parent
8f24e460dd
commit
311ccfdcd1
|
@ -16,6 +16,7 @@ int Light::getUBOsize()
|
|||
void Light::upload(UBO& lights_data)
|
||||
{
|
||||
GLuint LightDataSize = sizeof(LightData); // Одного экземпляра структуры LightData
|
||||
int first = MAX_LIGHTS, last = -1; // Начало и конец диапазона загрузки источников
|
||||
|
||||
if (count)
|
||||
{
|
||||
|
@ -28,12 +29,19 @@ void Light::upload(UBO& lights_data)
|
|||
{
|
||||
lights[i].toData(); // Перевод ноды в данные для шейдера
|
||||
|
||||
// Определение диапазона загрузки
|
||||
if (first > lights[i].index)
|
||||
first = lights[i].index;
|
||||
if (last < lights[i].index)
|
||||
last = lights[i].index;
|
||||
|
||||
lights[i].uploadReq = false; // Сброс флага
|
||||
}
|
||||
}
|
||||
|
||||
// Загрузка данных об источниках
|
||||
lights_data.loadSub(data, sizeof(LightData)*count);
|
||||
|
||||
// Если есть что загрузить (определен диапазон)
|
||||
if (last > -1)
|
||||
lights_data.loadSub(data + first, LightDataSize*(last - first +1), LightDataSize*(first)); // Загрузка данных об источниках
|
||||
}
|
||||
|
||||
// Загружаем кол-во источников
|
||||
|
|
Loading…
Reference in New Issue