- 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, &position.x);
- glLightfv(l, GL_SPOT_DIRECTION, &spot_dir.x);
- glLightf(l, GL_SPOT_EXPONENT, spot_exp);
- glLightf(l, GL_SPOT_CUTOFF, spot_cutoff);
- glLightf(l, GL_CONSTANT_ATTENUATION, attenuation[0]);
- glLightf(l, GL_LINEAR_ATTENUATION, attenuation[1]);
- glLightf(l, GL_QUADRATIC_ATTENUATION, attenuation[2]);
- current_lights[current_unit] = this;
- }
+ add("attenuation", &Loader::attenuation);
+ add("diffuse", &Loader::diffuse);
+ add("position", &Loader::position);
+ add("specular", &Loader::specular);
+ add("spot_direction", &Loader::spot_direction);
+ add("spot_exponent", &Loader::spot_exponent);
+ add("spot_cutoff", &Loader::spot_cutoff);