VideoCommon: don't do pointer copies during graphics mod callback iteration

This commit is contained in:
iwubcode 2023-07-02 13:58:07 -05:00
parent 6d7bf60071
commit a2ad3ca6f7
3 changed files with 7 additions and 7 deletions

View File

@ -1322,7 +1322,7 @@ TCacheEntry* TextureCacheBase::LoadImpl(const TextureInfo& texture_info, bool fo
entry->texture_info_name = texture_info.CalculateTextureName().GetFullName(); entry->texture_info_name = texture_info.CalculateTextureName().GetFullName();
GraphicsModActionData::TextureLoad texture_load{entry->texture_info_name}; GraphicsModActionData::TextureLoad texture_load{entry->texture_info_name};
for (const auto action : for (const auto& action :
g_graphics_mod_manager->GetTextureLoadActions(entry->texture_info_name)) g_graphics_mod_manager->GetTextureLoadActions(entry->texture_info_name))
{ {
action->OnTextureLoad(&texture_load); action->OnTextureLoad(&texture_load);
@ -2274,7 +2274,7 @@ void TextureCacheBase::CopyRenderTargetToTexture(
info.m_texture_format = baseFormat; info.m_texture_format = baseFormat;
if (is_xfb_copy) if (is_xfb_copy)
{ {
for (const auto action : g_graphics_mod_manager->GetXFBActions(info)) for (const auto& action : g_graphics_mod_manager->GetXFBActions(info))
{ {
action->OnXFB(); action->OnXFB();
} }
@ -2283,7 +2283,7 @@ void TextureCacheBase::CopyRenderTargetToTexture(
{ {
bool skip = false; bool skip = false;
GraphicsModActionData::EFB efb{tex_w, tex_h, &skip, &scaled_tex_w, &scaled_tex_h}; GraphicsModActionData::EFB efb{tex_w, tex_h, &skip, &scaled_tex_w, &scaled_tex_h};
for (const auto action : g_graphics_mod_manager->GetEFBActions(info)) for (const auto& action : g_graphics_mod_manager->GetEFBActions(info))
{ {
action->OnEFB(&efb); action->OnEFB(&efb);
} }

View File

@ -566,7 +566,7 @@ void VertexManagerBase::Flush()
{ {
bool skip = false; bool skip = false;
GraphicsModActionData::DrawStarted draw_started{&skip}; GraphicsModActionData::DrawStarted draw_started{&skip};
for (const auto action : g_graphics_mod_manager->GetDrawStartedActions(texture_name)) for (const auto& action : g_graphics_mod_manager->GetDrawStartedActions(texture_name))
{ {
action->OnDrawStarted(&draw_started); action->OnDrawStarted(&draw_started);
} }

View File

@ -406,14 +406,14 @@ void VertexShaderManager::SetConstants(const std::vector<std::string>& textures)
std::vector<GraphicsModAction*> projection_actions; std::vector<GraphicsModAction*> projection_actions;
if (g_ActiveConfig.bGraphicMods) if (g_ActiveConfig.bGraphicMods)
{ {
for (const auto action : g_graphics_mod_manager->GetProjectionActions(xfmem.projection.type)) for (const auto& action : g_graphics_mod_manager->GetProjectionActions(xfmem.projection.type))
{ {
projection_actions.push_back(action); projection_actions.push_back(action);
} }
for (const auto& texture : textures) for (const auto& texture : textures)
{ {
for (const auto action : for (const auto& action :
g_graphics_mod_manager->GetProjectionTextureActions(xfmem.projection.type, texture)) g_graphics_mod_manager->GetProjectionTextureActions(xfmem.projection.type, texture))
{ {
projection_actions.push_back(action); projection_actions.push_back(action);
@ -430,7 +430,7 @@ void VertexShaderManager::SetConstants(const std::vector<std::string>& textures)
auto corrected_matrix = LoadProjectionMatrix(); auto corrected_matrix = LoadProjectionMatrix();
GraphicsModActionData::Projection projection{&corrected_matrix}; GraphicsModActionData::Projection projection{&corrected_matrix};
for (auto action : projection_actions) for (const auto& action : projection_actions)
{ {
action->OnProjection(&projection); action->OnProjection(&projection);
} }