]> git.tdb.fi Git - libs/gl.git/blobdiff - source/backends/opengl/texture2dmultisample_backend.cpp
Check the flat qualifier from the correct member
[libs/gl.git] / source / backends / opengl / texture2dmultisample_backend.cpp
index 71f9e138abddee50a7c157c0ef7e33b0dfda7a3a..f0675044b23cdb6b8fcf72dacf86bdb7b79f885d 100644 (file)
@@ -15,31 +15,35 @@ OpenGLTexture2DMultisample::OpenGLTexture2DMultisample():
 
 void OpenGLTexture2DMultisample::allocate()
 {
-       unsigned width = static_cast<const Texture2DMultisample *>(this)->width;
-       unsigned height = static_cast<const Texture2DMultisample *>(this)->height;
-       unsigned samples = static_cast<const Texture2DMultisample *>(this)->samples;
+       const Texture2DMultisample &self = *static_cast<const Texture2DMultisample *>(this);
 
        if(!id)
-               generate_id();
+               create();
 
        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);
+                       glTextureStorage2DMultisample(id, self.samples, gl_fmt, self.width, self.height, false);
                else
                {
                        bind_scratch();
-                       glTexStorage2DMultisample(target, samples, gl_fmt, width, height, false);
+                       glTexStorage2DMultisample(target, self.samples, gl_fmt, self.width, self.height, false);
                }
        }
        else
        {
                bind_scratch();
-               glTexImage2DMultisample(target, samples, gl_fmt, width, height, false);
+               glTexImage2DMultisample(target, self.samples, gl_fmt, self.width, self.height, false);
        }
        apply_swizzle();
 }
 
+size_t OpenGLTexture2DMultisample::get_data_size() const
+{
+       const Texture2DMultisample &self = *static_cast<const Texture2DMultisample *>(this);
+       return self.width*self.height*get_pixel_size(format)*self.samples;
+}
+
 } // namespace GL
 } // namespace Msp