using System.Runtime.CompilerServices;
namespace GlitchyEngine;
///
/// Provides methods to query the state of the input devices.
///
public static class Input
{
///
/// Returns if the specified key is in the pressed down state.
///
/// The key to query.
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern bool IsKeyPressed(Key key);
///
/// Returns if the specified is in the released state.
///
/// The key to query.
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern bool IsKeyReleased(Key key);
///
/// Returns if the state of the specified changed this frame (i.e. changed from pressed to released or from released to pressed).
///
/// The key to query.
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern bool IsKeyToggled(Key key);
///
/// Returns if is being pressed down this frame
/// ( was last frame and is this frame).
///
/// The key to query.
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern bool IsKeyPressing(Key key);
///
/// Returns if is being released this frame
/// ( was last frame and is this frame).
///
/// The key to query.
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern bool IsKeyReleasing(Key key);
///
/// Returns if the specified mouse button is in the pressed down state.
///
/// The button to query.
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern bool IsMouseButtonPressed(MouseButton mouseButton);
///
/// Returns if the specified mouse button is in the released state.
///
/// The button to query.
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern bool IsMouseButtonReleased(MouseButton mouseButton);
///
/// Returns if the mouse button is being pressed down this frame
/// ( was last frame and is this frame).
///
/// The button to query.
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern bool IsMouseButtonPressing(MouseButton mouseButton);
///
/// Returns if the mouse button is being released this frame
/// ( was last frame and is this frame).
///
/// The button to query.
[MethodImpl(MethodImplOptions.InternalCall)]
public static extern bool IsMouseButtonReleasing(MouseButton mouseButton);
}