]> git.tdb.fi Git - libs/gl.git/blobdiff - source/lightunit.cpp
Do not clear previous assignments on assignment to array subscript
[libs/gl.git] / source / lightunit.cpp
index 58d42e6d730f893d3370532e2b84e993dc89221e..e7cf7419c1672961ad4eb85280b30e834ea8a0b7 100644 (file)
@@ -1,4 +1,5 @@
 #include <stdexcept>
+#include <msp/gl/extensions/msp_legacy_features.h>
 #include "gl.h"
 #include "misc.h"
 #include "lightunit.h"
@@ -9,7 +10,6 @@ namespace Msp {
 namespace GL {
 
 vector<LightUnit> LightUnit::units;
-LightUnit *LightUnit::cur_unit = 0;
 
 LightUnit::LightUnit():
        light(0)
@@ -24,7 +24,7 @@ bool LightUnit::set_light(const Light *l)
 
 unsigned LightUnit::get_n_units()
 {
-       static int count = get_i(GL_MAX_LIGHTS);
+       static int count = (MSP_legacy_features ? get_i(GL_MAX_LIGHTS) : 0);
        return count;
 }
 
@@ -44,5 +44,13 @@ LightUnit &LightUnit::get_unit(unsigned n)
        return units[n];
 }
 
+LightUnit *LightUnit::find_unit(const Light *l)
+{
+       for(vector<LightUnit>::iterator i=units.begin(); i!=units.end(); ++i)
+               if(i->light==l)
+                       return &*i;
+       return 0;
+}
+
 } // namespace GL
 } // namespace Msp