From 04ce7fb764a0226a5046deab5ce27cecc16f91ba Mon Sep 17 00:00:00 2001 From: Evan Husted Date: Thu, 30 Jan 2025 16:53:55 -0600 Subject: [PATCH] misc: chore: [ci skip] VSync progression as an extension --- src/Ryujinx.Common/Configuration/VSyncMode.cs | 12 +++++++++++ src/Ryujinx/AppHost.cs | 21 ++++--------------- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/src/Ryujinx.Common/Configuration/VSyncMode.cs b/src/Ryujinx.Common/Configuration/VSyncMode.cs index ca93b5e1c..e0bf2591f 100644 --- a/src/Ryujinx.Common/Configuration/VSyncMode.cs +++ b/src/Ryujinx.Common/Configuration/VSyncMode.cs @@ -6,4 +6,16 @@ namespace Ryujinx.Common.Configuration Unbounded, Custom } + + public static class VSyncModeExtensions + { + public static VSyncMode Next(this VSyncMode vsync, bool customEnabled = false) => + vsync switch + { + VSyncMode.Switch => customEnabled ? VSyncMode.Custom : VSyncMode.Unbounded, + VSyncMode.Unbounded => VSyncMode.Switch, + VSyncMode.Custom => VSyncMode.Unbounded, + _ => VSyncMode.Switch + }; + } } diff --git a/src/Ryujinx/AppHost.cs b/src/Ryujinx/AppHost.cs index 15e371ca4..d12795963 100644 --- a/src/Ryujinx/AppHost.cs +++ b/src/Ryujinx/AppHost.cs @@ -319,25 +319,12 @@ namespace Ryujinx.Ava public void VSyncModeToggle() { VSyncMode oldVSyncMode = Device.VSyncMode; - VSyncMode newVSyncMode = VSyncMode.Switch; bool customVSyncIntervalEnabled = ConfigurationState.Instance.Graphics.EnableCustomVSyncInterval.Value; - switch (oldVSyncMode) - { - case VSyncMode.Switch: - newVSyncMode = customVSyncIntervalEnabled - ? VSyncMode.Custom - : VSyncMode.Unbounded; - break; - case VSyncMode.Unbounded: - newVSyncMode = VSyncMode.Switch; - break; - case VSyncMode.Custom: - newVSyncMode = VSyncMode.Unbounded; - break; - } - - UpdateVSyncMode(this, new ReactiveEventArgs(oldVSyncMode, newVSyncMode)); + UpdateVSyncMode(this, new ReactiveEventArgs( + oldVSyncMode, + oldVSyncMode.Next(customVSyncIntervalEnabled)) + ); } private void UpdateCustomVSyncIntervalValue(object sender, ReactiveEventArgs e)