14 if(this!=&default_object())
16 while(TexUnit *unit = TexUnit::find_unit(this))
17 unbind_from(unit->get_index());
21 const TexEnv &TexEnv::default_object()
27 void TexEnv::update_parameter(int mask) const
29 if(TexUnit::current().get_texenv()!=this)
31 TexUnit *unit = TexUnit::find_unit(this);
39 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, mode);
41 glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, &color.r);
44 void TexEnv::set_mode(TexEnvMode m)
47 update_parameter(MODE);
50 void TexEnv::set_color(const Color &c)
53 update_parameter(COLOR);
56 void TexEnv::bind_to(unsigned i) const
58 TexUnit &unit = TexUnit::get_unit(i);
59 if(unit.set_texenv(this))
66 const TexEnv *TexEnv::current(unsigned i)
68 return TexUnit::get_unit(i).get_texenv();
71 void TexEnv::unbind_from(unsigned i)
73 default_object().bind_to(i);