Оптимизация отправки кол-ва источников
This commit is contained in:
		
							parent
							
								
									5a8786270b
								
							
						
					
					
						commit
						cac5f75ddf
					
				@ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user