@kearwood mentioned yesterday that Firefox is wanting to have XR gamepads appear in the array returned by getGamepads() when an immersive XR session is not in progress. The reasoning mentioned was that 2D pages with 3D games in a canvas often use the Gamepad api and that end users would be disappointed that the gamepads they're holding in VR do not work. As far as I understand it, due to the nature of the API structure, no 3D pose data will be exposed. When an immersive session is created, it sounded like the plan was to "disconnect" them from navigator and "connect" them in xrsession and visa versa when the xr session ends.
A few things that immediately pop to mind:
If the motion controller's motion is used to simulate a mouse moving, will that create conflict with the page? Often full screen games will use mouse/keyboard as an option.
Is each motion controller exposed a gamepad? Or is this one giant "Gamepad" smooshed together?
Is this something other user agents are interested in implementing?
If not, what spec text should we be adding to ensure conformance? For example, in the connect/disconnect timing.
@kearwood mentioned yesterday that Firefox is wanting to have XR gamepads appear in the array returned by getGamepads() when an immersive XR session is not in progress. The reasoning mentioned was that 2D pages with 3D games in a canvas often use the Gamepad api and that end users would be disappointed that the gamepads they're holding in VR do not work. As far as I understand it, due to the nature of the API structure, no 3D pose data will be exposed. When an immersive session is created, it sounded like the plan was to "disconnect" them from navigator and "connect" them in xrsession and visa versa when the xr session ends.
A few things that immediately pop to mind: