plane = p;
}
-void TexGen::bind_to(TexCoordComponent c) const
+void TexGen::bind_to(unsigned i, TexCoordComponent c) const
{
- if(TexUnit::current().set_texgen(coord_index(c), this))
+ TexUnit &unit = TexUnit::get_unit(i);
+ if(unit.set_texgen(coord_index(c), this))
{
+ unit.bind();
glTexGeni(c, GL_TEXTURE_GEN_MODE, mode);
if(mode==EYE_LINEAR)
glTexGenfv(c, GL_EYE_PLANE, &plane.x);
}
}
-const TexGen *TexGen::current(TexCoordComponent c)
+const TexGen *TexGen::current(unsigned i, TexCoordComponent c)
{
- return TexUnit::current().get_texgen(coord_index(c));
+ return TexUnit::get_unit(i).get_texgen(coord_index(c));
}
-void TexGen::unbind_from(TexCoordComponent c)
+void TexGen::unbind_from(unsigned i, TexCoordComponent c)
{
- if(TexUnit::current().set_texgen(coord_index(c), 0))
+ TexUnit &unit = TexUnit::get_unit(i);
+ if(unit.set_texgen(coord_index(c), 0))
disable(GL_TEXTURE_GEN_S+coord_index(c));
}