New addendum added.Chief Blur Buster wrote: ↑08 Nov 2020, 00:49Possible Proposals For Software Processing
This is what becomes visible to software that wants to access the new HD Mouse API.
- The HD Mouse API would have metrics to inform the game (sensor rate, poll rate, DPI, etc)
- The HD Mouse API would provide full precision information either as integers or as floating point
- The HD Mouse API provides optional poll batching to reduce system load
- The HD Mouse API can fire additional events for special events (DPI changed, mouse lifted from surface, etc)
- The HD Mouse API can have API-accessible configurability such as poll batching, smoothing ON/OFF, smoothing-vs-lag windows,
- The HD Mouse API will include floating point timestamps (double) or monotonically increasing timestamps (no less accurate than 1 microsecond accurate) for each coordinate pair and button events, with timestamps recorded at sensor level.
- The HD Mouse API will inform application where the timestamps came from (sensor side versus driver side), to allow applications to trust the integrity of the timestamps.
- The game would handle the data as it wishes, ideally with:
......Separate sensitivity adjustment for mouse pointer for menus/inventory/etc
......Separate sensitivity adjustment for mouse turns
......Separate sensitivity adjustment for scopes
Sensitivity adjustment MUST (RFC2119) have at least 4 decimal digits, as explained at HOWTO: Please Future Proof your Game Engine
(It could be as simple as an enum (like a theoretical .timeStampOrigin = TIMESTAMP_SENSORSIDE). The actual spelling of the function calls / parameters / variables / enums for HD Mouse API is still TBD, this will be discussed towards creating an actual draft specification some future year between 2021-2025, hopefully sooner)
The first HD Mouse API capable mouse will probably not be providing sensor-side timestamps just quite yet, and the HD Mouse API may be incubated on existing mice via the backwards compatible method (aka "1. Mouse Side: Pure HID Protocol Only").
- The app deserves to know where timestamps comes from.
- Sensor side timestamps is strongly RECOMMENDED, as the mouse SHOULD transmit that data to the mouse driver where possible for incorporation into the HD Mouse API.
- Sensor-side timestamps MAY choose to use exact precomputed increments (defined constant) during continuous sensor readouts running at accurate fixed Hz.
- Sensor-side timestamps MAY alternatively be derived from the monotonically increasing high performance counter on the mouse's microcontroller, especially if sensor frequency is variable.
- Sensor-side timestamps MUST have less than 1 microsecond timing error, regardless of how the sensor-side timestamp is computed.