X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftexgen.cpp;h=eb6179d08ef680e8732e544d7692533cec649a90;hb=1bad86b461abd4fe2a1cb1c6c5685adf5db13935;hp=e9a75d7a0ea27286287ef78ae0e0b2b5402bd3bb;hpb=777f5f37f2d89ef2a787a77d74372b643968740e;p=libs%2Fgl.git diff --git a/source/texgen.cpp b/source/texgen.cpp index e9a75d7a..eb6179d0 100644 --- a/source/texgen.cpp +++ b/source/texgen.cpp @@ -22,10 +22,12 @@ void TexGen::set_plane(const Vector4 &p) 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); @@ -35,14 +37,15 @@ void TexGen::bind_to(TexCoordComponent c) const } } -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)); }