VideoCommon: fix regression with texture load order where the custom texture code was always updating the asset map for each texture with each entry, making it so the last value actually would be loaded instead of the first

This commit is contained in:
iwubcode 2023-08-11 00:36:41 -05:00
parent 5512d19d4b
commit 246b7c5bdb
1 changed files with 15 additions and 12 deletions

View File

@ -120,24 +120,27 @@ void HiresTexture::Update()
if (has_arbitrary_mipmaps) if (has_arbitrary_mipmaps)
filename.erase(arb_index, 4); filename.erase(arb_index, 4);
// Since this is just a texture (single file) the mapper doesn't really matter
// just provide a string
s_file_library->SetAssetIDMapData(filename,
std::map<std::string, std::filesystem::path>{{"", path}});
if (g_ActiveConfig.bCacheHiresTextures)
{
auto hires_texture = std::make_shared<HiresTexture>(
has_arbitrary_mipmaps,
system.GetCustomAssetLoader().LoadGameTexture(filename, s_file_library));
s_hires_texture_cache.try_emplace(filename, std::move(hires_texture));
}
const auto [it, inserted] = const auto [it, inserted] =
s_hires_texture_id_to_arbmipmap.try_emplace(filename, has_arbitrary_mipmaps); s_hires_texture_id_to_arbmipmap.try_emplace(filename, has_arbitrary_mipmaps);
if (!inserted) if (!inserted)
{ {
failed_insert = true; failed_insert = true;
} }
else
{
// Since this is just a texture (single file) the mapper doesn't really matter
// just provide a string
s_file_library->SetAssetIDMapData(
filename, std::map<std::string, std::filesystem::path>{{"", path}});
if (g_ActiveConfig.bCacheHiresTextures)
{
auto hires_texture = std::make_shared<HiresTexture>(
has_arbitrary_mipmaps,
system.GetCustomAssetLoader().LoadGameTexture(filename, s_file_library));
s_hires_texture_cache.try_emplace(filename, std::move(hires_texture));
}
}
} }
} }