- if(ARB_direct_state_access)
- glTextureParameteri(id, param, value);
- else
- glTexParameteri(target, param, value);
-}
-
-void Texture::set_min_filter(TextureFilter f)
-{
- default_sampler.set_min_filter(f);
-}
-
-void Texture::set_mag_filter(TextureFilter f)
-{
- default_sampler.set_mag_filter(f);
-}
-
-void Texture::set_filter(TextureFilter f)
-{
- default_sampler.set_filter(f);
-}
-
-void Texture::set_max_anisotropy(float a)
-{
- default_sampler.set_max_anisotropy(a);
-}
-
-void Texture::set_wrap(TextureWrap w)
-{
- default_sampler.set_wrap(w);
-}
-
-void Texture::set_wrap_s(TextureWrap w)
-{
- default_sampler.set_wrap_s(w);
-}
-
-void Texture::set_wrap_t(TextureWrap w)
-{
- default_sampler.set_wrap_t(w);
-}
-
-void Texture::set_wrap_r(TextureWrap w)
-{
- default_sampler.set_wrap_r(w);
-}
-
-bool Texture::can_generate_mipmap()
-{
- return EXT_framebuffer_object;
-}
-
-void Texture::generate_mipmap()
-{
- // glGenerateMipmap is defined here
- static Require _req(EXT_framebuffer_object);
+ if(swizzle==RGBA_TO_RGB)
+ {
+ const uint32_t *src = static_cast<const uint32_t *>(data);
+ uint32_t *dst = static_cast<uint32_t *>(staging);
+ size_t i = 0;
+ for(; i+3<count; i+=4)
+ {
+ dst[0] = src[0]|0xFF000000;
+ dst[1] = (src[0]>>24)|(src[1]<<8)|0xFF000000;
+ dst[2] = (src[1]>>16)|(src[2]<<16)|0xFF000000;
+ dst[3] = (src[2]>>8)|0xFF000000;
+ src += 3;
+ dst += 4;
+ }