VideoCommon: support dynamically updating game mods at runtime

This commit is contained in:
iwubcode
2022-03-15 01:46:58 -05:00
parent 892678648e
commit 69839df1eb
4 changed files with 43 additions and 1 deletions

View File

@ -154,6 +154,9 @@ void TextureCacheBase::OnConfigChanged(const VideoConfig& config)
HiresTexture::Update();
}
const u32 change_count =
config.graphics_mod_config ? config.graphics_mod_config->GetChangeCount() : 0;
// TODO: Invalidating texcache is really stupid in some of these cases
if (config.iSafeTextureCache_ColorSamples != backup_config.color_samples ||
config.bTexFmtOverlayEnable != backup_config.texfmt_overlay ||
@ -161,7 +164,9 @@ void TextureCacheBase::OnConfigChanged(const VideoConfig& config)
config.bHiresTextures != backup_config.hires_textures ||
config.bEnableGPUTextureDecoding != backup_config.gpu_texture_decoding ||
config.bDisableCopyToVRAM != backup_config.disable_vram_copies ||
config.bArbitraryMipmapDetection != backup_config.arbitrary_mipmap_detection)
config.bArbitraryMipmapDetection != backup_config.arbitrary_mipmap_detection ||
config.bGraphicMods != backup_config.graphics_mods ||
change_count != backup_config.graphics_mod_change_count)
{
Invalidate();
TexDecoder_SetTexFmtOverlayOptions(config.bTexFmtOverlayEnable, config.bTexFmtOverlayCenter);
@ -257,6 +262,8 @@ void TextureCacheBase::SetBackupConfig(const VideoConfig& config)
backup_config.disable_vram_copies = config.bDisableCopyToVRAM;
backup_config.arbitrary_mipmap_detection = config.bArbitraryMipmapDetection;
backup_config.graphics_mods = config.bGraphicMods;
backup_config.graphics_mod_change_count =
config.graphics_mod_config ? config.graphics_mod_config->GetChangeCount() : 0;
}
TextureCacheBase::TCacheEntry*