+void Light::bind() const
+{
+ if(current_lights[current_unit]!=this)
+ {
+ GLenum l=GL_LIGHT0+current_unit;
+ enable(l);
+ glLightfv(l, GL_AMBIENT, &ambient.r);
+ glLightfv(l, GL_DIFFUSE, &diffuse.r);
+ glLightfv(l, GL_SPECULAR, &specular.r);
+ glLightfv(l, GL_POSITION, &x);
+ current_lights[current_unit]=this;
+ }
+}
+
+void Light::bind_to(unsigned i) const
+{
+ activate(i);
+ bind();
+}
+
+void Light::activate(unsigned i)