summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/GraphicsModSystem/Runtime
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/VideoCommon/GraphicsModSystem/Runtime')
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.cpp2
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.h2
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/ScaleAction.cpp2
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/ScaleAction.h2
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/SkipAction.cpp2
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/SkipAction.h2
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h5
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionData.h8
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp10
9 files changed, 24 insertions, 11 deletions
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.cpp
index 1bd288512c..ca50a9a430 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.cpp
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.cpp
@@ -10,7 +10,7 @@ void PrintAction::OnDrawStarted(GraphicsModActionData::DrawStarted*)
INFO_LOG_FMT(VIDEO, "OnDrawStarted Called");
}
-void PrintAction::OnEFB(GraphicsModActionData::EFB* efb)
+void PrintAction::BeforeEFB(GraphicsModActionData::PreEFB* efb)
{
if (!efb) [[unlikely]]
return;
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.h b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.h
index 82a21c152f..55bd694a6e 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.h
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/PrintAction.h
@@ -12,7 +12,7 @@ class PrintAction final : public GraphicsModAction
public:
static constexpr std::string_view factory_name = "print";
void OnDrawStarted(GraphicsModActionData::DrawStarted*) override;
- void OnEFB(GraphicsModActionData::EFB*) override;
+ void BeforeEFB(GraphicsModActionData::PreEFB*) override;
void OnProjection(GraphicsModActionData::Projection*) override;
void OnProjectionAndTexture(GraphicsModActionData::Projection*) override;
void OnTextureLoad(GraphicsModActionData::TextureLoad*) override;
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/ScaleAction.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/ScaleAction.cpp
index 305cd8b737..6db08b8351 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/ScaleAction.cpp
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/ScaleAction.cpp
@@ -30,7 +30,7 @@ ScaleAction::ScaleAction(Common::Vec3 scale) : m_scale(scale)
{
}
-void ScaleAction::OnEFB(GraphicsModActionData::EFB* efb)
+void ScaleAction::BeforeEFB(GraphicsModActionData::PreEFB* efb)
{
if (!efb) [[unlikely]]
return;
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/ScaleAction.h b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/ScaleAction.h
index 4673ed2d18..2ed9d71393 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/ScaleAction.h
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/ScaleAction.h
@@ -16,7 +16,7 @@ public:
static constexpr std::string_view factory_name = "scale";
static std::unique_ptr<ScaleAction> Create(const picojson::value& json_data);
explicit ScaleAction(Common::Vec3 scale);
- void OnEFB(GraphicsModActionData::EFB*) override;
+ void BeforeEFB(GraphicsModActionData::PreEFB*) override;
void OnProjection(GraphicsModActionData::Projection*) override;
void OnProjectionAndTexture(GraphicsModActionData::Projection*) override;
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/SkipAction.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/SkipAction.cpp
index b693fef4f7..3473826fc5 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/SkipAction.cpp
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/SkipAction.cpp
@@ -14,7 +14,7 @@ void SkipAction::OnDrawStarted(GraphicsModActionData::DrawStarted* draw_started)
*draw_started->skip = true;
}
-void SkipAction::OnEFB(GraphicsModActionData::EFB* efb)
+void SkipAction::BeforeEFB(GraphicsModActionData::PreEFB* efb)
{
if (!efb) [[unlikely]]
return;
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/SkipAction.h b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/SkipAction.h
index 8cda643c5a..df397802ae 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/SkipAction.h
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/SkipAction.h
@@ -10,5 +10,5 @@ class SkipAction final : public GraphicsModAction
public:
static constexpr std::string_view factory_name = "skip";
void OnDrawStarted(GraphicsModActionData::DrawStarted*) override;
- void OnEFB(GraphicsModActionData::EFB*) override;
+ void BeforeEFB(GraphicsModActionData::PreEFB*) override;
};
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h
index 04a371a73e..5719d550fe 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h
@@ -16,8 +16,9 @@ public:
GraphicsModAction& operator=(GraphicsModAction&&) = default;
virtual void OnDrawStarted(GraphicsModActionData::DrawStarted*) {}
- virtual void OnEFB(GraphicsModActionData::EFB*) {}
- virtual void OnXFB() {}
+ virtual void BeforeEFB(GraphicsModActionData::PreEFB*) {}
+ virtual void AfterEFB(GraphicsModActionData::PostEFB*) {}
+ virtual void BeforeXFB() {}
virtual void OnProjection(GraphicsModActionData::Projection*) {}
virtual void OnProjectionAndTexture(GraphicsModActionData::Projection*) {}
virtual void OnTextureLoad(GraphicsModActionData::TextureLoad*) {}
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionData.h b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionData.h
index a4e883ffc2..e82c87e0e4 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionData.h
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionData.h
@@ -12,6 +12,7 @@
#include "Common/Matrix.h"
#include "Common/SmallVector.h"
#include "VideoCommon/Assets/TextureAsset.h"
+#include "VideoCommon/Resources/MaterialResource.h"
#include "VideoCommon/ShaderGenCommon.h"
namespace GraphicsModActionData
@@ -24,7 +25,7 @@ struct DrawStarted
std::span<u8>* material_uniform_buffer;
};
-struct EFB
+struct PreEFB
{
u32 texture_width;
u32 texture_height;
@@ -33,6 +34,11 @@ struct EFB
u32* scaled_height;
};
+struct PostEFB
+{
+ VideoCommon::MaterialResource* material = nullptr;
+};
+
struct Projection
{
Common::Matrix44* matrix;
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp
index 79f19fe325..d97fb49d58 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp
@@ -36,11 +36,17 @@ public:
return;
m_action_impl->OnDrawStarted(draw_started);
}
- void OnEFB(GraphicsModActionData::EFB* efb) override
+ void BeforeEFB(GraphicsModActionData::PreEFB* efb) override
{
if (!m_mod.m_enabled)
return;
- m_action_impl->OnEFB(efb);
+ m_action_impl->BeforeEFB(efb);
+ }
+ void AfterEFB(GraphicsModActionData::PostEFB* efb) override
+ {
+ if (!m_mod.m_enabled)
+ return;
+ m_action_impl->AfterEFB(efb);
}
void OnProjection(GraphicsModActionData::Projection* projection) override
{