Contact emails [email protected]<mailto:[email protected]>, [email protected]<mailto:[email protected]>, [email protected]<mailto:[email protected]>, [email protected]<mailto:[email protected]>
Explainer https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/GamepadEventDrivenInputAPI/explainer.md Specification https://w3c.github.io/gamepad Summary This proposal extends the Gamepad API with a new event-driven model that enables applications to receive gamepad input with lower latency. Instead of relying on frequent polling via navigator.getGamepads(), developers can now listen for a rawgamepadinputchange event, which fires whenever new input data is available from the device. This allows for more responsive input handling, particularly in latency-sensitive applications. As a side note, currently, Chromium's backend implementation for obtaining gamepad input data from the underlying platform uses a poll-based approach. Adopting a full event-based backend implementation is challenging due to platform/device support. However, as platform support evolves, this new event API allows us to adopt an event-based approach in the backend without changing the web API shape. Blink component Blink>GamepadAPI<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EGamepadAPI%22> Web Feature ID No information provided Search tags gamepad<https://chromestatus.com/features#tags:gamepad>, button<https://chromestatus.com/features#tags:button>, axis<https://chromestatus.com/features#tags:axis>, event<https://chromestatus.com/features#tags:event>, raw input<https://chromestatus.com/features#tags:raw%20input> TAG review None TAG review status Pending Goals for experimentation The OT should help us collect information on the performance impact of this change across real users. There is a high chance that the current API shape is NOT its final form (see more at https://github.com/w3c/gamepad/issues/4). We want to measure whether this version of raw events brings measurable performance improvements for cloud gaming, considering many different devices. If it negatively impacts low-powered devices, we'll need to work with partners on improvements. It could be adding event coalescing, changing the spec proposal to permit event throttling, etc. Risks Interoperability and Compatibility No information provided Gecko: No signal (https://github.com/mozilla/standards-positions/issues/1389) Firefox’s experimental implementation: * GamepadButtonEvent: https://searchfox.org/mozilla-central/source/dom/webidl/GamepadButtonEvent.webidl , * GamepadAxisMoveEvent: https://searchfox.org/mozilla-central/source/dom/webidl/GamepadAxisMoveEvent.webidl#9 WebKit: No signal (https://github.com/WebKit/standards-positions/issues/647) Web developers: Positive (https://stackoverflow.com/questions/72294832/using-gamepad-api-via-events-rather-than-polling) There is strong developer interest in an event-driven Gamepad API to improve responsiveness and simplify input handling. In w3c/gamepad#4 (https://github.com/w3c/gamepad/issues/4), developers have long requested events for gamepad input, citing the inefficiency of polling-based models. Similarly, in a popular Stack Overflow thread, developers express frustration with the lack of native gamepad events and seek workarounds, underscoring unmet needs in the current API. The existence of third-party libraries like gamecontroller.js (https://github.com/firsching/gamecontroller.js) and Gamepad-Controller (https://github.com/alvaromontoro/gamepad-controller) further demonstrates this. Other signals: WebView application risks Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications? No changes were anticipated. Ongoing technical constraints No information provided Debuggability N/A Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)? Yes Is this feature fully tested by web-platform-tests<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>? No Web platform tests will be added with the prototype implementation. Flag name on about://flags #gamepad-raw-input-change-event Finch feature name GamepadRawInputChangeEvent Requires code in //chrome? True Tracking bug https://crbug.com/40582297 Estimated milestones DevTrial on desktop 147 DevTrial on Android 147 Link to entry on the Chrome Platform Status https://chromestatus.com/feature/5989275208253440?gate=4676374353149952 Links to previous Intent discussions Intent to Prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/682e0a48.170a0220.2aa17e.113c.GAE%40google.com This intent message was generated by Chrome Platform Status<https://chromestatus.com/>. -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CH4PR00MB23897DFC0C754FDDCC5DFBFBD5372%40CH4PR00MB2389.namprd00.prod.outlook.com.
