]> git.tdb.fi Git - libs/gl.git/blobdiff - source/texture.cpp
Move filter heuristic for mipmap levels to Texture::Loader
[libs/gl.git] / source / texture.cpp
index 401cb968578d9d9eb7ac7e433869929d3f221e2f..b8c14792dad403e9fd98e2885dc99188fd17be80 100644 (file)
@@ -407,6 +407,11 @@ void Texture::Loader::init()
        add("wrap_t",     &Loader::wrap_t);
 }
 
+unsigned Texture::Loader::get_levels() const
+{
+       return (is_mipmapped(obj.default_sampler.get_min_filter()) ? levels : 1);
+}
+
 void Texture::Loader::external_image(const string &fn)
 {
        Graphics::Image img;
@@ -415,7 +420,7 @@ void Texture::Loader::external_image(const string &fn)
                throw IO::file_not_found(fn);
        img.load_io(*io);
 
-       obj.image(img, levels, srgb);
+       obj.image(img, get_levels(), srgb);
 }
 
 void Texture::Loader::filter(TextureFilter f)
@@ -434,7 +439,7 @@ void Texture::Loader::image_data(const string &data)
        IO::Memory mem(data.data(), data.size());
        img.load_io(mem);
 
-       obj.image(img, levels, srgb);
+       obj.image(img, get_levels(), srgb);
 }
 
 void Texture::Loader::mag_filter(TextureFilter f)