Extend SDL_GamepadCapSenseType definitions#15637
Conversation
|
I'll share some notes I took, which is pretty close to what you've come up with for additions. Let's start by looking at the whole collection of capacitive touch types. There are probably even more I haven't considered: Capacitive touch types:
But are all of those needed? If we try to find the right balance of options, the list may collapse to something like this (for example):
Maybe that's not enough, but it's just an example. Also, in the future, if enough controllers report more than just a "down" state (some VR controllers), then the event structure could be extended to account for that:
|
|
I think that the expanded capacitive touch types you've laid out covers all of the major use-cases, and fits in 24 bits. I think it's worth using the expanded types over the condensed, for the reason that it more accurately represents what gamepads are already implementing today such as the Meta Quest controllers which have individual sensing for each button/trigger. Besides that, it's helpful from a game dev and gamepad configuration perspective to know where a capacitive sensing location is physically located. IE if a gamepad has a grip sensor, and a paddle sensor, a developer or configuration software knowing that there's a distinction rather than having to collapse them into a single state is preferred in my opinion. I think the only additional suggestion I'd have is to have a few MISC labels as well, to cover odd or weird use-cases that may not fit the rest. |
|
I don't mind the whole set. Maybe there are some caveats I haven't considered, but nothing is immediately sticking out to me. I'm not an expert in this, but hopefully my list helps with brainstorming. |
|
I'll work on extending what you've laid out; thanks for helping to push this forward so quickly! |
|
How many controllers provide information for each of these, and how many applications care about contact vs press? |
Most of the gamepads that currently provide capacitive sensing are VR-centric gamepads. Notable ones:
In terms of the application area, most of the software is VR-centric currently. I do think there is a lot of potential use-case with Steam to allow for custom layers etc. by means of capacitive sensing vs just pressing. |
Okay, so the current use case is more for showing hand positioning in VR than using contact for control, is that right? |
I think there's other use-cases that go beyond VR positional handling. It's something I'm exploring with our own gamepads, but there's currently not a great pathway to allow for support within games.
|
This PR draft expands on #15627 by @ceski-1 to implement more types of capacitive sensing surfaces.
Real world references for the expansion:
Other considerations: