using System.Numerics; using System.Runtime.CompilerServices; namespace Ryujinx.Input { /// /// A snapshot of a . /// public class MouseStateSnapshot { private 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]; } }