From fb8c07434de4f7a0702d6636db167fd61b543bd2 Mon Sep 17 00:00:00 2001 From: "re.kovalev" Date: Tue, 24 Oct 2023 17:17:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=BF=D1=82=D0=B8=D0=BC=D0=B8=D0=B7?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BE=D1=82=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=BA=D0=BE=D0=BB-=D0=B2=D0=B0=20=D0=B8=D1=81?= =?UTF-8?q?=D1=82=D0=BE=D1=87=D0=BD=D0=B8=D0=BA=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Lights.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/Lights.cpp b/src/Lights.cpp index 5122d6b..9451d08 100644 --- a/src/Lights.cpp +++ b/src/Lights.cpp @@ -17,7 +17,8 @@ void Light::upload(UBO& lights_data) { GLuint LightDataSize = sizeof(LightData); // Одного экземпляра структуры LightData int first = MAX_LIGHTS, last = -1; // Начало и конец диапазона загрузки источников - + static GLuint prev_count = -1; // Кол-во источников в прошлую посылку + if (count) { for (int i = 0; i < MAX_LIGHTS; i++) @@ -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