mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-14 21:37:52 -07:00
VideoCommon: enhance hi res texture support by having exact matches be picked before wildcard matches. Additionally, add the ability to ignore the texture hash portion of the texture name when loading a hi res texture
This commit is contained in:
parent
8fb0f91331
commit
df53a5f880
@ -221,20 +221,29 @@ std::string HiresTexture::GenBaseName(TextureInfo& texture_info, bool dump)
|
|||||||
|
|
||||||
const auto texture_name_details = texture_info.CalculateTextureName();
|
const auto texture_name_details = texture_info.CalculateTextureName();
|
||||||
|
|
||||||
// try to match a wildcard template
|
// look for an exact match first
|
||||||
if (!dump)
|
|
||||||
{
|
|
||||||
const std::string texture_name =
|
|
||||||
fmt::format("{}_${}", texture_name_details.base_name, texture_name_details.format_name);
|
|
||||||
if (s_textureMap.find(texture_name) != s_textureMap.end())
|
|
||||||
return texture_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
// else generate the complete texture
|
|
||||||
const std::string full_name = texture_name_details.GetFullName();
|
const std::string full_name = texture_name_details.GetFullName();
|
||||||
if (dump || s_textureMap.find(full_name) != s_textureMap.end())
|
if (dump || s_textureMap.find(full_name) != s_textureMap.end())
|
||||||
return full_name;
|
return full_name;
|
||||||
|
|
||||||
|
// else try and find a wildcard
|
||||||
|
if (!dump)
|
||||||
|
{
|
||||||
|
// Single wildcard ignoring the tlut hash
|
||||||
|
const std::string texture_name_single_wildcard_tlut =
|
||||||
|
fmt::format("{}_{}_$_{}", texture_name_details.base_name, texture_name_details.texture_name,
|
||||||
|
texture_name_details.format_name);
|
||||||
|
if (s_textureMap.find(texture_name_single_wildcard_tlut) != s_textureMap.end())
|
||||||
|
return texture_name_single_wildcard_tlut;
|
||||||
|
|
||||||
|
// Single wildcard ignoring the texture hash
|
||||||
|
const std::string texture_name_single_wildcard_tex =
|
||||||
|
fmt::format("{}_${}_{}", texture_name_details.base_name, texture_name_details.tlut_name,
|
||||||
|
texture_name_details.format_name);
|
||||||
|
if (s_textureMap.find(texture_name_single_wildcard_tex) != s_textureMap.end())
|
||||||
|
return texture_name_single_wildcard_tex;
|
||||||
|
}
|
||||||
|
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user