diff options
Diffstat (limited to 'Ryujinx.Ava/Ui/Windows')
| -rw-r--r-- | Ryujinx.Ava/Ui/Windows/MainWindow.axaml | 16 | ||||
| -rw-r--r-- | Ryujinx.Ava/Ui/Windows/MainWindow.axaml.cs | 22 | ||||
| -rw-r--r-- | Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml | 102 | ||||
| -rw-r--r-- | Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml.cs | 17 |
4 files changed, 104 insertions, 53 deletions
diff --git a/Ryujinx.Ava/Ui/Windows/MainWindow.axaml b/Ryujinx.Ava/Ui/Windows/MainWindow.axaml index a08ca910..b248a484 100644 --- a/Ryujinx.Ava/Ui/Windows/MainWindow.axaml +++ b/Ryujinx.Ava/Ui/Windows/MainWindow.axaml @@ -721,7 +721,21 @@ HorizontalAlignment="Left" VerticalAlignment="Center" IsVisible="{Binding !ShowLoadProgress}" - Text="{Binding GpuStatusText}" + Text="{Binding BackendText}" + TextAlignment="Left" /> + <Border + Width="2" + Height="12" + Margin="2,0" + BorderBrush="Gray" + BorderThickness="1" + IsVisible="{Binding !ShowLoadProgress}" /> + <TextBlock + Margin="5,0,5,0" + HorizontalAlignment="Left" + VerticalAlignment="Center" + IsVisible="{Binding !ShowLoadProgress}" + Text="{Binding GpuNameText}" TextAlignment="Left" /> </StackPanel> <StackPanel diff --git a/Ryujinx.Ava/Ui/Windows/MainWindow.axaml.cs b/Ryujinx.Ava/Ui/Windows/MainWindow.axaml.cs index a5e3c06a..73e5e099 100644 --- a/Ryujinx.Ava/Ui/Windows/MainWindow.axaml.cs +++ b/Ryujinx.Ava/Ui/Windows/MainWindow.axaml.cs @@ -12,6 +12,7 @@ using Ryujinx.Ava.Ui.Applet; using Ryujinx.Ava.Ui.Controls; using Ryujinx.Ava.Ui.Models; using Ryujinx.Ava.Ui.ViewModels; +using Ryujinx.Ava.Ui.Vulkan; using Ryujinx.Common.Configuration; using Ryujinx.Common.Logging; using Ryujinx.Graphics.Gpu; @@ -59,7 +60,7 @@ namespace Ryujinx.Ava.Ui.Windows internal AppHost AppHost { get; private set; } public InputManager InputManager { get; private set; } - internal RendererControl GlRenderer { get; private set; } + internal RendererControl RendererControl { get; private set; } internal MainWindowViewModel ViewModel { get; private set; } public SettingsWindow SettingsWindow { get; set; } @@ -140,7 +141,8 @@ namespace Ryujinx.Ava.Ui.Windows ViewModel.AspectRatioStatusText = args.AspectRatio; ViewModel.GameStatusText = args.GameStatus; ViewModel.FifoStatusText = args.FifoStatus; - ViewModel.GpuStatusText = args.GpuName; + ViewModel.GpuNameText = args.GpuName; + ViewModel.BackendText = args.GpuBackend; ViewModel.ShowStatusSeparator = true; }); @@ -237,8 +239,8 @@ namespace Ryujinx.Ava.Ui.Windows _mainViewContent = MainContent.Content as Control; - GlRenderer = new RendererControl(3, 3, ConfigurationState.Instance.Logger.GraphicsDebugLevel); - AppHost = new AppHost(GlRenderer, InputManager, path, VirtualFileSystem, ContentManager, AccountManager, _userChannelPersistence, this); + RendererControl = Program.UseVulkan ? new VulkanRendererControl(ConfigurationState.Instance.Logger.GraphicsDebugLevel) : new OpenGLRendererControl(3, 3, ConfigurationState.Instance.Logger.GraphicsDebugLevel); + AppHost = new AppHost(RendererControl, InputManager, path, VirtualFileSystem, ContentManager, AccountManager, _userChannelPersistence, this); if (!AppHost.LoadGuestApplication().Result) { @@ -262,7 +264,7 @@ namespace Ryujinx.Ava.Ui.Windows private void InitializeGame() { - GlRenderer.GlInitialized += GlRenderer_Created; + RendererControl.RendererInitialized += GlRenderer_Created; AppHost.StatusUpdatedEvent += Update_StatusBar; AppHost.AppExit += AppHost_AppExit; @@ -302,14 +304,14 @@ namespace Ryujinx.Ava.Ui.Windows Dispatcher.UIThread.InvokeAsync(() => { - MainContent.Content = GlRenderer; + MainContent.Content = RendererControl; if (startFullscreen && WindowState != WindowState.FullScreen) { ViewModel.ToggleFullscreen(); } - GlRenderer.Focus(); + RendererControl.Focus(); }); } @@ -361,8 +363,9 @@ namespace Ryujinx.Ava.Ui.Windows HandleRelaunch(); }); - GlRenderer.GlInitialized -= GlRenderer_Created; - GlRenderer = null; + + RendererControl.RendererInitialized -= GlRenderer_Created; + RendererControl = null; ViewModel.SelectedIcon = null; @@ -513,6 +516,7 @@ namespace Ryujinx.Ava.Ui.Windows GraphicsConfig.MaxAnisotropy = ConfigurationState.Instance.Graphics.MaxAnisotropy; GraphicsConfig.ShadersDumpPath = ConfigurationState.Instance.Graphics.ShadersDumpPath; GraphicsConfig.EnableShaderCache = ConfigurationState.Instance.Graphics.EnableShaderCache; + GraphicsConfig.EnableTextureRecompression = ConfigurationState.Instance.Graphics.EnableTextureRecompression; } public void LoadHotKeys() diff --git a/Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml b/Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml index 9a9a395e..0e5978b7 100644 --- a/Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml +++ b/Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml @@ -504,43 +504,51 @@ VerticalScrollBarVisibility="Auto"> <Border> <StackPanel - Margin="10, 5" + Margin="10,5" HorizontalAlignment="Stretch" Orientation="Vertical" Spacing="10"> - <TextBlock FontWeight="Bold" Text="{locale:Locale SettingsTabGraphicsEnhancements}" /> + <TextBlock FontWeight="Bold" Text="{locale:Locale SettingsTabGraphicsAPI}" /> <StackPanel Margin="10,0,0,0" Orientation="Vertical" Spacing="10"> - <CheckBox IsChecked="{Binding EnableShaderCache}" - ToolTip.Tip="{locale:Locale ShaderCacheToggleTooltip}"> - <TextBlock Text="{locale:Locale SettingsTabGraphicsEnableShaderCache}" /> - </CheckBox> <StackPanel Orientation="Horizontal"> - <TextBlock VerticalAlignment="Center" - ToolTip.Tip="{locale:Locale AnisotropyTooltip}" - Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering}" - Width="250" /> - <ComboBox SelectedIndex="{Binding MaxAnisotropy}" - Width="350" - HorizontalContentAlignment="Left" - ToolTip.Tip="{locale:Locale AnisotropyTooltip}"> - <ComboBoxItem> - <TextBlock - Text="{locale:Locale SettingsTabGraphicsAnisotropicFilteringAuto}" /> - </ComboBoxItem> - <ComboBoxItem> - <TextBlock Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering2x}" /> - </ComboBoxItem> - <ComboBoxItem> - <TextBlock Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering4x}" /> - </ComboBoxItem> - <ComboBoxItem> - <TextBlock Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering8x}" /> - </ComboBoxItem> - <ComboBoxItem> - <TextBlock - Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering16x}" /> - </ComboBoxItem> - </ComboBox> + <TextBlock VerticalAlignment="Center" + ToolTip.Tip="{locale:Locale SettingsTabGraphicsBackendTooltip}" + Text="{locale:Locale SettingsTabGraphicsBackend}" + Width="250" /> + <ComboBox Width="350" + HorizontalContentAlignment="Left" + ToolTip.Tip="{locale:Locale SettingsTabGraphicsBackendTooltip}" + SelectedIndex="{Binding GraphicsBackendIndex}"> + <ComboBoxItem> + <TextBlock Text="Vulkan" /> + </ComboBoxItem> + <ComboBoxItem> + <TextBlock Text="OpenGL" /> + </ComboBoxItem> + </ComboBox> + </StackPanel> + <StackPanel Orientation="Horizontal" IsVisible="{Binding IsVulkanSelected}"> + <TextBlock VerticalAlignment="Center" + ToolTip.Tip="{locale:Locale SettingsTabGraphicsPreferredGpuTooltip}" + Text="{locale:Locale SettingsTabGraphicsPreferredGpu}" + Width="250" /> + <ComboBox Width="350" + HorizontalContentAlignment="Left" + ToolTip.Tip="{locale:Locale SettingsTabGraphicsPreferredGpuTooltip}" + SelectedIndex="{Binding PreferredGpuIndex}" + Items="{Binding AvailableGpus}"/> + </StackPanel> + <Separator Height="1" /> + <TextBlock FontWeight="Bold" Text="{locale:Locale SettingsTabGraphicsFeatures}" /> + <StackPanel Orientation="Vertical"> + <CheckBox IsChecked="{Binding EnableShaderCache}" + ToolTip.Tip="{locale:Locale ShaderCacheToggleTooltip}"> + <TextBlock Text="{locale:Locale SettingsTabGraphicsEnableShaderCache}" /> + </CheckBox> + <CheckBox IsChecked="{Binding EnableTextureRecompression}" + ToolTip.Tip="{locale:Locale SettingsEnableTextureRecompressionTooltip}"> + <TextBlock Text="{locale:Locale SettingsEnableTextureRecompression}" /> + </CheckBox> </StackPanel> <StackPanel Orientation="Horizontal"> <TextBlock VerticalAlignment="Center" @@ -582,6 +590,34 @@ </StackPanel> <StackPanel Orientation="Horizontal"> <TextBlock VerticalAlignment="Center" + ToolTip.Tip="{locale:Locale AnisotropyTooltip}" + Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering}" + Width="250" /> + <ComboBox SelectedIndex="{Binding MaxAnisotropy}" + Width="350" + HorizontalContentAlignment="Left" + ToolTip.Tip="{locale:Locale AnisotropyTooltip}"> + <ComboBoxItem> + <TextBlock + Text="{locale:Locale SettingsTabGraphicsAnisotropicFilteringAuto}" /> + </ComboBoxItem> + <ComboBoxItem> + <TextBlock Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering2x}" /> + </ComboBoxItem> + <ComboBoxItem> + <TextBlock Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering4x}" /> + </ComboBoxItem> + <ComboBoxItem> + <TextBlock Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering8x}" /> + </ComboBoxItem> + <ComboBoxItem> + <TextBlock + Text="{locale:Locale SettingsTabGraphicsAnisotropicFiltering16x}" /> + </ComboBoxItem> + </ComboBox> + </StackPanel> + <StackPanel Orientation="Horizontal"> + <TextBlock VerticalAlignment="Center" ToolTip.Tip="{locale:Locale AspectRatioTooltip}" Text="{locale:Locale SettingsTabGraphicsAspectRatio}" Width="250" /> @@ -610,8 +646,6 @@ </ComboBox> </StackPanel> </StackPanel> - <Separator Height="1" /> - <TextBlock FontWeight="Bold" Text="{locale:Locale SettingsTabGraphicsFeatures}" /> <StackPanel Margin="10,0,0,0" HorizontalAlignment="Stretch" diff --git a/Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml.cs b/Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml.cs index cdac6ef6..97e9bfed 100644 --- a/Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml.cs +++ b/Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml.cs @@ -1,4 +1,3 @@ -using Avalonia; using Avalonia.Controls; using Avalonia.Controls.Primitives; using Avalonia.Data; @@ -15,9 +14,9 @@ using Ryujinx.Input; using Ryujinx.Input.Assigner; using System; using System.Collections.Generic; -using System.Diagnostics; using System.IO; using System.Linq; +using System.Threading.Tasks; using TimeZone = Ryujinx.Ava.Ui.Models.TimeZone; namespace Ryujinx.Ava.Ui.Windows @@ -97,7 +96,7 @@ namespace Ryujinx.Ava.Ui.Windows } } } - } + } private void Button_Unchecked(object sender, RoutedEventArgs e) { @@ -209,9 +208,9 @@ namespace Ryujinx.Ava.Ui.Windows } } - private void SaveButton_Clicked(object sender, RoutedEventArgs e) + private async void SaveButton_Clicked(object sender, RoutedEventArgs e) { - SaveSettings(); + await SaveSettings(); Close(); } @@ -222,14 +221,14 @@ namespace Ryujinx.Ava.Ui.Windows Close(); } - private void ApplyButton_Clicked(object sender, RoutedEventArgs e) + private async void ApplyButton_Clicked(object sender, RoutedEventArgs e) { - SaveSettings(); + await SaveSettings(); } - private void SaveSettings() + private async Task SaveSettings() { - ViewModel.SaveSettings(); + await ViewModel.SaveSettings(); ControllerSettings?.SaveCurrentProfile(); |
