Commit Graph
11 Commits
Author SHA1 Message Date
Henrik RydgårdandClaude Opus 5.5 fbf0cc2df4 Android: Detect the accelerometer and gyro instead of assuming them
SYSPROP_HAS_ACCELEROMETER was true for every phone and tablet, whether or
not it had the sensor. The activity now tells the native side what the
sensor manager found, which also answers the new SYSPROP_HAS_GYRO. VR
headsets still report neither. Every other platform returns false for the
gyro for now.

The "Use gyroscope" checkbox uses the new property instead of waiting for
gyro data to show up.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-21 12:20:20 +02:00
Henrik RydgårdandClaude Opus 5.5 f84e63f753 Tilt: Steady the tilt input with the gyroscope where there is one
Tilt used the raw accelerometer as the gravity vector, which jitters with
sensor noise and jumps when the device is shaken. Now, when gyro data is
coming in, a complementary filter integrates the gyro rates and only pulls
the result toward the accelerometer with a 0.5 s time constant, trusting
the accelerometer less the further it reads from 1g. The fused vector goes
through the same ProcessTilt path, so calibration and sensitivity work as
before. Without a gyro, nothing changes.

The fusion lives in TiltEventProcessor behind NativeGyroscope(), so other
sources (DualSense) can feed it too. Android registers TYPE_GYROSCOPE next
to the accelerometer. A "Use gyroscope" checkbox (on by default, per game)
appears in tilt setup once gyro data has been seen.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-21 10:45:37 +02:00
Henrik Rydgård d397635e49 Mouse input: Approximate the old smoothing function 2023-12-14 19:24:39 +01:00
Henrik Rydgård 7b0ee5440d Move the mouse event processing code out from NativeApp 2023-12-14 19:01:19 +01:00
Henrik Rydgård 3b004e7a4b Remove the last use of accelerometer axis events (calibration) 2023-09-27 11:33:40 +02:00
Henrik Rydgård a288c59841 Simplify tilt, step 1 2023-02-16 10:33:47 +01:00
Henrik Rydgård 7d40ed6ba1 Tilt control: Split the deadzone parameter since it needs to be different for different types.
Can at least share the string without problems.

Also rearrange the settings a little bit.
2023-02-11 23:42:55 +01:00
Henrik Rydgård 59dec197d8 Add previews for more types, fix mappings. 2023-02-02 01:09:33 +01:00
Henrik Rydgård 1f51a31544 Remove the separate deadzone-skip value. 2023-02-02 01:09:30 +01:00
Henrik Rydgård 4aeb1ef703 Better math, fix tilt calibration (was entirely broken) 2023-02-02 01:01:05 +01:00
Henrik Rydgård 3b36a1bb66 TiltEventProcessor belongs in Core, not UI. 2023-02-01 15:04:32 +01:00