From 6ba2d2e081c991835892acd912c00c5ea39902a0 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Mon, 17 Nov 2025 18:29:48 -0600 Subject: VideoCommon: update graphics mod action interface * Add a 'AfterEFB' function to graphics mod action that can return a Material * Rename previous EFB graphics mod function to 'BeforeEFB' to differentiate from 'AfterEFB' * Rename previous XFB graphics mod function to 'BeforeXFB' to mirror EFB --- .../GraphicsModSystem/Runtime/GraphicsModManager.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp') 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 { -- cgit v1.2.3 From 9cde551e29565b8e8e1c68ed60e9c22e388acc7b Mon Sep 17 00:00:00 2001 From: iwubcode Date: Mon, 17 Nov 2025 18:43:36 -0600 Subject: VideoCommon: watch the user and system graphics mods directories for modified assets --- .../Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp') diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp index d97fb49d58..5f9cf48d52 100644 --- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp @@ -7,6 +7,7 @@ #include #include +#include "Common/FileUtil.h" #include "Common/Logging/Log.h" #include "Common/StringUtil.h" #include "Common/VariantUtil.h" @@ -17,6 +18,7 @@ #include "VideoCommon/GraphicsModSystem/Config/GraphicsMod.h" #include "VideoCommon/GraphicsModSystem/Config/GraphicsModAsset.h" #include "VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h" +#include "VideoCommon/GraphicsModSystem/Constants.h" #include "VideoCommon/GraphicsModSystem/Runtime/GraphicsModActionFactory.h" #include "VideoCommon/VideoConfig.h" #include "VideoCommon/VideoEvents.h" @@ -197,6 +199,8 @@ void GraphicsModManager::Load(const GraphicsModGroupConfig& config) const auto& mods = config.GetMods(); auto filesystem_library = std::make_shared(); + filesystem_library->Watch(File::GetSysDirectory() + DOLPHIN_SYSTEM_GRAPHICS_MOD_DIR); + filesystem_library->Watch(File::GetUserPath(D_GRAPHICSMOD_IDX)); std::map> group_to_targets; for (const auto& mod : mods) -- cgit v1.2.3