From 91e944d4e9d6b8cc9eefedbcd4c8e35be18ee577 Mon Sep 17 00:00:00 2001 From: Salman Alshamrani Date: Sat, 25 Jan 2025 17:44:24 -0500 Subject: [PATCH] Update test case to consider pen as touch --- .../TestSceneOsuTouchInputWithPen.cs | 30 ++++++------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/osu.Game.Rulesets.Osu.Tests/TestSceneOsuTouchInputWithPen.cs b/osu.Game.Rulesets.Osu.Tests/TestSceneOsuTouchInputWithPen.cs index 362fcd18d25d..69625ccadb09 100644 --- a/osu.Game.Rulesets.Osu.Tests/TestSceneOsuTouchInputWithPen.cs +++ b/osu.Game.Rulesets.Osu.Tests/TestSceneOsuTouchInputWithPen.cs @@ -10,7 +10,6 @@ using osu.Framework.Input; using osu.Framework.Input.Bindings; using osu.Framework.Input.Events; -using osu.Framework.Input.StateChanges; using osu.Framework.Input.States; using osu.Framework.Testing; using osu.Framework.Timing; @@ -225,19 +224,8 @@ private void addHitCircleAtPen() }); } - private void pressPen() - { - AddStep("Press pen", () => - { - InputManager.MovePenTo(getSanePositionForPen(), TabletPenDeviceType.Direct); - InputManager.PressPen(TabletPenDeviceType.Direct); - }); - } - - private void releasePen() - { - AddStep("Release pen", () => InputManager.ReleasePen(TabletPenDeviceType.Direct)); - } + private void pressPen() => beginTouch(TouchSource.PenTouch); + private void releasePen() => endTouch(TouchSource.PenTouch); private void beginTouch(TouchSource source, Vector2? screenSpacePosition = null) => AddStep($"Begin touch for {source}", () => InputManager.BeginTouch(new Touch(source, screenSpacePosition ??= getSanePositionForTouch(source)))); @@ -245,17 +233,18 @@ private void beginTouch(TouchSource source, Vector2? screenSpacePosition = null) private void endTouch(TouchSource source, Vector2? screenSpacePosition = null) => AddStep($"Release touch for {source}", () => InputManager.EndTouch(new Touch(source, screenSpacePosition ??= getSanePositionForTouch(source)))); - private Vector2 getSanePositionForPen() + private Vector2 getSanePositionForPen() => getSanePositionForTouch(TouchSource.PenTouch); + + private Vector2 getSanePositionForTouch(TouchSource source) { + int index = source == TouchSource.PenTouch ? -1 : (int)source; + return new Vector2( - osuInputManager.ScreenSpaceDrawQuad.Centre.X + osuInputManager.ScreenSpaceDrawQuad.Width * -1 / 8, + osuInputManager.ScreenSpaceDrawQuad.Centre.X + osuInputManager.ScreenSpaceDrawQuad.Width * index / 8, osuInputManager.ScreenSpaceDrawQuad.Centre.Y - 100 ); } - private Vector2 getSanePositionForTouch(TouchSource source) - => getSanePositionForPen() + new Vector2(osuInputManager.ScreenSpaceDrawQuad.Width * (int)(1 + source) / 8, 0); - private void checkPositionIsAtPen() => AddAssert("Cursor position is correct", () => osuInputManager.CurrentState.Mouse.Position, () => Is.EqualTo(getSanePositionForPen())); @@ -267,7 +256,6 @@ private void assertKeyCounter(int left, int right) private void releaseAllInput() { - AddStep("Release pen", () => InputManager.ReleasePen()); AddStep("Release all touches", () => { config.SetValue(OsuSetting.MouseDisableButtons, false); @@ -309,7 +297,7 @@ public void OnReleased(KeyBindingReleaseEvent e) public partial class TouchVisualiser : CompositeDrawable { - private readonly Drawable?[] drawableTouches = new Drawable?[TouchState.MAX_TOUCH_COUNT]; + private readonly Drawable?[] drawableTouches = new Drawable?[TouchState.MAX_SOURCES_COUNT]; public TouchVisualiser() {