Prowl’s input system is layered around a stack ofDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/ProwlEngine/Prowl/llms.txt
Use this file to discover all available pages before exploring further.
IInputHandler implementations. The Input static class simply delegates every query to the handler on top of the stack — Input.Current. This design lets the editor, the game viewport, and UI subsystems push their own handlers to intercept or block input without affecting each other. The default game handler is DefaultInputHandler, which bridges Veldrid’s raw input events into Prowl’s Key and MouseButton enums. All keyboard and mouse state queries follow a three-state model: held (GetKey), pressed this frame (GetKeyDown), and released this frame (GetKeyUp).
Handler Stack
The full stack of active input handlers. The topmost handler receives all queries.
Returns
Handlers.Peek() — the active (topmost) handler.PushHandler
Input.* calls will be routed to this handler.
The handler to activate.
PopHandler
Keyboard
GetKey
true every frame the key is held down.
GetKeyDown
true only on the frame the key was first pressed.
GetKeyUp
true only on the frame the key was released.
Additional keyboard properties
Characters typed this frame, in order. Useful for text-input fields.
Mouse Buttons
GetMouseButton
true every frame the button is held.
GetMouseButtonDown
true only on the frame the button was first pressed.
GetMouseButtonUp
true only on the frame the button was released.
Mouse Position and Movement
Gets or sets the cursor position in screen pixels (origin at top-left).
The cursor position at the end of the previous frame.
Raw cursor movement in pixels since the last frame. Does not depend on cursor position when
CursorLocked is true.Scroll-wheel movement this frame. Positive values indicate scrolling up/towards the user.
Cursor Control
Gets or sets cursor visibility. When
false the OS cursor is hidden.Gets or sets cursor lock state. When
true the cursor is confined to the window and MouseDelta reports raw device movement.Clipboard
Gets or sets the system clipboard text contents. Delegates to the current handler’s clipboard implementation.
Events
bool = true) and release (bool = false).
(button, x, y, pressed, doubleClick).
IInputHandler Interface
ImplementIInputHandler to create a custom input source (e.g., gamepad, virtual keyboard, remote input).
true if any key is currently pressed. Provided by the active IInputHandler; not directly exposed on the Input static class.Key Enum
Key maps directly to Veldrid’s Key enum, covering the full SDL2 keycode set. Common values:
Letters (A–Z)
Letters (A–Z)
Key.A through Key.ZNumbers (0–9 and numpad)
Numbers (0–9 and numpad)
Key.Num0–Key.Num9, Key.Keypad0–Key.Keypad9Function keys
Function keys
Key.F1–Key.F24Navigation and editing
Navigation and editing
Modifiers
Modifiers
| Value | Description |
|---|---|
Key.LeftShift | Left Shift |
Key.RightShift | Right Shift |
Key.LeftControl | Left Control |
Key.RightControl | Right Control |
Key.LeftAlt | Left Alt |
Key.RightAlt | Right Alt |
Key.LeftGui | Left Super / Windows key |
Key.RightGui | Right Super / Windows key |
Key.CapsLock | Caps Lock |
MouseButton Enum
| Value | Description |
|---|---|
MouseButton.Left | Primary mouse button |
MouseButton.Right | Secondary mouse button |
MouseButton.Middle | Middle / scroll-wheel button |
MouseButton.Button1–Button9 | Extra mouse buttons (side buttons, etc.) |
MouseButton.Unknown | Unrecognised button (-1) |