using System.Numerics; using System.Runtime.CompilerServices; namespace Ryujinx.Input { /// /// A snapshot of a . /// public class MouseStateSnapshot { public readonly bool[] ButtonState; /// /// The position of the mouse cursor /// public Vector2 Position { get; } /// /// The scroll delta of the mouse /// public Vector2 Scroll { get; } /// /// Create a new . /// /// The button state /// The position of the cursor /// The scroll delta public MouseStateSnapshot(bool[] buttonState, Vector2 position, Vector2 scroll) { ButtonState = buttonState; Position = position; Scroll = scroll; } /// /// Check if a given button is pressed. /// /// The button /// True if the given button is pressed [MethodImpl(MethodImplOptions.AggressiveInlining)] public bool IsPressed(MouseButton button) => ButtonState[(int)button]; } }