]> git.tdb.fi Git - libs/gl.git/blobdiff - source/texture.cpp
Add Texture::bind_to() method
[libs/gl.git] / source / texture.cpp
index 7ce039acb6df2278ff8c2df8c289e63cfd290820..d71f38c2f1f2efba27edf95c57925c0a11946f54 100644 (file)
@@ -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)