Оптимизация отправки кол-ва источников
This commit is contained in:
parent
311ccfdcd1
commit
fb8c07434d
|
@ -17,6 +17,7 @@ void Light::upload(UBO& lights_data)
|
|||
{
|
||||
GLuint LightDataSize = sizeof(LightData); // Одного экземпляра структуры LightData
|
||||
int first = MAX_LIGHTS, last = -1; // Начало и конец диапазона загрузки источников
|
||||
static GLuint prev_count = -1; // Кол-во источников в прошлую посылку
|
||||
|
||||
if (count)
|
||||
{
|
||||
|
@ -44,8 +45,14 @@ void Light::upload(UBO& lights_data)
|
|||
lights_data.loadSub(data + first, LightDataSize*(last - first +1), LightDataSize*(first)); // Загрузка данных об источниках
|
||||
}
|
||||
|
||||
// Загружаем кол-во источников
|
||||
lights_data.loadSub(&count, sizeof(count), LightDataSize*MAX_LIGHTS);
|
||||
// Если кол-во изменилось
|
||||
if (prev_count != count)
|
||||
{
|
||||
prev_count = count;
|
||||
|
||||
// Загружаем кол-во источников
|
||||
lights_data.loadSub(&count, sizeof(count), LightDataSize*MAX_LIGHTS);
|
||||
}
|
||||
}
|
||||
|
||||
// Метод пересчета матрицы трансформации по необходимости, должен сбрасывать флаг changed
|
||||
|
|
Loading…
Reference in New Issue