Do not scale texture unless necessary.
authorLars Hofhansl <larsh@apache.org>
Sun, 5 Nov 2017 01:05:47 +0000 (18:05 -0700)
committerLars Hofhansl <larsh@apache.org>
Sun, 5 Nov 2017 01:05:55 +0000 (18:05 -0700)
This avoids scaling textures to 'texture_min_size' unless it is actually
required (because either auto-scaling or bi/trilinear filtering is enabled)

src/client/tile.cpp

index 9321a45863c291fd160c1388eab31e77155f16ee..d0b9d81bfc895d9e2c5b5a46f4dde3b31e749442 100644 (file)
@@ -1777,7 +1777,8 @@ bool TextureSource::generateImagePart(std::string part_of_name,
                         * mix high- and low-res textures, or for mods with least-common-denominator
                         * textures that don't have the resources to offer high-res alternatives.
                         */
-                       s32 scaleto = g_settings->getS32("texture_min_size");
+                       const bool filter = m_setting_trilinear_filter || m_setting_bilinear_filter;
+                       const s32 scaleto = filter ? g_settings->getS32("texture_min_size") : 1;
                        if (scaleto > 1) {
                                const core::dimension2d<u32> dim = baseimg->getDimension();