summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/Present.cpp
diff options
context:
space:
mode:
authorJordan Woyak <jordan.woyak@gmail.com>2025-11-04 13:57:08 -0600
committerGitHub <noreply@github.com>2025-11-04 13:57:08 -0600
commit7d617878e0a4d61bd1362cb5069b86e82be4723f (patch)
treec4fac7cdff7aeacf983ba65ba0ea8bc1ed9a8f4b /Source/Core/VideoCommon/Present.cpp
parent947ed4aaf69714d6df0209bf1c55bd419ab8a3a3 (diff)
parentf289b06e0db8bba6a3491d6e3cf0c2dd1b7a29fa (diff)
Merge pull request #13626 from jordan-woyak/non-global-hookable-event
Common: Make HookableEvent use non-static data.
Diffstat (limited to 'Source/Core/VideoCommon/Present.cpp')
-rw-r--r--Source/Core/VideoCommon/Present.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/Source/Core/VideoCommon/Present.cpp b/Source/Core/VideoCommon/Present.cpp
index 43f1c8140f..24c767cc69 100644
--- a/Source/Core/VideoCommon/Present.cpp
+++ b/Source/Core/VideoCommon/Present.cpp
@@ -94,8 +94,8 @@ static void TryToSnapToXFBSize(int& width, int& height, int xfb_width, int xfb_h
Presenter::Presenter()
{
- m_config_changed =
- ConfigChangedEvent::Register([this](u32 bits) { ConfigChanged(bits); }, "Presenter");
+ m_config_changed = GetVideoEvents().config_changed_event.Register(
+ [this](u32 bits) { ConfigChanged(bits); }, "Presenter");
}
Presenter::~Presenter()
@@ -195,14 +195,16 @@ void Presenter::ViSwap(u32 xfb_addr, u32 fb_width, u32 fb_stride, u32 fb_height,
}
}
- BeforePresentEvent::Trigger(present_info);
+ auto& video_events = GetVideoEvents();
+
+ video_events.before_present_event.Trigger(present_info);
if (!is_duplicate || !g_ActiveConfig.bSkipPresentingDuplicateXFBs)
{
Present(presentation_time);
ProcessFrameDumping(ticks);
- AfterPresentEvent::Trigger(present_info);
+ video_events.after_present_event.Trigger(present_info);
}
}
@@ -216,12 +218,14 @@ void Presenter::ImmediateSwap(u32 xfb_addr, u32 fb_width, u32 fb_stride, u32 fb_
present_info.reason = PresentInfo::PresentReason::Immediate;
present_info.present_count = m_present_count++;
- BeforePresentEvent::Trigger(present_info);
+ auto& video_events = GetVideoEvents();
+
+ video_events.before_present_event.Trigger(present_info);
Present();
ProcessFrameDumping(ticks);
- AfterPresentEvent::Trigger(present_info);
+ video_events.after_present_event.Trigger(present_info);
}
void Presenter::ProcessFrameDumping(u64 ticks) const
@@ -925,7 +929,7 @@ void Presenter::DoState(PointerWrap& p)
if (p.IsReadMode() && m_last_xfb_stride != 0)
{
// This technically counts as the end of the frame
- AfterFrameEvent::Trigger(Core::System::GetInstance());
+ GetVideoEvents().after_frame_event.Trigger(Core::System::GetInstance());
ImmediateSwap(m_last_xfb_addr, m_last_xfb_width, m_last_xfb_stride, m_last_xfb_height,
m_last_xfb_ticks);