aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Ava/Ui/Windows
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Ava/Ui/Windows')
-rw-r--r--Ryujinx.Ava/Ui/Windows/MainWindow.axaml16
-rw-r--r--Ryujinx.Ava/Ui/Windows/MainWindow.axaml.cs22
-rw-r--r--Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml102
-rw-r--r--Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml.cs17
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();