]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/texture2dmultisample.cpp
Use a scratch binding to modify textures and buffers
[libs/gl.git] / source / core / texture2dmultisample.cpp
index 18e21b76ba45eeeaaf585504104aa8558335daa3..4fdb7c1d9ed17bc721942644f58592fdb49bc47c 100644 (file)
@@ -36,27 +36,23 @@ void Texture2DMultisample::storage(PixelFormat fmt, unsigned wd, unsigned ht, un
        height = ht;
        samples = sm;
 
-       bool direct = ARB_texture_storage_multisample && ARB_direct_state_access;
-       if(!direct)
-       {
-               glActiveTexture(GL_TEXTURE0);
-               glBindTexture(target, id);
-       }
-
        GLenum gl_fmt = get_gl_pixelformat(storage_fmt);
        if(ARB_texture_storage_multisample)
        {
                if(ARB_direct_state_access)
                        glTextureStorage2DMultisample(id, samples, gl_fmt, width, height, false);
                else
+               {
+                       bind_scratch();
                        glTexStorage2DMultisample(target, samples, gl_fmt, width, height, false);
+               }
        }
        else
+       {
+               bind_scratch();
                glTexImage2DMultisample(target, samples, gl_fmt, width, height, false);
+       }
        apply_swizzle();
-
-       if(!direct)
-               glBindTexture(target, 0);
 }
 
 void Texture2DMultisample::image(const Graphics::Image &, unsigned)