From 43f7b000ca0eb17d9e9df6eac23eff0812474218 Mon Sep 17 00:00:00 2001 From: Evan Husted Date: Tue, 11 Feb 2025 20:08:38 -0600 Subject: [PATCH 1/3] misc: chore: Optimize AboutWindowViewModel resource disposal --- .../UI/ViewModels/AboutWindowViewModel.cs | 16 +++++++++++----- src/Ryujinx/UI/Windows/AboutWindow.axaml.cs | 6 +++--- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/Ryujinx/UI/ViewModels/AboutWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/AboutWindowViewModel.cs index 10256babe..be0a5d644 100644 --- a/src/Ryujinx/UI/ViewModels/AboutWindowViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/AboutWindowViewModel.cs @@ -2,6 +2,7 @@ using Avalonia.Media.Imaging; using Avalonia.Styling; using Avalonia.Threading; using CommunityToolkit.Mvvm.ComponentModel; +using Gommon; using Ryujinx.Ava.Common; using Ryujinx.Ava.Common.Locale; using Ryujinx.Ava.Utilities.Configuration; @@ -32,15 +33,16 @@ namespace Ryujinx.Ava.UI.ViewModels Dispatcher.UIThread.Post(() => UpdateLogoTheme(ConfigurationState.Instance.UI.BaseStyle.Value)); } + private const string LogoPathFormat = "resm:Ryujinx.Assets.UIImages.Logo_{0}_{1}.png?assembly=Ryujinx"; + private void UpdateLogoTheme(string theme) { bool isDarkTheme = theme == "Dark" || (theme == "Auto" && RyujinxApp.DetectSystemTheme() == ThemeVariant.Dark); + + string themeName = isDarkTheme ? "Dark" : "Light"; - string basePath = "resm:Ryujinx.Assets.UIImages."; - string themeSuffix = isDarkTheme ? "Dark.png" : "Light.png"; - - GithubLogo = LoadBitmap($"{basePath}Logo_GitHub_{themeSuffix}?assembly=Ryujinx"); - DiscordLogo = LoadBitmap($"{basePath}Logo_Discord_{themeSuffix}?assembly=Ryujinx"); + GithubLogo = LoadBitmap(LogoPathFormat.Format("GitHub", themeName)); + DiscordLogo = LoadBitmap(LogoPathFormat.Format("Discord", themeName)); } private static Bitmap LoadBitmap(string uri) => new(Avalonia.Platform.AssetLoader.Open(new Uri(uri))); @@ -48,6 +50,10 @@ namespace Ryujinx.Ava.UI.ViewModels public void Dispose() { ThemeManager.ThemeChanged -= ThemeManager_ThemeChanged; + + GithubLogo.Dispose(); + DiscordLogo.Dispose(); + GC.SuppressFinalize(this); } } diff --git a/src/Ryujinx/UI/Windows/AboutWindow.axaml.cs b/src/Ryujinx/UI/Windows/AboutWindow.axaml.cs index b9736b81d..801748a8c 100644 --- a/src/Ryujinx/UI/Windows/AboutWindow.axaml.cs +++ b/src/Ryujinx/UI/Windows/AboutWindow.axaml.cs @@ -18,8 +18,6 @@ namespace Ryujinx.Ava.UI.Windows { public AboutWindow() { - DataContext = new AboutWindowViewModel(); - InitializeComponent(); GitHubRepoButton.Tag = @@ -28,12 +26,14 @@ namespace Ryujinx.Ava.UI.Windows public static async Task Show() { + using AboutWindowViewModel viewModel = new(); + ContentDialog contentDialog = new() { PrimaryButtonText = string.Empty, SecondaryButtonText = string.Empty, CloseButtonText = LocaleManager.Instance[LocaleKeys.UserProfilesClose], - Content = new AboutWindow() + Content = new AboutWindow { DataContext = viewModel } }; Style closeButton = new(x => x.Name("CloseButton")); From 05b56730d6017c446457fe23d3246e6eafc0ab27 Mon Sep 17 00:00:00 2001 From: Evan Husted Date: Tue, 11 Feb 2025 20:22:09 -0600 Subject: [PATCH 2/3] docs: compat: remove title ID column from compat entries for homebrew --- docs/compatibility.csv | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/compatibility.csv b/docs/compatibility.csv index 4cf9102bd..660c7a9b0 100644 --- a/docs/compatibility.csv +++ b/docs/compatibility.csv @@ -2063,7 +2063,7 @@ 010002700C34C000,"Numbala",,playable,2020-05-11 12:01:07 010020500C8C8000,"Number Place 10000",gpu,menus,2021-11-24 09:14:23 010003701002C000,"Nurse Love Syndrome",,playable,2022-10-13 10:05:22 -0000000000000000,"nx-hbmenu",Needs Update;homebrew,boots,2024-04-06 22:05:32 +,"nx-hbmenu",Needs Update;homebrew,boots,2024-04-06 22:05:32 ,"nxquake2",services;crash;homebrew,nothing,2022-08-04 23:14:04 010049F00EC30000,"Nyan Cat: Lost in Space",online,playable,2021-06-12 13:22:03 01002E6014FC4000,"O---O",,playable,2022-10-29 12:12:14 @@ -2471,7 +2471,7 @@ 0100AFE00DDAC000,"Royal Roads",,playable,2020-11-17 12:54:38 0100E2C00B414000,"RPG Maker MV",nvdec,playable,2021-01-05 20:12:01 01005CD015986000,"rRootage Reloaded",,playable,2022-08-05 23:20:18 -0000000000000000,"RSDKv5u",homebrew,ingame,2024-04-01 16:25:34 +,"RSDKv5u",homebrew,ingame,2024-04-01 16:25:34 010009B00D33C000,"Rugby Challenge 4",slow;online-broken;UE4,playable,2022-10-06 12:45:53 01006EC00F2CC000,"RUINER",UE4,playable,2022-10-03 14:11:33 010074F00DE4A000,"Run the Fan",,playable,2021-02-27 13:36:28 @@ -2674,10 +2674,10 @@ 01004F401BEBE000,"Song of Nunu: A League of Legends Story",,ingame,2024-07-12 18:53:44 0100E5400BF94000,"Songbird Symphony",,playable,2021-02-27 02:44:04 010031D00A604000,"Songbringer",,playable,2020-06-22 10:42:02 -0000000000000000,"Sonic 1 (2013)",crash;homebrew,ingame,2024-04-06 18:31:20 -0000000000000000,"Sonic 2 (2013)",crash;homebrew,ingame,2024-04-01 16:25:30 -0000000000000000,"Sonic A.I.R",homebrew,ingame,2024-04-01 16:25:32 -0000000000000000,"Sonic CD",crash;homebrew,ingame,2024-04-01 16:25:31 +,"Sonic 1 (2013)",crash;homebrew,ingame,2024-04-06 18:31:20 +,"Sonic 2 (2013)",crash;homebrew,ingame,2024-04-01 16:25:30 +,"Sonic A.I.R",homebrew,ingame,2024-04-01 16:25:32 +,"Sonic CD",crash;homebrew,ingame,2024-04-01 16:25:31 010040E0116B8000,"Sonic Colors: Ultimate",,playable,2022-11-12 21:24:26 01001270012B6000,"SONIC FORCES™",,playable,2024-07-28 13:11:21 01004AD014BF0000,"Sonic Frontiers",gpu;deadlock;amd-vendor-bug;intel-vendor-bug,ingame,2024-09-05 09:18:53 @@ -2694,7 +2694,7 @@ 0100707011722000,"Space Elite Force",,playable,2020-11-27 15:21:05 010047B010260000,"Space Pioneer",,playable,2022-10-20 12:24:37 010010A009830000,"Space Ribbon",,playable,2022-08-15 17:17:10 -0000000000000000,"SpaceCadetPinball",homebrew,ingame,2024-04-18 19:30:04 +,"SpaceCadetPinball",homebrew,ingame,2024-04-18 19:30:04 0100D9B0041CE000,"Spacecats with Lasers",,playable,2022-08-15 17:22:44 010034800FB60000,"Spaceland",,playable,2020-11-01 14:31:56 010028D0045CE000,"Sparkle 2",,playable,2020-10-19 11:51:39 @@ -2839,7 +2839,7 @@ 0100000000010000,"Super Mario Odyssey™",nvdec;intel-vendor-bug;mac-bug,playable,2024-08-25 01:32:34 010036B0034E4000,"Super Mario Party™",gpu;Needs Update;ldn-works,ingame,2024-06-21 05:10:16 0100BC0018138000,"Super Mario RPG™",gpu;audio;nvdec,ingame,2024-06-19 17:43:42 -0000000000000000,"Super Mario World",homebrew,boots,2024-06-13 01:40:31 +,"Super Mario World",homebrew,boots,2024-06-13 01:40:31 010049900F546000,"Super Mario™ 3D All-Stars",services-horizon;slow;vulkan;amd-vendor-bug,ingame,2024-05-07 02:38:16 010028600EBDA000,"Super Mario™ 3D World + Bowser’s Fury",ldn-works,playable,2024-07-31 10:45:37 01004F8006A78000,"Super Meat Boy",services,playable,2020-04-02 23:10:07 From c5603d4c36405c09df8d6d4e10d293a0bff21b94 Mon Sep 17 00:00:00 2001 From: Evan Husted Date: Tue, 11 Feb 2025 20:22:29 -0600 Subject: [PATCH 3/3] UI: Make about window text bigger and add a separator in the right side --- src/Ryujinx/UI/Windows/AboutWindow.axaml | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/Ryujinx/UI/Windows/AboutWindow.axaml b/src/Ryujinx/UI/Windows/AboutWindow.axaml index 2226883fc..e215cf27e 100644 --- a/src/Ryujinx/UI/Windows/AboutWindow.axaml +++ b/src/Ryujinx/UI/Windows/AboutWindow.axaml @@ -142,42 +142,40 @@ + VerticalAlignment="Stretch" RowDefinitions="Auto,Auto,Auto"> +