From f289b06e0db8bba6a3491d6e3cf0c2dd1b7a29fa Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sat, 3 May 2025 02:48:44 -0500 Subject: Common: Make HookableEvent use non-static data. Co-authored-by: Dentomologist --- Source/Core/VideoCommon/VideoConfig.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'Source/Core/VideoCommon/VideoConfig.cpp') diff --git a/Source/Core/VideoCommon/VideoConfig.cpp b/Source/Core/VideoCommon/VideoConfig.cpp index 0214dab9dd..63d061e684 100644 --- a/Source/Core/VideoCommon/VideoConfig.cpp +++ b/Source/Core/VideoCommon/VideoConfig.cpp @@ -38,6 +38,7 @@ VideoConfig g_ActiveConfig; BackendInfo g_backend_info; static std::optional s_config_changed_callback_id = std::nullopt; +static Common::EventHook s_check_config_event; static bool IsVSyncActive(bool enabled) { @@ -218,8 +219,16 @@ void VideoConfig::VerifyValidity() } } +void VideoConfig::Init() +{ + s_check_config_event = GetVideoEvents().after_frame_event.Register( + [](Core::System&) { CheckForConfigChanges(); }, "CheckForConfigChanges"); +} + void VideoConfig::Shutdown() { + s_check_config_event.reset(); + if (!s_config_changed_callback_id.has_value()) return; @@ -390,10 +399,7 @@ void CheckForConfigChanges() } // Notify all listeners - ConfigChangedEvent::Trigger(changed_bits); + GetVideoEvents().config_changed_event.Trigger(changed_bits); // TODO: Move everything else to the ConfigChanged event } - -static Common::EventHook s_check_config_event = AfterFrameEvent::Register( - [](Core::System&) { CheckForConfigChanges(); }, "CheckForConfigChanges"); -- cgit v1.2.3