diff --git a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs index 69452f8a0..464a30453 100644 --- a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs @@ -2157,53 +2157,7 @@ namespace Ryujinx.Ava.UI.ViewModels OnPropertyChanged(nameof(ShowEndCaptureButton)); } } - - public static RelayCommand StartRenderDocCapture { get; } = - Commands.CreateConditional(vm => RenderDoc.IsAvailable && !vm.ShowLoadProgress, - viewModel => - { - if (!RenderDoc.IsFrameCapturing) - { - if (viewModel.AppHost.RendererHost - .EmbeddedWindow.StartRenderDocCapture(viewModel.AppHost.Device)) - { - Logger.Info?.Print(LogClass.Application, "Starting RenderDoc capture."); - } - } - viewModel.RenderDocIsCapturing = RenderDoc.IsFrameCapturing; - }); - - public static RelayCommand EndRenderDocCapture { get; } = - Commands.CreateConditional(vm => RenderDoc.IsAvailable && !vm.ShowLoadProgress, - viewModel => - { - if (RenderDoc.IsFrameCapturing) - { - if (viewModel.AppHost.RendererHost.EmbeddedWindow.EndRenderDocCapture()) - { - Logger.Info?.Print(LogClass.Application, "Ended RenderDoc capture."); - } - } - - viewModel.RenderDocIsCapturing = RenderDoc.IsFrameCapturing; - }); - - public static RelayCommand DiscardRenderDocCapture { get; } = - Commands.CreateConditional(vm => RenderDoc.IsAvailable && !vm.ShowLoadProgress, - viewModel => - { - if (RenderDoc.IsFrameCapturing) - { - if (viewModel.AppHost.RendererHost.EmbeddedWindow.DiscardRenderDocCapture()) - { - Logger.Info?.Print(LogClass.Application, "Discarded RenderDoc capture."); - } - } - - viewModel.RenderDocIsCapturing = RenderDoc.IsFrameCapturing; - }); - #endregion } } diff --git a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml index 8e8d0e40f..9464bd87d 100644 --- a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml +++ b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml @@ -6,9 +6,6 @@ xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale" mc:Ignorable="d" xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels" - xmlns:controls="clr-namespace:Ryujinx.Ava.UI.Controls" - xmlns:common="clr-namespace:Ryujinx.Common;assembly=Ryujinx.Common" - xmlns:renderDocApi="clr-namespace:Ryujinx.Graphics.RenderDocApi;assembly=Ryujinx.Graphics.RenderDocApi" x:DataType="viewModels:MainWindowViewModel" x:Class="Ryujinx.Ava.UI.Views.Main.MainMenuBarView"> @@ -232,23 +229,23 @@ IsEnabled="{Binding IsGameRunning}" /> diff --git a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs index ec98e31ba..bbe355c94 100644 --- a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs +++ b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs @@ -9,7 +9,9 @@ using Ryujinx.Ava.UI.Helpers; using Ryujinx.Ava.UI.ViewModels; using Ryujinx.Ava.UI.Windows; using Ryujinx.Common; +using Ryujinx.Common.Logging; using Ryujinx.Common.Utilities; +using Ryujinx.Graphics.RenderDocApi; using Ryujinx.HLE.HOS.Services.Nfc.AmiiboDecryption; using Ryujinx.Modules; using Ryujinx.UI.App.Common; @@ -266,6 +268,52 @@ namespace Ryujinx.Ava.UI.Views.Main } } + public void StartRenderDocCapture_Click(object sender, RoutedEventArgs args) + { + MainWindowViewModel viewModel = (sender as MenuItem)?.DataContext as MainWindowViewModel; + + if (!RenderDoc.IsFrameCapturing && RenderDoc.IsAvailable && viewModel is not { ShowLoadProgress: true }) + { + if (viewModel != null && viewModel.AppHost.RendererHost + .EmbeddedWindow.StartRenderDocCapture(viewModel.AppHost.Device)) + { + Logger.Info?.Print(LogClass.Application, "Starting RenderDoc capture."); + } + } + + viewModel?.RenderDocIsCapturing = RenderDoc.IsFrameCapturing; + } + + public void EndRenderDocCapture_Click(object sender, RoutedEventArgs args) + { + MainWindowViewModel viewModel = (sender as MenuItem)?.DataContext as MainWindowViewModel; + + if (RenderDoc.IsFrameCapturing && RenderDoc.IsAvailable && viewModel is not { ShowLoadProgress: true }) + { + if (viewModel != null && viewModel.AppHost.RendererHost.EmbeddedWindow.EndRenderDocCapture()) + { + Logger.Info?.Print(LogClass.Application, "Ended RenderDoc capture."); + } + } + + viewModel?.RenderDocIsCapturing = RenderDoc.IsFrameCapturing; + } + + public void DiscardRenderDocCapture_Click(object sender, RoutedEventArgs args) + { + MainWindowViewModel viewModel = (sender as MenuItem)?.DataContext as MainWindowViewModel; + + if (RenderDoc.IsFrameCapturing && RenderDoc.IsAvailable && viewModel is not { ShowLoadProgress: true }) + { + if (viewModel != null && viewModel.AppHost.RendererHost.EmbeddedWindow.DiscardRenderDocCapture()) + { + Logger.Info?.Print(LogClass.Application, "Discarded RenderDoc capture."); + } + } + + viewModel?.RenderDocIsCapturing = RenderDoc.IsFrameCapturing; + } + public async void CheckForUpdates(object sender, RoutedEventArgs e) { if (Updater.CanUpdate(true))