diff options
Diffstat (limited to 'src/Ryujinx.Input/KeyboardStateSnapshot.cs')
| -rw-r--r-- | src/Ryujinx.Input/KeyboardStateSnapshot.cs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/Ryujinx.Input/KeyboardStateSnapshot.cs b/src/Ryujinx.Input/KeyboardStateSnapshot.cs new file mode 100644 index 00000000..da77a461 --- /dev/null +++ b/src/Ryujinx.Input/KeyboardStateSnapshot.cs @@ -0,0 +1,29 @@ +using System.Runtime.CompilerServices; + +namespace Ryujinx.Input +{ + /// <summary> + /// A snapshot of a <see cref="IKeyboard"/>. + /// </summary> + public class KeyboardStateSnapshot + { + private bool[] _keysState; + + /// <summary> + /// Create a new <see cref="KeyboardStateSnapshot"/>. + /// </summary> + /// <param name="keysState">The keys state</param> + public KeyboardStateSnapshot(bool[] keysState) + { + _keysState = keysState; + } + + /// <summary> + /// Check if a given key is pressed. + /// </summary> + /// <param name="key">The key</param> + /// <returns>True if the given key is pressed</returns> + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool IsPressed(Key key) => _keysState[(int)key]; + } +} |
