X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fcore%2Ftexture2dmultisample.cpp;h=85fa19504ed65638d76204242d2dea102020c8b3;hp=18e21b76ba45eeeaaf585504104aa8558335daa3;hb=3a1b9cbe2441ae670a97541dc8ccb0a2860c8302;hpb=cd5f37b066352119cf92d53d0001af7ff99be437 diff --git a/source/core/texture2dmultisample.cpp b/source/core/texture2dmultisample.cpp index 18e21b76..85fa1950 100644 --- a/source/core/texture2dmultisample.cpp +++ b/source/core/texture2dmultisample.cpp @@ -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) @@ -64,7 +60,7 @@ void Texture2DMultisample::image(const Graphics::Image &, unsigned) throw invalid_operation("Texture2DMultisample::image"); } -UInt64 Texture2DMultisample::get_data_size() const +uint64_t Texture2DMultisample::get_data_size() const { return id ? width*height*get_pixel_size(format)*samples : 0; }