diff options
author | 3gg <3gg@shellblade.net> | 2025-08-30 16:53:58 -0700 |
---|---|---|
committer | 3gg <3gg@shellblade.net> | 2025-08-30 16:53:58 -0700 |
commit | 6aaedb813fa11ba0679c3051bc2eb28646b9506c (patch) | |
tree | 34acbfc9840e02cb4753e6306ea7ce978bf8b58e /src/contrib/SDL-3.2.20/include/SDL3/SDL_touch.h | |
parent | 8f228ade99dd3d4c8da9b78ade1815c9adf85c8f (diff) |
Update to SDL3
Diffstat (limited to 'src/contrib/SDL-3.2.20/include/SDL3/SDL_touch.h')
-rw-r--r-- | src/contrib/SDL-3.2.20/include/SDL3/SDL_touch.h | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/src/contrib/SDL-3.2.20/include/SDL3/SDL_touch.h b/src/contrib/SDL-3.2.20/include/SDL3/SDL_touch.h new file mode 100644 index 0000000..64845a1 --- /dev/null +++ b/src/contrib/SDL-3.2.20/include/SDL3/SDL_touch.h | |||
@@ -0,0 +1,184 @@ | |||
1 | /* | ||
2 | Simple DirectMedia Layer | ||
3 | Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org> | ||
4 | |||
5 | This software is provided 'as-is', without any express or implied | ||
6 | warranty. In no event will the authors be held liable for any damages | ||
7 | arising from the use of this software. | ||
8 | |||
9 | Permission is granted to anyone to use this software for any purpose, | ||
10 | including commercial applications, and to alter it and redistribute it | ||
11 | freely, subject to the following restrictions: | ||
12 | |||
13 | 1. The origin of this software must not be misrepresented; you must not | ||
14 | claim that you wrote the original software. If you use this software | ||
15 | in a product, an acknowledgment in the product documentation would be | ||
16 | appreciated but is not required. | ||
17 | 2. Altered source versions must be plainly marked as such, and must not be | ||
18 | misrepresented as being the original software. | ||
19 | 3. This notice may not be removed or altered from any source distribution. | ||
20 | */ | ||
21 | |||
22 | /** | ||
23 | * # CategoryTouch | ||
24 | * | ||
25 | * SDL offers touch input, on platforms that support it. It can manage | ||
26 | * multiple touch devices and track multiple fingers on those devices. | ||
27 | * | ||
28 | * Touches are mostly dealt with through the event system, in the | ||
29 | * SDL_EVENT_FINGER_DOWN, SDL_EVENT_FINGER_MOTION, and SDL_EVENT_FINGER_UP | ||
30 | * events, but there are also functions to query for hardware details, etc. | ||
31 | * | ||
32 | * The touch system, by default, will also send virtual mouse events; this can | ||
33 | * be useful for making a some desktop apps work on a phone without | ||
34 | * significant changes. For apps that care about mouse and touch input | ||
35 | * separately, they should ignore mouse events that have a `which` field of | ||
36 | * SDL_TOUCH_MOUSEID. | ||
37 | */ | ||
38 | |||
39 | #ifndef SDL_touch_h_ | ||
40 | #define SDL_touch_h_ | ||
41 | |||
42 | #include <SDL3/SDL_stdinc.h> | ||
43 | #include <SDL3/SDL_error.h> | ||
44 | #include <SDL3/SDL_mouse.h> | ||
45 | |||
46 | #include <SDL3/SDL_begin_code.h> | ||
47 | /* Set up for C function definitions, even when using C++ */ | ||
48 | #ifdef __cplusplus | ||
49 | extern "C" { | ||
50 | #endif | ||
51 | |||
52 | /** | ||
53 | * A unique ID for a touch device. | ||
54 | * | ||
55 | * This ID is valid for the time the device is connected to the system, and is | ||
56 | * never reused for the lifetime of the application. | ||
57 | * | ||
58 | * The value 0 is an invalid ID. | ||
59 | * | ||
60 | * \since This datatype is available since SDL 3.2.0. | ||
61 | */ | ||
62 | typedef Uint64 SDL_TouchID; | ||
63 | |||
64 | /** | ||
65 | * A unique ID for a single finger on a touch device. | ||
66 | * | ||
67 | * This ID is valid for the time the finger (stylus, etc) is touching and will | ||
68 | * be unique for all fingers currently in contact, so this ID tracks the | ||
69 | * lifetime of a single continuous touch. This value may represent an index, a | ||
70 | * pointer, or some other unique ID, depending on the platform. | ||
71 | * | ||
72 | * The value 0 is an invalid ID. | ||
73 | * | ||
74 | * \since This datatype is available since SDL 3.2.0. | ||
75 | */ | ||
76 | typedef Uint64 SDL_FingerID; | ||
77 | |||
78 | /** | ||
79 | * An enum that describes the type of a touch device. | ||
80 | * | ||
81 | * \since This enum is available since SDL 3.2.0. | ||
82 | */ | ||
83 | typedef enum SDL_TouchDeviceType | ||
84 | { | ||
85 | SDL_TOUCH_DEVICE_INVALID = -1, | ||
86 | SDL_TOUCH_DEVICE_DIRECT, /**< touch screen with window-relative coordinates */ | ||
87 | SDL_TOUCH_DEVICE_INDIRECT_ABSOLUTE, /**< trackpad with absolute device coordinates */ | ||
88 | SDL_TOUCH_DEVICE_INDIRECT_RELATIVE /**< trackpad with screen cursor-relative coordinates */ | ||
89 | } SDL_TouchDeviceType; | ||
90 | |||
91 | /** | ||
92 | * Data about a single finger in a multitouch event. | ||
93 | * | ||
94 | * Each touch event is a collection of fingers that are simultaneously in | ||
95 | * contact with the touch device (so a "touch" can be a "multitouch," in | ||
96 | * reality), and this struct reports details of the specific fingers. | ||
97 | * | ||
98 | * \since This struct is available since SDL 3.2.0. | ||
99 | * | ||
100 | * \sa SDL_GetTouchFingers | ||
101 | */ | ||
102 | typedef struct SDL_Finger | ||
103 | { | ||
104 | SDL_FingerID id; /**< the finger ID */ | ||
105 | float x; /**< the x-axis location of the touch event, normalized (0...1) */ | ||
106 | float y; /**< the y-axis location of the touch event, normalized (0...1) */ | ||
107 | float pressure; /**< the quantity of pressure applied, normalized (0...1) */ | ||
108 | } SDL_Finger; | ||
109 | |||
110 | /** | ||
111 | * The SDL_MouseID for mouse events simulated with touch input. | ||
112 | * | ||
113 | * \since This macro is available since SDL 3.2.0. | ||
114 | */ | ||
115 | #define SDL_TOUCH_MOUSEID ((SDL_MouseID)-1) | ||
116 | |||
117 | /** | ||
118 | * The SDL_TouchID for touch events simulated with mouse input. | ||
119 | * | ||
120 | * \since This macro is available since SDL 3.2.0. | ||
121 | */ | ||
122 | #define SDL_MOUSE_TOUCHID ((SDL_TouchID)-1) | ||
123 | |||
124 | |||
125 | /** | ||
126 | * Get a list of registered touch devices. | ||
127 | * | ||
128 | * On some platforms SDL first sees the touch device if it was actually used. | ||
129 | * Therefore the returned list might be empty, although devices are available. | ||
130 | * After using all devices at least once the number will be correct. | ||
131 | * | ||
132 | * \param count a pointer filled in with the number of devices returned, may | ||
133 | * be NULL. | ||
134 | * \returns a 0 terminated array of touch device IDs or NULL on failure; call | ||
135 | * SDL_GetError() for more information. This should be freed with | ||
136 | * SDL_free() when it is no longer needed. | ||
137 | * | ||
138 | * \since This function is available since SDL 3.2.0. | ||
139 | */ | ||
140 | extern SDL_DECLSPEC SDL_TouchID * SDLCALL SDL_GetTouchDevices(int *count); | ||
141 | |||
142 | /** | ||
143 | * Get the touch device name as reported from the driver. | ||
144 | * | ||
145 | * \param touchID the touch device instance ID. | ||
146 | * \returns touch device name, or NULL on failure; call SDL_GetError() for | ||
147 | * more information. | ||
148 | * | ||
149 | * \since This function is available since SDL 3.2.0. | ||
150 | */ | ||
151 | extern SDL_DECLSPEC const char * SDLCALL SDL_GetTouchDeviceName(SDL_TouchID touchID); | ||
152 | |||
153 | /** | ||
154 | * Get the type of the given touch device. | ||
155 | * | ||
156 | * \param touchID the ID of a touch device. | ||
157 | * \returns touch device type. | ||
158 | * | ||
159 | * \since This function is available since SDL 3.2.0. | ||
160 | */ | ||
161 | extern SDL_DECLSPEC SDL_TouchDeviceType SDLCALL SDL_GetTouchDeviceType(SDL_TouchID touchID); | ||
162 | |||
163 | /** | ||
164 | * Get a list of active fingers for a given touch device. | ||
165 | * | ||
166 | * \param touchID the ID of a touch device. | ||
167 | * \param count a pointer filled in with the number of fingers returned, can | ||
168 | * be NULL. | ||
169 | * \returns a NULL terminated array of SDL_Finger pointers or NULL on failure; | ||
170 | * call SDL_GetError() for more information. This is a single | ||
171 | * allocation that should be freed with SDL_free() when it is no | ||
172 | * longer needed. | ||
173 | * | ||
174 | * \since This function is available since SDL 3.2.0. | ||
175 | */ | ||
176 | extern SDL_DECLSPEC SDL_Finger ** SDLCALL SDL_GetTouchFingers(SDL_TouchID touchID, int *count); | ||
177 | |||
178 | /* Ends C function definitions when using C++ */ | ||
179 | #ifdef __cplusplus | ||
180 | } | ||
181 | #endif | ||
182 | #include <SDL3/SDL_close_code.h> | ||
183 | |||
184 | #endif /* SDL_touch_h_ */ | ||