SDL/VisualC/tests
Christoph Reichenbach 7c80ac6df7 API for pressure-sensitive pens + XInput2/Wayland
This patch adds an API for querying pressure-
sensitive pens, cf. SDL_pen.h:
- Enumerate all pens
- Get pen capabilities, names, GUIDs
- Distinguishes pens and erasers
- Distinguish attached and detached pens
- Pressure and tilt support
- Rotation, distance, throttle wheel support
  (throttle wheel untested)
- Pen type and meta-information reporting
  (partially tested)

Pen event reporting:
- Three new event structures: PenTip, PenMotion, and
  PenButton
- Report location with sub-pixel precision
- Include axis and button status, is-eraser flag

Internal pen tracker, intended to be independent
of platform APIs, cf. SDL_pen_c.h:
- Track known pens
- Handle pen hotplugging

Automatic test:
- testautomation_pen.c

Other features:
- XInput2 implementation, incl. hotplugging
- Wayland implementation, incl. hotplugging
- Backward compatibility: pen events default to
  emulating pens with mouse ID SDL_PEN_MOUSEID
- Can be toggled via SDL_HINT_PEN_NOT_MOUSE
- Test/demo program (testpen)
- Wacom pen feature identification by pen ID

Acknowledgements:
- Ping Cheng (Wacom) provided extensive feedback
  on Wacom pen features and detection so that
  hopefully untested Wacom devices have a
  realistic chance of working out of the box.
2023-11-12 09:52:02 -08:00
..
checkkeys Remove SDL_main from VS Solutions in VisualC/ and VisualC-GDK/ 2022-12-15 08:01:01 -08:00
loopwave testprograms: parse arguments using SDLTest_CommonState 2023-03-17 17:54:16 +01:00
testatomic testprograms: parse arguments using SDLTest_CommonState 2023-03-17 17:54:16 +01:00
testautomation API for pressure-sensitive pens + XInput2/Wayland 2023-11-12 09:52:02 -08:00
testcontroller Renamed testgamepad to testcontroller 2023-07-16 04:32:12 -07:00
testdraw Rename SDL2 tests for SDL3 2023-01-03 11:54:35 -08:00
testfile testprograms: parse arguments using SDLTest_CommonState 2023-03-17 17:54:16 +01:00
testgl Rename SDL2 tests for SDL3 2023-01-03 11:54:35 -08:00
testgles2 Remove SDL_main from VS Solutions in VisualC/ and VisualC-GDK/ 2022-12-15 08:01:01 -08:00
testoverlay Rename SDL2 tests for SDL3 2023-01-03 11:54:35 -08:00
testplatform testprograms: parse arguments using SDLTest_CommonState 2023-03-17 17:54:16 +01:00
testpower testprograms: parse arguments using SDLTest_CommonState 2023-03-17 17:54:16 +01:00
testrendertarget Remove SDL_main from VS Solutions in VisualC/ and VisualC-GDK/ 2022-12-15 08:01:01 -08:00
testrumble testprograms: parse arguments using SDLTest_CommonState 2023-03-17 17:54:16 +01:00
testscale Remove SDL_main from VS Solutions in VisualC/ and VisualC-GDK/ 2022-12-15 08:01:01 -08:00
testsensor testprograms: parse arguments using SDLTest_CommonState 2023-03-17 17:54:16 +01:00
testshape testprograms: parse arguments using SDLTest_CommonState 2023-03-17 17:54:16 +01:00
testsprite Rename SDL2 tests for SDL3 2023-01-03 11:54:35 -08:00
testsurround testprograms: parse arguments using SDLTest_CommonState 2023-03-17 17:54:16 +01:00
testvulkan Remove SDL_main from VS Solutions in VisualC/ and VisualC-GDK/ 2022-12-15 08:01:01 -08:00
testwm Rename SDL2 tests for SDL3 2023-01-03 11:54:35 -08:00
testyuv testprograms: parse arguments using SDLTest_CommonState 2023-03-17 17:54:16 +01:00