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