X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Flight.cpp;h=11f4826cd74748acde5b1bfba24d8efd32ea3203;hb=a6acc6fc98f8571eaaa66f726c1ff4d60abe4f58;hp=d4b45aaf82cc66371c4a73f11174eaf7356af611;hpb=2579be0c3bf50f060364b937e6b2446ea3547e4b;p=libs%2Fgl.git diff --git a/source/light.cpp b/source/light.cpp index d4b45aaf..11f4826c 100644 --- a/source/light.cpp +++ b/source/light.cpp @@ -1,7 +1,10 @@ #include +#include #include "light.h" #include "lightunit.h" +#include "matrix.h" #include "misc.h" +#include "programdata.h" using namespace std; @@ -97,6 +100,14 @@ void Light::set_attenuation(float c, float l, float q) update_parameter(ATTENUATION); } +void Light::update_shader_data(ProgramData &shdata, const Matrix &view_matrix, unsigned i) const +{ + string base = format("light_sources[%d]", i); + shdata.uniform(base+".position", view_matrix*position); + shdata.uniform(base+".diffuse", diffuse); + shdata.uniform(base+".specular", specular); +} + void Light::bind_to(unsigned i) const { LightUnit &unit = LightUnit::get_unit(i);