public static unsafe bool HasValueChangeInEvent(this InputControl control, InputEventPtr eventPtr)
        {
            if (control == null)
            {
                throw new ArgumentNullException(nameof(control));
            }
            if (!eventPtr.valid)
            {
                throw new ArgumentNullException(nameof(eventPtr));
            }

            return(control.CompareValue(control.currentStatePtr, control.GetStatePtrFromStateEvent(eventPtr)));
        }
        /// <summary>
        /// Return true if the actual value
        /// </summary>
        /// <param name="statePtr"></param>
        /// <returns></returns>
        public static unsafe bool HasValueChangeInState(this InputControl control, void *statePtr)
        {
            if (control == null)
            {
                throw new ArgumentNullException(nameof(control));
            }
            if (statePtr == null)
            {
                throw new ArgumentNullException(nameof(statePtr));
            }

            return(control.CompareValue(control.currentStatePtr, statePtr));
        }