Merge branch 'master' into master

This commit is contained in:
heihei123456780
2024-12-28 12:46:30 +08:00
committed by GitHub
14 changed files with 1310 additions and 351 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -33,8 +33,11 @@ namespace Ryujinx.Ava
.ApplicationLifetime.Cast<IClassicDesktopStyleApplicationLifetime>()
.MainWindow.Cast<MainWindow>();
public static bool IsClipboardAvailable(out IClipboard clipboard)
=> (clipboard = MainWindow.Clipboard) != null;
public static bool IsClipboardAvailable(out IClipboard clipboard)
{
clipboard = MainWindow.Clipboard;
return clipboard != null;
}
public static void SetTaskbarProgress(TaskBarProgressBarState state) => MainWindow.PlatformFeatures.SetTaskBarProgressBarState(state);
public static void SetTaskbarProgressValue(ulong current, ulong total) => MainWindow.PlatformFeatures.SetTaskBarProgressBarValue(current, total);

View File

@@ -110,8 +110,13 @@ namespace Ryujinx.Ava.UI.ViewModels
private bool _areMimeTypesRegistered = FileAssociationHelper.AreMimeTypesRegistered;
private bool _canUpdate = true;
private Cursor _cursor;
private string _title;
private ApplicationData _currentApplicationData;
private readonly AutoResetEvent _rendererWaitEvent;
private WindowState _windowState;
private double _windowWidth;
private double _windowHeight;
private int _customVSyncInterval;
private int _customVSyncIntervalPercentageProxy;
@@ -122,7 +127,7 @@ namespace Ryujinx.Ava.UI.ViewModels
public ApplicationData GridSelectedApplication;
// Key is Title ID
public SafeDictionary<string, LdnGameDataArray> LdnData = [];
public SafeDictionary<string, LdnGameData.Array> LdnData = [];
// The UI specifically uses a thicker bordered variant of the icon to avoid crunching out the border at lower resolutions.
// For an example of this, download canary 1.2.95, then open the settings menu, and look at the icon in the top-left.
@@ -213,7 +218,7 @@ namespace Ryujinx.Ava.UI.ViewModels
public bool CanUpdate
{
get => _canUpdate && EnableNonGameRunningControls && Updater.CanUpdate();
get => _canUpdate && EnableNonGameRunningControls && Updater.CanUpdate(false);
set
{
_canUpdate = value;
@@ -223,8 +228,12 @@ namespace Ryujinx.Ava.UI.ViewModels
public Cursor Cursor
{
get => Window.Cursor;
set => Window.Cursor = value;
get => _cursor;
set
{
_cursor = value;
OnPropertyChanged();
}
}
public ReadOnlyObservableCollection<ApplicationData> AppsObservableList
@@ -806,23 +815,35 @@ namespace Ryujinx.Ava.UI.ViewModels
public WindowState WindowState
{
get => Window.WindowState;
get => _windowState;
internal set
{
Window.WindowState = value;
_windowState = value;
OnPropertyChanged();
}
}
public double WindowWidth
{
get => Window.Width;
set => Window.Width = value;
get => _windowWidth;
set
{
_windowWidth = value;
OnPropertyChanged();
}
}
public double WindowHeight
{
get => Window.Height;
set => Window.Height = value;
get => _windowHeight;
set
{
_windowHeight = value;
OnPropertyChanged();
}
}
public bool IsGrid => Glyph == Glyph.Grid;
@@ -870,11 +891,11 @@ namespace Ryujinx.Ava.UI.ViewModels
public string Title
{
get => Window.Title;
get => _title;
set
{
Window.Title = value;
_title = value;
OnPropertyChanged();
}
}

View File

@@ -9,6 +9,11 @@
xmlns:helpers="clr-namespace:Ryujinx.Ava.UI.Helpers"
xmlns:controls="clr-namespace:Ryujinx.Ava.UI.Controls"
xmlns:main="clr-namespace:Ryujinx.Ava.UI.Views.Main"
Cursor="{Binding Cursor}"
Title="{Binding Title}"
WindowState="{Binding WindowState}"
Width="{Binding WindowWidth}"
Height="{Binding WindowHeight}"
MinWidth="800"
MinHeight="500"
d:DesignHeight="720"

View File

@@ -171,9 +171,12 @@ namespace Ryujinx.Ava.UI.Windows
ViewModel.LdnData.Clear();
foreach (var application in ViewModel.Applications)
{
ViewModel.LdnData[application.IdString] = new LdnGameDataArray(
ldnGameDataArray,
ref application.ControlHolder.Value
ref var controlHolder = ref application.ControlHolder.Value;
ViewModel.LdnData[application.IdString] =
LdnGameData.GetArrayForApp(
ldnGameDataArray,
ref controlHolder
);
UpdateApplicationWithLdnData(application);