summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/GraphicsModSystem
diff options
context:
space:
mode:
authoriwubcode <iwubcode@users.noreply.github.com>2022-10-28 19:24:43 -0500
committeriwubcode <iwubcode@users.noreply.github.com>2022-10-28 19:24:43 -0500
commitea3e133200cda61f2e87a6e942f89e76b2c6f4fc (patch)
tree0bee608e114094d8b336b12ad983a4418721092c /Source/Core/VideoCommon/GraphicsModSystem
parent8efd7833e58092cb3074d477beef5803b62bc044 (diff)
VideoCommon: call texture load graphics mod hook when Dolphin loads a texture
Diffstat (limited to 'Source/Core/VideoCommon/GraphicsModSystem')
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.cpp7
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.h2
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h2
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionData.h6
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp12
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.h2
6 files changed, 20 insertions, 11 deletions
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.cpp
index e131b4ee1e..1bd288512c 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.cpp
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.cpp
@@ -35,7 +35,10 @@ void PrintAction::OnProjectionAndTexture(GraphicsModActionData::Projection*)
INFO_LOG_FMT(VIDEO, "OnProjectionAndTexture Called");
}
-void PrintAction::OnTextureLoad()
+void PrintAction::OnTextureLoad(GraphicsModActionData::TextureLoad* texture_load)
{
- INFO_LOG_FMT(VIDEO, "OnTextureLoad Called");
+ if (!texture_load) [[unlikely]]
+ return;
+
+ INFO_LOG_FMT(VIDEO, "OnTextureLoad Called. Texture: {}", texture_load->texture_name);
}
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.h b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.h
index 6474eeb5f0..73a8103ad4 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.h
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.h
@@ -12,5 +12,5 @@ public:
void OnEFB(GraphicsModActionData::EFB*) override;
void OnProjection(GraphicsModActionData::Projection*) override;
void OnProjectionAndTexture(GraphicsModActionData::Projection*) override;
- void OnTextureLoad() override;
+ void OnTextureLoad(GraphicsModActionData::TextureLoad*) override;
};
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h
index c8ef469190..a7b366122d 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h
@@ -20,6 +20,6 @@ public:
virtual void OnXFB() {}
virtual void OnProjection(GraphicsModActionData::Projection*) {}
virtual void OnProjectionAndTexture(GraphicsModActionData::Projection*) {}
- virtual void OnTextureLoad() {}
+ virtual void OnTextureLoad(GraphicsModActionData::TextureLoad*) {}
virtual void OnFrameEnd() {}
};
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionData.h b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionData.h
index c073adc445..14f2e3a9b3 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionData.h
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionData.h
@@ -3,6 +3,8 @@
#pragma once
+#include <string_view>
+
#include "Common/CommonTypes.h"
#include "Common/Matrix.h"
@@ -26,4 +28,8 @@ struct Projection
{
Common::Matrix44* matrix;
};
+struct TextureLoad
+{
+ std::string_view texture_name;
+};
} // namespace GraphicsModActionData
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp
index db978646ae..7441f210fa 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp
@@ -46,11 +46,11 @@ public:
return;
m_action_impl->OnProjectionAndTexture(projection);
}
- void OnTextureLoad() override
+ void OnTextureLoad(GraphicsModActionData::TextureLoad* texture_load) override
{
if (!m_mod.m_enabled)
return;
- m_action_impl->OnTextureLoad();
+ m_action_impl->OnTextureLoad(texture_load);
}
void OnFrameEnd() override
{
@@ -105,8 +105,8 @@ GraphicsModManager::GetDrawStartedActions(const std::string& texture_name) const
const std::vector<GraphicsModAction*>&
GraphicsModManager::GetTextureLoadActions(const std::string& texture_name) const
{
- if (const auto it = m_load_target_to_actions.find(texture_name);
- it != m_load_target_to_actions.end())
+ if (const auto it = m_load_texture_target_to_actions.find(texture_name);
+ it != m_load_texture_target_to_actions.end())
{
return it->second;
}
@@ -196,7 +196,7 @@ void GraphicsModManager::Load(const GraphicsModGroupConfig& config)
m_actions.back().get());
},
[&](const LoadTextureTarget& the_target) {
- m_load_target_to_actions[the_target.m_texture_info_string].push_back(
+ m_load_texture_target_to_actions[the_target.m_texture_info_string].push_back(
m_actions.back().get());
},
[&](const EFBTarget& the_target) {
@@ -272,7 +272,7 @@ void GraphicsModManager::Reset()
m_projection_target_to_actions.clear();
m_projection_texture_target_to_actions.clear();
m_draw_started_target_to_actions.clear();
- m_load_target_to_actions.clear();
+ m_load_texture_target_to_actions.clear();
m_efb_target_to_actions.clear();
m_xfb_target_to_actions.clear();
}
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.h b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.h
index 5151b85dbd..1775e3b0e3 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.h
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.h
@@ -46,7 +46,7 @@ private:
std::unordered_map<std::string, std::vector<GraphicsModAction*>>
m_projection_texture_target_to_actions;
std::unordered_map<std::string, std::vector<GraphicsModAction*>> m_draw_started_target_to_actions;
- std::unordered_map<std::string, std::vector<GraphicsModAction*>> m_load_target_to_actions;
+ std::unordered_map<std::string, std::vector<GraphicsModAction*>> m_load_texture_target_to_actions;
std::unordered_map<FBInfo, std::vector<GraphicsModAction*>, FBInfoHasher> m_efb_target_to_actions;
std::unordered_map<FBInfo, std::vector<GraphicsModAction*>, FBInfoHasher> m_xfb_target_to_actions;