DesktopInputDriver class
Desktop input driver: mouse-look, WASD locomotion, and mouse-picking.
Designed for macOS / Windows / Linux targets where no gyroscope exists.
The driver is UI-toolkit agnostic: forward KeyEvents and pointer deltas
from your widget tree (or use the included DesktopInputRegion wrapper),
and call update every frame (VREngine does this automatically when
enabled via engine.enableDesktopInput()).
final driver = engine.enableDesktopInput();
DesktopInputRegion(
driver: driver,
child: CustomPaint(painter: engine.monoPainter),
);
Constructors
- DesktopInputDriver({required CameraRig cameraRig, double lookSensitivity = 0.0035, double moveSpeed = 3.0, double sprintMultiplier = 2.5, bool snapTurn = false, double snapTurnAngle = 0.5235987755982988, bool invertY = false, bool enabled = true, LogicalKeyboardKey keyForward = LogicalKeyboardKey.keyW, LogicalKeyboardKey keyBackward = LogicalKeyboardKey.keyS, LogicalKeyboardKey keyLeft = LogicalKeyboardKey.keyA, LogicalKeyboardKey keyRight = LogicalKeyboardKey.keyD, LogicalKeyboardKey keyUp = LogicalKeyboardKey.keyE, LogicalKeyboardKey keyDown = LogicalKeyboardKey.keyQ, LogicalKeyboardKey keySnapTurnLeft = LogicalKeyboardKey.arrowLeft, LogicalKeyboardKey keySnapTurnRight = LogicalKeyboardKey.arrowRight, LogicalKeyboardKey keyRecenter = LogicalKeyboardKey.keyR})
Properties
- cameraRig → CameraRig
-
final
- enabled ↔ bool
-
Master switch — when false all input is ignored.
getter/setter pair
- hashCode → int
-
The hash code for this object.
no setterinherited
- invertY ↔ bool
-
Inverts vertical mouse-look.
getter/setter pair
- keyBackward ↔ LogicalKeyboardKey
-
getter/setter pair
- keyDown ↔ LogicalKeyboardKey
-
getter/setter pair
- keyForward ↔ LogicalKeyboardKey
-
getter/setter pair
- keyLeft ↔ LogicalKeyboardKey
-
getter/setter pair
- keyRecenter ↔ LogicalKeyboardKey
-
getter/setter pair
- keyRight ↔ LogicalKeyboardKey
-
getter/setter pair
- keySnapTurnLeft ↔ LogicalKeyboardKey
-
getter/setter pair
- keySnapTurnRight ↔ LogicalKeyboardKey
-
getter/setter pair
- keyUp ↔ LogicalKeyboardKey
-
getter/setter pair
- lookSensitivity ↔ double
-
Mouse-look sensitivity in radians per pixel dragged.
getter/setter pair
- moveSpeed ↔ double
-
Locomotion speed in meters per second.
getter/setter pair
-
pressedKeys
→ Set<
LogicalKeyboardKey> -
Currently pressed movement keys (read-only view).
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- snapTurn ↔ bool
-
Whether snap turning is enabled (turns in discrete angles to prevent motion sickness).
getter/setter pair
- snapTurnAngle ↔ double
-
Snap turning angle in radians (defaults to ~30° or 0.5236 rad).
getter/setter pair
- sprintMultiplier ↔ double
-
Speed multiplier while a sprint key (Shift) is held.
getter/setter pair
Methods
-
handleKeyEvent(
KeyEvent event) → bool - Tracks a key event. Returns true if the key is managed by this driver (movement, sprint, snap-turn, or recenter keys), so the widget layer can mark it handled.
-
handlePointerDelta(
Offset delta) → void - Applies a mouse pointer delta (in logical pixels) as camera rotation.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
pick(
Offset point, Size viewport, Node root, {double maxDistance = double.infinity}) → RaycastHit? - Picks the nearest scene node under the mouse cursor.
-
recenter(
) → void - Recenters the camera gaze.
-
releaseAllKeys(
) → void - Releases all pressed keys (call when the window loses focus).
-
screenPointToRay(
Offset point, Size viewport) → Ray -
Unprojects a screen point (logical pixels within
viewport) into a world-space ray using the monoscopic view-projection — the desktop equivalent of GazePointer.ray. -
toString(
) → String -
A string representation of this object.
inherited
-
update(
double dt) → void -
Applies WASD locomotion for frame time
dt(seconds). Movement is relative to the camera's yaw (ground-plane projection). Called automatically by VREngine each tick when enabled.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited