Просмотр исходного кода

Recreate swapchain correctly when toggling VSync (#6521)

Co-authored-by: jcm <butt@butts.com>
jcm 2 лет назад
Родитель
Сommit
f6d24449b6
2 измененных файлов с 8 добавлено и 3 удалено
  1. 7 2
      src/Ryujinx/AppHost.cs
  2. 1 1
      src/Ryujinx/UI/Views/Main/MainStatusBarView.axaml.cs

+ 7 - 2
src/Ryujinx/AppHost.cs

@@ -420,6 +420,12 @@ namespace Ryujinx.Ava
             Device.Configuration.MultiplayerMode = e.NewValue;
         }
 
+        public void ToggleVSync()
+        {
+            Device.EnableDeviceVsync = !Device.EnableDeviceVsync;
+            _renderer.Window.ChangeVSyncMode(Device.EnableDeviceVsync);
+        }
+
         public void Stop()
         {
             _isActive = false;
@@ -1068,8 +1074,7 @@ namespace Ryujinx.Ava
                     switch (currentHotkeyState)
                     {
                         case KeyboardHotkeyState.ToggleVSync:
-                            Device.EnableDeviceVsync = !Device.EnableDeviceVsync;
-
+                            ToggleVSync();
                             break;
                         case KeyboardHotkeyState.Screenshot:
                             ScreenshotRequested = true;

+ 1 - 1
src/Ryujinx/UI/Views/Main/MainStatusBarView.axaml.cs

@@ -33,7 +33,7 @@ namespace Ryujinx.Ava.UI.Views.Main
 
         private void VsyncStatus_PointerReleased(object sender, PointerReleasedEventArgs e)
         {
-            Window.ViewModel.AppHost.Device.EnableDeviceVsync = !Window.ViewModel.AppHost.Device.EnableDeviceVsync;
+            Window.ViewModel.AppHost.ToggleVSync();
 
             Logger.Info?.Print(LogClass.Application, $"VSync toggled to: {Window.ViewModel.AppHost.Device.EnableDeviceVsync}");
         }