Clean up some magic numbers between code and axaml.

This commit is contained in:
MutantAura 2024-05-30 14:29:05 +01:00 committed by Evan Husted
parent aa3f2824e0
commit ce13830063
2 changed files with 31 additions and 26 deletions

View File

@ -7,7 +7,6 @@ using Ryujinx.Ava.Input;
using Ryujinx.Ava.UI.Models.Input; using Ryujinx.Ava.UI.Models.Input;
using Ryujinx.Ava.UI.Views.Input; using Ryujinx.Ava.UI.Views.Input;
using Ryujinx.Input; using Ryujinx.Input;
using System;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -18,7 +17,11 @@ namespace Ryujinx.Ava.UI.ViewModels.Input
[ObservableProperty] private GamepadInputConfig _config; [ObservableProperty] private GamepadInputConfig _config;
private const int StickUiPollMs = 50; // Milliseconds per poll. private const int StickUiPollMs = 50; // Milliseconds per poll.
private const float CanvasCenterOffset = 47.5f; private const int StickCircumference = 5;
private const int CanvasSize = 100;
private const int StickBorderSize = CanvasSize + 5;
private const float CanvasCenterOffset = (CanvasSize - StickCircumference) / 2;
private const int StickScaleFactor = 45; private const int StickScaleFactor = 45;
private IGamepad _selectedGamepad; private IGamepad _selectedGamepad;
@ -88,15 +91,17 @@ namespace Ryujinx.Ava.UI.ViewModels.Input
} }
} }
public float canvasCenter => CanvasCenterOffset; public int UiStickCircumference => StickCircumference;
public int UiCanvasSize => CanvasSize;
public int UiStickBorderSize => StickBorderSize;
public float UiStickLeftX => UiStickLeft.Item1 + CanvasCenterOffset; public float UiStickLeftX => UiStickLeft.Item1 + CanvasCenterOffset;
public float UiStickLeftY => UiStickLeft.Item2 + CanvasCenterOffset; public float UiStickLeftY => UiStickLeft.Item2 + CanvasCenterOffset;
public float UiStickRightX => UiStickRight.Item1 + CanvasCenterOffset; public float UiStickRightX => UiStickRight.Item1 + CanvasCenterOffset;
public float UiStickRightY => UiStickRight.Item2 + CanvasCenterOffset; public float UiStickRightY => UiStickRight.Item2 + CanvasCenterOffset;
public float UiDeadzoneLeft => Config.DeadzoneLeft * 95; public float UiDeadzoneLeft => Config.DeadzoneLeft * (CanvasSize - StickCircumference);
public float UiDeadzoneRight => Config.DeadzoneRight * 95; public float UiDeadzoneRight => Config.DeadzoneRight * (CanvasSize - StickCircumference);
public ControllerInputViewModel(InputViewModel model, GamepadInputConfig config) public ControllerInputViewModel(InputViewModel model, GamepadInputConfig config)
{ {

View File

@ -334,15 +334,15 @@
BorderBrush="{DynamicResource ThemeControlBorderColor}" BorderBrush="{DynamicResource ThemeControlBorderColor}"
BorderThickness="1" BorderThickness="1"
CornerRadius="5" CornerRadius="5"
Height="105" Height="{Binding UiStickBorderSize}"
Width="105"> Width="{Binding UiStickBorderSize}">
<Canvas <Canvas
Background="{DynamicResource ThemeBackgroundColor}" Background="{DynamicResource ThemeBackgroundColor}"
Height="100" Height="{Binding UiCanvasSize}"
Width="100"> Width="{Binding UiCanvasSize}">
<Grid <Grid
Height="100" Height="{Binding UiCanvasSize}"
Width="100" Width="{Binding UiCanvasSize}"
Background="{DynamicResource ThemeBackgroundColor}"> Background="{DynamicResource ThemeBackgroundColor}">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="*" /> <ColumnDefinition Width="*" />
@ -352,8 +352,8 @@
HorizontalAlignment="Center" HorizontalAlignment="Center"
Stroke="Black" Stroke="Black"
StrokeThickness="1" StrokeThickness="1"
Width="100" Width="{Binding UiCanvasSize}"
Height="100" Height="{Binding UiCanvasSize}"
Canvas.Bottom="2" Canvas.Bottom="2"
Canvas.Left="2" /> Canvas.Left="2" />
<Ellipse <Ellipse
@ -366,8 +366,8 @@
</Grid> </Grid>
<Ellipse <Ellipse
Fill="Red" Fill="Red"
Width="5" Width="{Binding UiStickCircumference}"
Height="5" Height="{Binding UiStickCircumference}"
Canvas.Bottom="{Binding UiStickLeftY}" Canvas.Bottom="{Binding UiStickLeftY}"
Canvas.Left="{Binding UiStickLeftX}" /> Canvas.Left="{Binding UiStickLeftX}" />
</Canvas> </Canvas>
@ -376,15 +376,15 @@
BorderBrush="{DynamicResource ThemeControlBorderColor}" BorderBrush="{DynamicResource ThemeControlBorderColor}"
BorderThickness="1" BorderThickness="1"
CornerRadius="5" CornerRadius="5"
Height="105" Height="{Binding UiStickBorderSize}"
Width="105"> Width="{Binding UiStickBorderSize}">
<Canvas <Canvas
Background="{DynamicResource ThemeBackgroundColor}" Background="{DynamicResource ThemeBackgroundColor}"
Height="100" Height="{Binding UiCanvasSize}"
Width="100"> Width="{Binding UiCanvasSize}">
<Grid <Grid
Height="100" Height="{Binding UiCanvasSize}"
Width="100" Width="{Binding UiCanvasSize}"
Background="{DynamicResource ThemeBackgroundColor}"> Background="{DynamicResource ThemeBackgroundColor}">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="*" /> <ColumnDefinition Width="*" />
@ -394,8 +394,8 @@
HorizontalAlignment="Center" HorizontalAlignment="Center"
Stroke="Black" Stroke="Black"
StrokeThickness="1" StrokeThickness="1"
Width="100" Width="{Binding UiCanvasSize}"
Height="100" Height="{Binding UiCanvasSize}"
Canvas.Bottom="2" Canvas.Bottom="2"
Canvas.Left="2" /> Canvas.Left="2" />
<Ellipse <Ellipse
@ -408,8 +408,8 @@
</Grid> </Grid>
<Ellipse <Ellipse
Fill="Red" Fill="Red"
Width="5" Width="{Binding UiStickCircumference}"
Height="5" Height="{Binding UiStickCircumference}"
Canvas.Bottom="{Binding UiStickRightY}" Canvas.Bottom="{Binding UiStickRightY}"
Canvas.Left="{Binding UiStickRightX}" /> Canvas.Left="{Binding UiStickRightX}" />
</Canvas> </Canvas>