From c8c5b9bbfbc476c3f59f4d13b4b5b2e58aa0f96c Mon Sep 17 00:00:00 2001 From: GreemDev Date: Sun, 30 Nov 2025 15:58:52 -0600 Subject: [PATCH] rewrite EmbeddedAvaloniaResources --- .../Common/EmbeddedAvaloniaResources.cs | 31 ------------------ src/Ryujinx/Common/UIImages.cs | 32 +++++++++++++++++++ .../UI/SetupWizard/RyujinxSetupWizard.cs | 4 +-- .../UI/ViewModels/AboutWindowViewModel.cs | 4 +-- 4 files changed, 36 insertions(+), 35 deletions(-) delete mode 100644 src/Ryujinx/Common/EmbeddedAvaloniaResources.cs create mode 100644 src/Ryujinx/Common/UIImages.cs diff --git a/src/Ryujinx/Common/EmbeddedAvaloniaResources.cs b/src/Ryujinx/Common/EmbeddedAvaloniaResources.cs deleted file mode 100644 index 57be9da4a..000000000 --- a/src/Ryujinx/Common/EmbeddedAvaloniaResources.cs +++ /dev/null @@ -1,31 +0,0 @@ -using Avalonia.Media.Imaging; -using Avalonia.Platform; -using Avalonia.Styling; -using Gommon; -using System; - -namespace Ryujinx.Ava.Common -{ - public static class EmbeddedAvaloniaResources - { - public const string LogoPathFormat = "resm:Ryujinx.Assets.UIImages.Logo_{0}_{1}.png?assembly=Ryujinx"; - - public static Bitmap LoadBitmap(string uri) - => new(AssetLoader.Open(new Uri(uri))); - - public static Bitmap GetIconByNameAndTheme(string iconName, bool isDarkTheme) - { - string themeName = isDarkTheme ? "Dark" : "Light"; - - return LoadBitmap(LogoPathFormat.Format(iconName, themeName)); - } - - public static Bitmap GetIconByNameAndTheme(string iconName, string theme) - { - bool isDarkTheme = theme == "Dark" || - (theme == "Auto" && RyujinxApp.DetectSystemTheme() == ThemeVariant.Dark); - - return GetIconByNameAndTheme(iconName, isDarkTheme); - } - } -} diff --git a/src/Ryujinx/Common/UIImages.cs b/src/Ryujinx/Common/UIImages.cs new file mode 100644 index 000000000..2483e623d --- /dev/null +++ b/src/Ryujinx/Common/UIImages.cs @@ -0,0 +1,32 @@ +using Avalonia.Media.Imaging; +using Avalonia.Platform; +using Gommon; +using System; + +namespace Ryujinx.Ava.Common +{ + // ReSharper disable once InconsistentNaming + // UiImages is ugly, so no + public static class UIImages + { + public const string LogoPathFormat = "resm:Ryujinx.Assets.UIImages.Logo_{0}_{1}.png?assembly=Ryujinx"; + public const string IconPathFormat = "resm:Ryujinx.Assets.UIImages.Icon_{0}.png?assembly=Ryujinx"; + + public static Bitmap LoadBitmap(string uri) + => new(AssetLoader.Open(new Uri(uri))); + + public static Bitmap GetIconByName(string iconName) + => LoadBitmap(IconPathFormat.Format(iconName)); + + public static Bitmap GetLogoByNameAndTheme(string iconName, bool isDarkTheme) => + LoadBitmap(LogoPathFormat.Format(iconName, + isDarkTheme + ? "Dark" + : "Light" + ) + ); + + public static Bitmap GetLogoByNameAndVariant(string iconName, string theme) + => LoadBitmap(LogoPathFormat.Format(iconName, theme)); + } +} diff --git a/src/Ryujinx/UI/SetupWizard/RyujinxSetupWizard.cs b/src/Ryujinx/UI/SetupWizard/RyujinxSetupWizard.cs index ccf906bfa..e34e62e2f 100644 --- a/src/Ryujinx/UI/SetupWizard/RyujinxSetupWizard.cs +++ b/src/Ryujinx/UI/SetupWizard/RyujinxSetupWizard.cs @@ -109,8 +109,8 @@ namespace Ryujinx.Ava.UI.SetupWizard bool isDarkTheme = theme == "Dark" || (theme == "Auto" && RyujinxApp.DetectSystemTheme() == ThemeVariant.Dark); - DiscordLogo = EmbeddedAvaloniaResources - .GetIconByNameAndTheme("Discord", isDarkTheme) + DiscordLogo = UIImages + .GetLogoByNameAndTheme("Discord", isDarkTheme) .CreateScaledBitmap(new PixelSize(32, 24)); } diff --git a/src/Ryujinx/UI/ViewModels/AboutWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/AboutWindowViewModel.cs index cee9ad370..70205cb93 100644 --- a/src/Ryujinx/UI/ViewModels/AboutWindowViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/AboutWindowViewModel.cs @@ -42,9 +42,9 @@ namespace Ryujinx.Ava.UI.ViewModels bool isDarkTheme = theme == "Dark" || (theme == "Auto" && RyujinxApp.DetectSystemTheme() == ThemeVariant.Dark); - DiscordLogo = EmbeddedAvaloniaResources.GetIconByNameAndTheme("Discord", isDarkTheme) + DiscordLogo = UIImages.GetLogoByNameAndTheme("Discord", isDarkTheme) .CreateScaledBitmap(new PixelSize(32, 24)); - GitLabLogo = EmbeddedAvaloniaResources.GetIconByNameAndTheme("GitLab", isDarkTheme) + GitLabLogo = UIImages.GetLogoByNameAndTheme("GitLab", isDarkTheme) .CreateScaledBitmap(new PixelSize(32, 31)); }