X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flight.cpp;h=a3b3d014c0a51a16762c7a82285f4a6a8960247c;hb=4fe225bf15048fcb7a678370f87d09f2de37031a;hp=11f4826cd74748acde5b1bfba24d8efd32ea3203;hpb=a6acc6fc98f8571eaaa66f726c1ff4d60abe4f58;p=libs%2Fgl.git diff --git a/source/light.cpp b/source/light.cpp index 11f4826c..a3b3d014 100644 --- a/source/light.cpp +++ b/source/light.cpp @@ -1,4 +1,5 @@ #include +#include #include #include "light.h" #include "lightunit.h" @@ -24,6 +25,12 @@ Light::Light(): attenuation[2] = 0; } +Light::~Light() +{ + while(LightUnit *unit = LightUnit::find_unit(this)) + unbind_from(unit->get_index()); +} + void Light::update_parameter(int mask, int index) const { if(index<0) @@ -110,6 +117,8 @@ void Light::update_shader_data(ProgramData &shdata, const Matrix &view_matrix, u void Light::bind_to(unsigned i) const { + static Require _req(MSP_legacy_features); + LightUnit &unit = LightUnit::get_unit(i); if(unit.set_light(this)) {