23 lines
880 B
C++
23 lines
880 B
C++
#include "Lights.h"
|
||
|
||
GLuint Light::count = 0; // количество используемых источников (должно быть <= MAX_LIGHTS)
|
||
LightData Light::data[MAX_LIGHTS]; // Массив данных по источникам света
|
||
|
||
// возвращает размер буфера в байтах
|
||
int Light::getUBOsize()
|
||
{
|
||
return sizeof(LightData) * MAX_LIGHTS + sizeof(GLuint);
|
||
}
|
||
|
||
// Загрузка данных в буфер
|
||
void Light::upload(UBO& lights_data)
|
||
{
|
||
GLuint LightDataSize = sizeof(LightData); // Одного экземпляра структуры LightData
|
||
|
||
if (count)
|
||
lights_data.loadSub(data, sizeof(LightData)*count); // Загрузка данных об источниках
|
||
|
||
// Загружаем кол-во источников
|
||
lights_data.loadSub(&count, sizeof(count), LightDataSize*MAX_LIGHTS);
|
||
}
|