mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Enable cleanTransparent filter for mipmapping and improve its' algorithm (#11145)
This commit is contained in:
parent
90a7bd6a0a
commit
1da73418cd
6 changed files with 105 additions and 32 deletions
|
@ -427,6 +427,7 @@ private:
|
|||
std::unordered_map<std::string, Palette> m_palettes;
|
||||
|
||||
// Cached settings needed for making textures from meshes
|
||||
bool m_setting_mipmap;
|
||||
bool m_setting_trilinear_filter;
|
||||
bool m_setting_bilinear_filter;
|
||||
};
|
||||
|
@ -447,6 +448,7 @@ TextureSource::TextureSource()
|
|||
// Cache some settings
|
||||
// Note: Since this is only done once, the game must be restarted
|
||||
// for these settings to take effect
|
||||
m_setting_mipmap = g_settings->getBool("mip_map");
|
||||
m_setting_trilinear_filter = g_settings->getBool("trilinear_filter");
|
||||
m_setting_bilinear_filter = g_settings->getBool("bilinear_filter");
|
||||
}
|
||||
|
@ -667,7 +669,7 @@ video::ITexture* TextureSource::getTexture(const std::string &name, u32 *id)
|
|||
video::ITexture* TextureSource::getTextureForMesh(const std::string &name, u32 *id)
|
||||
{
|
||||
static thread_local bool filter_needed =
|
||||
g_settings->getBool("texture_clean_transparent") ||
|
||||
g_settings->getBool("texture_clean_transparent") || m_setting_mipmap ||
|
||||
((m_setting_trilinear_filter || m_setting_bilinear_filter) &&
|
||||
g_settings->getS32("texture_min_size") > 1);
|
||||
// Avoid duplicating texture if it won't actually change
|
||||
|
@ -1636,8 +1638,8 @@ bool TextureSource::generateImagePart(std::string part_of_name,
|
|||
return false;
|
||||
}
|
||||
|
||||
// Apply the "clean transparent" filter, if configured.
|
||||
if (g_settings->getBool("texture_clean_transparent"))
|
||||
// Apply the "clean transparent" filter, if needed
|
||||
if (m_setting_mipmap || g_settings->getBool("texture_clean_transparent"))
|
||||
imageCleanTransparent(baseimg, 127);
|
||||
|
||||
/* Upscale textures to user's requested minimum size. This is a trick to make
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue