diff --git a/src/Ryujinx/UI/ViewModels/Input/ControllerInputViewModel.cs b/src/Ryujinx/UI/ViewModels/Input/ControllerInputViewModel.cs index c453b283f..bad2a22c2 100644 --- a/src/Ryujinx/UI/ViewModels/Input/ControllerInputViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/Input/ControllerInputViewModel.cs @@ -7,7 +7,6 @@ using Ryujinx.Ava.Input; using Ryujinx.Ava.UI.Models.Input; using Ryujinx.Ava.UI.Views.Input; using Ryujinx.Input; -using System; using System.Threading; using System.Threading.Tasks; @@ -18,7 +17,11 @@ namespace Ryujinx.Ava.UI.ViewModels.Input [ObservableProperty] private GamepadInputConfig _config; 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 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 UiStickLeftY => UiStickLeft.Item2 + CanvasCenterOffset; public float UiStickRightX => UiStickRight.Item1 + CanvasCenterOffset; public float UiStickRightY => UiStickRight.Item2 + CanvasCenterOffset; - - public float UiDeadzoneLeft => Config.DeadzoneLeft * 95; - public float UiDeadzoneRight => Config.DeadzoneRight * 95; + + public float UiDeadzoneLeft => Config.DeadzoneLeft * (CanvasSize - StickCircumference); + public float UiDeadzoneRight => Config.DeadzoneRight * (CanvasSize - StickCircumference); public ControllerInputViewModel(InputViewModel model, GamepadInputConfig config) { diff --git a/src/Ryujinx/UI/Views/Input/ControllerInputView.axaml b/src/Ryujinx/UI/Views/Input/ControllerInputView.axaml index 2dc73e2fd..d7fc36b44 100644 --- a/src/Ryujinx/UI/Views/Input/ControllerInputView.axaml +++ b/src/Ryujinx/UI/Views/Input/ControllerInputView.axaml @@ -334,15 +334,15 @@ BorderBrush="{DynamicResource ThemeControlBorderColor}" BorderThickness="1" CornerRadius="5" - Height="105" - Width="105"> + Height="{Binding UiStickBorderSize}" + Width="{Binding UiStickBorderSize}"> + Height="{Binding UiCanvasSize}" + Width="{Binding UiCanvasSize}"> @@ -352,8 +352,8 @@ HorizontalAlignment="Center" Stroke="Black" StrokeThickness="1" - Width="100" - Height="100" + Width="{Binding UiCanvasSize}" + Height="{Binding UiCanvasSize}" Canvas.Bottom="2" Canvas.Left="2" /> @@ -376,15 +376,15 @@ BorderBrush="{DynamicResource ThemeControlBorderColor}" BorderThickness="1" CornerRadius="5" - Height="105" - Width="105"> + Height="{Binding UiStickBorderSize}" + Width="{Binding UiStickBorderSize}"> + Height="{Binding UiCanvasSize}" + Width="{Binding UiCanvasSize}"> @@ -394,8 +394,8 @@ HorizontalAlignment="Center" Stroke="Black" StrokeThickness="1" - Width="100" - Height="100" + Width="{Binding UiCanvasSize}" + Height="{Binding UiCanvasSize}" Canvas.Bottom="2" Canvas.Left="2" />