X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Ftexture.cpp;h=d71f38c2f1f2efba27edf95c57925c0a11946f54;hb=ac7c744dfb6e87481eea7081b84c5ae2f585ee7b;hp=7ce039acb6df2278ff8c2df8c289e63cfd290820;hpb=a80b074c70ec991f27114efd13686038cf42c493;p=libs%2Fgl.git diff --git a/source/texture.cpp b/source/texture.cpp index 7ce039ac..d71f38c2 100644 --- a/source/texture.cpp +++ b/source/texture.cpp @@ -44,12 +44,21 @@ void Texture::bind() const throw InvalidState("Attempt to bind a texture without target"); const Texture *cur=TexUnit::current().get_texture(); - if(cur && cur->target!=target) - glDisable(cur->target); - if(!cur || cur->target!=target) - glEnable(target); - glBindTexture(target, id); - TexUnit::current().set_texture(this); + if(cur!=this) + { + if(cur && cur->target!=target) + glDisable(cur->target); + if(!cur || cur->target!=target) + glEnable(target); + glBindTexture(target, id); + TexUnit::current().set_texture(this); + } +} + +void Texture::bind_to(unsigned i) const +{ + TexUnit::activate(i); + bind(); } void Texture::parameter(GLenum param, int value)