11 void TexEnv::set_mode(TexEnvMode m)
14 if(TexUnit::current().get_texenv()==this)
15 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, mode);
18 void TexEnv::set_color(const Color &c)
21 if(TexUnit::current().get_texenv()==this)
22 glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, &color.r);
25 void TexEnv::bind_to(unsigned i) const
27 TexUnit &unit = TexUnit::get_unit(i);
28 if(unit.set_texenv(this))
31 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, mode);
32 glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, &color.r);
36 const TexEnv *TexEnv::current(unsigned i)
38 return TexUnit::get_unit(i).get_texenv();
41 void TexEnv::unbind_from(unsigned i)
43 TexUnit &unit = TexUnit::get_unit(i);
44 if(unit.set_texenv(0))
47 Color black(0, 0, 0, 0);
48 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, MODULATE);
49 glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, &black.r);