VideoCommon: don't do pointer copies during graphics mod callback iteration
This commit is contained in:
parent
6d7bf60071
commit
a2ad3ca6f7
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue