diff options
Diffstat (limited to 'src/contrib/SDL-3.2.20/include/SDL3/SDL_hints.h')
-rw-r--r-- | src/contrib/SDL-3.2.20/include/SDL3/SDL_hints.h | 4486 |
1 files changed, 4486 insertions, 0 deletions
diff --git a/src/contrib/SDL-3.2.20/include/SDL3/SDL_hints.h b/src/contrib/SDL-3.2.20/include/SDL3/SDL_hints.h new file mode 100644 index 0000000..a081535 --- /dev/null +++ b/src/contrib/SDL-3.2.20/include/SDL3/SDL_hints.h | |||
@@ -0,0 +1,4486 @@ | |||
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 | * # CategoryHints | ||
24 | * | ||
25 | * This file contains functions to set and get configuration hints, as well as | ||
26 | * listing each of them alphabetically. | ||
27 | * | ||
28 | * The convention for naming hints is SDL_HINT_X, where "SDL_X" is the | ||
29 | * environment variable that can be used to override the default. | ||
30 | * | ||
31 | * In general these hints are just that - they may or may not be supported or | ||
32 | * applicable on any given platform, but they provide a way for an application | ||
33 | * or user to give the library a hint as to how they would like the library to | ||
34 | * work. | ||
35 | */ | ||
36 | |||
37 | #ifndef SDL_hints_h_ | ||
38 | #define SDL_hints_h_ | ||
39 | |||
40 | #include <SDL3/SDL_error.h> | ||
41 | #include <SDL3/SDL_stdinc.h> | ||
42 | |||
43 | #include <SDL3/SDL_begin_code.h> | ||
44 | /* Set up for C function definitions, even when using C++ */ | ||
45 | #ifdef __cplusplus | ||
46 | extern "C" { | ||
47 | #endif | ||
48 | |||
49 | /** | ||
50 | * Specify the behavior of Alt+Tab while the keyboard is grabbed. | ||
51 | * | ||
52 | * By default, SDL emulates Alt+Tab functionality while the keyboard is | ||
53 | * grabbed and your window is full-screen. This prevents the user from getting | ||
54 | * stuck in your application if you've enabled keyboard grab. | ||
55 | * | ||
56 | * The variable can be set to the following values: | ||
57 | * | ||
58 | * - "0": SDL will not handle Alt+Tab. Your application is responsible for | ||
59 | * handling Alt+Tab while the keyboard is grabbed. | ||
60 | * - "1": SDL will minimize your window when Alt+Tab is pressed (default) | ||
61 | * | ||
62 | * This hint can be set anytime. | ||
63 | * | ||
64 | * \since This hint is available since SDL 3.2.0. | ||
65 | */ | ||
66 | #define SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED "SDL_ALLOW_ALT_TAB_WHILE_GRABBED" | ||
67 | |||
68 | /** | ||
69 | * A variable to control whether the SDL activity is allowed to be re-created. | ||
70 | * | ||
71 | * If this hint is true, the activity can be recreated on demand by the OS, | ||
72 | * and Java static data and C++ static data remain with their current values. | ||
73 | * If this hint is false, then SDL will call exit() when you return from your | ||
74 | * main function and the application will be terminated and then started fresh | ||
75 | * each time. | ||
76 | * | ||
77 | * The variable can be set to the following values: | ||
78 | * | ||
79 | * - "0": The application starts fresh at each launch. (default) | ||
80 | * - "1": The application activity can be recreated by the OS. | ||
81 | * | ||
82 | * This hint can be set anytime. | ||
83 | * | ||
84 | * \since This hint is available since SDL 3.2.0. | ||
85 | */ | ||
86 | #define SDL_HINT_ANDROID_ALLOW_RECREATE_ACTIVITY "SDL_ANDROID_ALLOW_RECREATE_ACTIVITY" | ||
87 | |||
88 | /** | ||
89 | * A variable to control whether the event loop will block itself when the app | ||
90 | * is paused. | ||
91 | * | ||
92 | * The variable can be set to the following values: | ||
93 | * | ||
94 | * - "0": Non blocking. | ||
95 | * - "1": Blocking. (default) | ||
96 | * | ||
97 | * This hint should be set before SDL is initialized. | ||
98 | * | ||
99 | * \since This hint is available since SDL 3.2.0. | ||
100 | */ | ||
101 | #define SDL_HINT_ANDROID_BLOCK_ON_PAUSE "SDL_ANDROID_BLOCK_ON_PAUSE" | ||
102 | |||
103 | /** | ||
104 | * A variable to control whether low latency audio should be enabled. | ||
105 | * | ||
106 | * Some devices have poor quality output when this is enabled, but this is | ||
107 | * usually an improvement in audio latency. | ||
108 | * | ||
109 | * The variable can be set to the following values: | ||
110 | * | ||
111 | * - "0": Low latency audio is not enabled. | ||
112 | * - "1": Low latency audio is enabled. (default) | ||
113 | * | ||
114 | * This hint should be set before SDL audio is initialized. | ||
115 | * | ||
116 | * \since This hint is available since SDL 3.2.0. | ||
117 | */ | ||
118 | #define SDL_HINT_ANDROID_LOW_LATENCY_AUDIO "SDL_ANDROID_LOW_LATENCY_AUDIO" | ||
119 | |||
120 | /** | ||
121 | * A variable to control whether we trap the Android back button to handle it | ||
122 | * manually. | ||
123 | * | ||
124 | * This is necessary for the right mouse button to work on some Android | ||
125 | * devices, or to be able to trap the back button for use in your code | ||
126 | * reliably. If this hint is true, the back button will show up as an | ||
127 | * SDL_EVENT_KEY_DOWN / SDL_EVENT_KEY_UP pair with a keycode of | ||
128 | * SDL_SCANCODE_AC_BACK. | ||
129 | * | ||
130 | * The variable can be set to the following values: | ||
131 | * | ||
132 | * - "0": Back button will be handled as usual for system. (default) | ||
133 | * - "1": Back button will be trapped, allowing you to handle the key press | ||
134 | * manually. (This will also let right mouse click work on systems where the | ||
135 | * right mouse button functions as back.) | ||
136 | * | ||
137 | * This hint can be set anytime. | ||
138 | * | ||
139 | * \since This hint is available since SDL 3.2.0. | ||
140 | */ | ||
141 | #define SDL_HINT_ANDROID_TRAP_BACK_BUTTON "SDL_ANDROID_TRAP_BACK_BUTTON" | ||
142 | |||
143 | /** | ||
144 | * A variable setting the app ID string. | ||
145 | * | ||
146 | * This string is used by desktop compositors to identify and group windows | ||
147 | * together, as well as match applications with associated desktop settings | ||
148 | * and icons. | ||
149 | * | ||
150 | * This will override SDL_PROP_APP_METADATA_IDENTIFIER_STRING, if set by the | ||
151 | * application. | ||
152 | * | ||
153 | * This hint should be set before SDL is initialized. | ||
154 | * | ||
155 | * \since This hint is available since SDL 3.2.0. | ||
156 | */ | ||
157 | #define SDL_HINT_APP_ID "SDL_APP_ID" | ||
158 | |||
159 | /** | ||
160 | * A variable setting the application name. | ||
161 | * | ||
162 | * This hint lets you specify the application name sent to the OS when | ||
163 | * required. For example, this will often appear in volume control applets for | ||
164 | * audio streams, and in lists of applications which are inhibiting the | ||
165 | * screensaver. You should use a string that describes your program ("My Game | ||
166 | * 2: The Revenge") | ||
167 | * | ||
168 | * This will override SDL_PROP_APP_METADATA_NAME_STRING, if set by the | ||
169 | * application. | ||
170 | * | ||
171 | * This hint should be set before SDL is initialized. | ||
172 | * | ||
173 | * \since This hint is available since SDL 3.2.0. | ||
174 | */ | ||
175 | #define SDL_HINT_APP_NAME "SDL_APP_NAME" | ||
176 | |||
177 | /** | ||
178 | * A variable controlling whether controllers used with the Apple TV generate | ||
179 | * UI events. | ||
180 | * | ||
181 | * When UI events are generated by controller input, the app will be | ||
182 | * backgrounded when the Apple TV remote's menu button is pressed, and when | ||
183 | * the pause or B buttons on gamepads are pressed. | ||
184 | * | ||
185 | * More information about properly making use of controllers for the Apple TV | ||
186 | * can be found here: | ||
187 | * https://developer.apple.com/tvos/human-interface-guidelines/remote-and-controllers/ | ||
188 | * | ||
189 | * The variable can be set to the following values: | ||
190 | * | ||
191 | * - "0": Controller input does not generate UI events. (default) | ||
192 | * - "1": Controller input generates UI events. | ||
193 | * | ||
194 | * This hint can be set anytime. | ||
195 | * | ||
196 | * \since This hint is available since SDL 3.2.0. | ||
197 | */ | ||
198 | #define SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS "SDL_APPLE_TV_CONTROLLER_UI_EVENTS" | ||
199 | |||
200 | /** | ||
201 | * A variable controlling whether the Apple TV remote's joystick axes will | ||
202 | * automatically match the rotation of the remote. | ||
203 | * | ||
204 | * The variable can be set to the following values: | ||
205 | * | ||
206 | * - "0": Remote orientation does not affect joystick axes. (default) | ||
207 | * - "1": Joystick axes are based on the orientation of the remote. | ||
208 | * | ||
209 | * This hint can be set anytime. | ||
210 | * | ||
211 | * \since This hint is available since SDL 3.2.0. | ||
212 | */ | ||
213 | #define SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION" | ||
214 | |||
215 | /** | ||
216 | * Specify the default ALSA audio device name. | ||
217 | * | ||
218 | * This variable is a specific audio device to open when the "default" audio | ||
219 | * device is used. | ||
220 | * | ||
221 | * This hint will be ignored when opening the default playback device if | ||
222 | * SDL_HINT_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE is set, or when opening the | ||
223 | * default recording device if SDL_HINT_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE is | ||
224 | * set. | ||
225 | * | ||
226 | * This hint should be set before an audio device is opened. | ||
227 | * | ||
228 | * \since This hint is available since SDL 3.2.0. | ||
229 | * | ||
230 | * \sa SDL_HINT_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE | ||
231 | * \sa SDL_HINT_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE | ||
232 | */ | ||
233 | #define SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE "SDL_AUDIO_ALSA_DEFAULT_DEVICE" | ||
234 | |||
235 | /** | ||
236 | * Specify the default ALSA audio playback device name. | ||
237 | * | ||
238 | * This variable is a specific audio device to open for playback, when the | ||
239 | * "default" audio device is used. | ||
240 | * | ||
241 | * If this hint isn't set, SDL will check SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE | ||
242 | * before choosing a reasonable default. | ||
243 | * | ||
244 | * This hint should be set before an audio device is opened. | ||
245 | * | ||
246 | * \since This hint is available since SDL 3.2.0. | ||
247 | * | ||
248 | * \sa SDL_HINT_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE | ||
249 | * \sa SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE | ||
250 | */ | ||
251 | #define SDL_HINT_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE "SDL_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE" | ||
252 | |||
253 | /** | ||
254 | * Specify the default ALSA audio recording device name. | ||
255 | * | ||
256 | * This variable is a specific audio device to open for recording, when the | ||
257 | * "default" audio device is used. | ||
258 | * | ||
259 | * If this hint isn't set, SDL will check SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE | ||
260 | * before choosing a reasonable default. | ||
261 | * | ||
262 | * This hint should be set before an audio device is opened. | ||
263 | * | ||
264 | * \since This hint is available since SDL 3.2.0. | ||
265 | * | ||
266 | * \sa SDL_HINT_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE | ||
267 | * \sa SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE | ||
268 | */ | ||
269 | #define SDL_HINT_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE "SDL_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE" | ||
270 | |||
271 | /** | ||
272 | * A variable controlling the audio category on iOS and macOS. | ||
273 | * | ||
274 | * The variable can be set to the following values: | ||
275 | * | ||
276 | * - "ambient": Use the AVAudioSessionCategoryAmbient audio category, will be | ||
277 | * muted by the phone mute switch (default) | ||
278 | * - "playback": Use the AVAudioSessionCategoryPlayback category. | ||
279 | * | ||
280 | * For more information, see Apple's documentation: | ||
281 | * https://developer.apple.com/library/content/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategoriesandModes/AudioSessionCategoriesandModes.html | ||
282 | * | ||
283 | * This hint should be set before an audio device is opened. | ||
284 | * | ||
285 | * \since This hint is available since SDL 3.2.0. | ||
286 | */ | ||
287 | #define SDL_HINT_AUDIO_CATEGORY "SDL_AUDIO_CATEGORY" | ||
288 | |||
289 | /** | ||
290 | * A variable controlling the default audio channel count. | ||
291 | * | ||
292 | * If the application doesn't specify the audio channel count when opening the | ||
293 | * device, this hint can be used to specify a default channel count that will | ||
294 | * be used. This defaults to "1" for recording and "2" for playback devices. | ||
295 | * | ||
296 | * This hint should be set before an audio device is opened. | ||
297 | * | ||
298 | * \since This hint is available since SDL 3.2.0. | ||
299 | */ | ||
300 | #define SDL_HINT_AUDIO_CHANNELS "SDL_AUDIO_CHANNELS" | ||
301 | |||
302 | /** | ||
303 | * Specify an application icon name for an audio device. | ||
304 | * | ||
305 | * Some audio backends (such as Pulseaudio and Pipewire) allow you to set an | ||
306 | * XDG icon name for your application. Among other things, this icon might | ||
307 | * show up in a system control panel that lets the user adjust the volume on | ||
308 | * specific audio streams instead of using one giant master volume slider. | ||
309 | * Note that this is unrelated to the icon used by the windowing system, which | ||
310 | * may be set with SDL_SetWindowIcon (or via desktop file on Wayland). | ||
311 | * | ||
312 | * Setting this to "" or leaving it unset will have SDL use a reasonable | ||
313 | * default, "applications-games", which is likely to be installed. See | ||
314 | * https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html | ||
315 | * and | ||
316 | * https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html | ||
317 | * for the relevant XDG icon specs. | ||
318 | * | ||
319 | * This hint should be set before an audio device is opened. | ||
320 | * | ||
321 | * \since This hint is available since SDL 3.2.0. | ||
322 | */ | ||
323 | #define SDL_HINT_AUDIO_DEVICE_APP_ICON_NAME "SDL_AUDIO_DEVICE_APP_ICON_NAME" | ||
324 | |||
325 | /** | ||
326 | * A variable controlling device buffer size. | ||
327 | * | ||
328 | * This hint is an integer > 0, that represents the size of the device's | ||
329 | * buffer in sample frames (stereo audio data in 16-bit format is 4 bytes per | ||
330 | * sample frame, for example). | ||
331 | * | ||
332 | * SDL3 generally decides this value on behalf of the app, but if for some | ||
333 | * reason the app needs to dictate this (because they want either lower | ||
334 | * latency or higher throughput AND ARE WILLING TO DEAL WITH what that might | ||
335 | * require of the app), they can specify it. | ||
336 | * | ||
337 | * SDL will try to accommodate this value, but there is no promise you'll get | ||
338 | * the buffer size requested. Many platforms won't honor this request at all, | ||
339 | * or might adjust it. | ||
340 | * | ||
341 | * This hint should be set before an audio device is opened. | ||
342 | * | ||
343 | * \since This hint is available since SDL 3.2.0. | ||
344 | */ | ||
345 | #define SDL_HINT_AUDIO_DEVICE_SAMPLE_FRAMES "SDL_AUDIO_DEVICE_SAMPLE_FRAMES" | ||
346 | |||
347 | /** | ||
348 | * Specify an audio stream name for an audio device. | ||
349 | * | ||
350 | * Some audio backends (such as PulseAudio) allow you to describe your audio | ||
351 | * stream. Among other things, this description might show up in a system | ||
352 | * control panel that lets the user adjust the volume on specific audio | ||
353 | * streams instead of using one giant master volume slider. | ||
354 | * | ||
355 | * This hints lets you transmit that information to the OS. The contents of | ||
356 | * this hint are used while opening an audio device. You should use a string | ||
357 | * that describes your what your program is playing ("audio stream" is | ||
358 | * probably sufficient in many cases, but this could be useful for something | ||
359 | * like "team chat" if you have a headset playing VoIP audio separately). | ||
360 | * | ||
361 | * Setting this to "" or leaving it unset will have SDL use a reasonable | ||
362 | * default: "audio stream" or something similar. | ||
363 | * | ||
364 | * Note that while this talks about audio streams, this is an OS-level | ||
365 | * concept, so it applies to a physical audio device in this case, and not an | ||
366 | * SDL_AudioStream, nor an SDL logical audio device. | ||
367 | * | ||
368 | * This hint should be set before an audio device is opened. | ||
369 | * | ||
370 | * \since This hint is available since SDL 3.2.0. | ||
371 | */ | ||
372 | #define SDL_HINT_AUDIO_DEVICE_STREAM_NAME "SDL_AUDIO_DEVICE_STREAM_NAME" | ||
373 | |||
374 | /** | ||
375 | * Specify an application role for an audio device. | ||
376 | * | ||
377 | * Some audio backends (such as Pipewire) allow you to describe the role of | ||
378 | * your audio stream. Among other things, this description might show up in a | ||
379 | * system control panel or software for displaying and manipulating media | ||
380 | * playback/recording graphs. | ||
381 | * | ||
382 | * This hints lets you transmit that information to the OS. The contents of | ||
383 | * this hint are used while opening an audio device. You should use a string | ||
384 | * that describes your what your program is playing (Game, Music, Movie, | ||
385 | * etc...). | ||
386 | * | ||
387 | * Setting this to "" or leaving it unset will have SDL use a reasonable | ||
388 | * default: "Game" or something similar. | ||
389 | * | ||
390 | * Note that while this talks about audio streams, this is an OS-level | ||
391 | * concept, so it applies to a physical audio device in this case, and not an | ||
392 | * SDL_AudioStream, nor an SDL logical audio device. | ||
393 | * | ||
394 | * This hint should be set before an audio device is opened. | ||
395 | * | ||
396 | * \since This hint is available since SDL 3.2.0. | ||
397 | */ | ||
398 | #define SDL_HINT_AUDIO_DEVICE_STREAM_ROLE "SDL_AUDIO_DEVICE_STREAM_ROLE" | ||
399 | |||
400 | /** | ||
401 | * Specify the input file when recording audio using the disk audio driver. | ||
402 | * | ||
403 | * This defaults to "sdlaudio-in.raw" | ||
404 | * | ||
405 | * This hint should be set before an audio device is opened. | ||
406 | * | ||
407 | * \since This hint is available since SDL 3.2.0. | ||
408 | */ | ||
409 | #define SDL_HINT_AUDIO_DISK_INPUT_FILE "SDL_AUDIO_DISK_INPUT_FILE" | ||
410 | |||
411 | /** | ||
412 | * Specify the output file when playing audio using the disk audio driver. | ||
413 | * | ||
414 | * This defaults to "sdlaudio.raw" | ||
415 | * | ||
416 | * This hint should be set before an audio device is opened. | ||
417 | * | ||
418 | * \since This hint is available since SDL 3.2.0. | ||
419 | */ | ||
420 | #define SDL_HINT_AUDIO_DISK_OUTPUT_FILE "SDL_AUDIO_DISK_OUTPUT_FILE" | ||
421 | |||
422 | /** | ||
423 | * A variable controlling the audio rate when using the disk audio driver. | ||
424 | * | ||
425 | * The disk audio driver normally simulates real-time for the audio rate that | ||
426 | * was specified, but you can use this variable to adjust this rate higher or | ||
427 | * lower down to 0. The default value is "1.0". | ||
428 | * | ||
429 | * This hint should be set before an audio device is opened. | ||
430 | * | ||
431 | * \since This hint is available since SDL 3.2.0. | ||
432 | */ | ||
433 | #define SDL_HINT_AUDIO_DISK_TIMESCALE "SDL_AUDIO_DISK_TIMESCALE" | ||
434 | |||
435 | /** | ||
436 | * A variable that specifies an audio backend to use. | ||
437 | * | ||
438 | * By default, SDL will try all available audio backends in a reasonable order | ||
439 | * until it finds one that can work, but this hint allows the app or user to | ||
440 | * force a specific driver, such as "pipewire" if, say, you are on PulseAudio | ||
441 | * but want to try talking to the lower level instead. | ||
442 | * | ||
443 | * This hint should be set before SDL is initialized. | ||
444 | * | ||
445 | * \since This hint is available since SDL 3.2.0. | ||
446 | */ | ||
447 | #define SDL_HINT_AUDIO_DRIVER "SDL_AUDIO_DRIVER" | ||
448 | |||
449 | /** | ||
450 | * A variable controlling the audio rate when using the dummy audio driver. | ||
451 | * | ||
452 | * The dummy audio driver normally simulates real-time for the audio rate that | ||
453 | * was specified, but you can use this variable to adjust this rate higher or | ||
454 | * lower down to 0. The default value is "1.0". | ||
455 | * | ||
456 | * This hint should be set before an audio device is opened. | ||
457 | * | ||
458 | * \since This hint is available since SDL 3.2.0. | ||
459 | */ | ||
460 | #define SDL_HINT_AUDIO_DUMMY_TIMESCALE "SDL_AUDIO_DUMMY_TIMESCALE" | ||
461 | |||
462 | /** | ||
463 | * A variable controlling the default audio format. | ||
464 | * | ||
465 | * If the application doesn't specify the audio format when opening the | ||
466 | * device, this hint can be used to specify a default format that will be | ||
467 | * used. | ||
468 | * | ||
469 | * The variable can be set to the following values: | ||
470 | * | ||
471 | * - "U8": Unsigned 8-bit audio | ||
472 | * - "S8": Signed 8-bit audio | ||
473 | * - "S16LE": Signed 16-bit little-endian audio | ||
474 | * - "S16BE": Signed 16-bit big-endian audio | ||
475 | * - "S16": Signed 16-bit native-endian audio (default) | ||
476 | * - "S32LE": Signed 32-bit little-endian audio | ||
477 | * - "S32BE": Signed 32-bit big-endian audio | ||
478 | * - "S32": Signed 32-bit native-endian audio | ||
479 | * - "F32LE": Floating point little-endian audio | ||
480 | * - "F32BE": Floating point big-endian audio | ||
481 | * - "F32": Floating point native-endian audio | ||
482 | * | ||
483 | * This hint should be set before an audio device is opened. | ||
484 | * | ||
485 | * \since This hint is available since SDL 3.2.0. | ||
486 | */ | ||
487 | #define SDL_HINT_AUDIO_FORMAT "SDL_AUDIO_FORMAT" | ||
488 | |||
489 | /** | ||
490 | * A variable controlling the default audio frequency. | ||
491 | * | ||
492 | * If the application doesn't specify the audio frequency when opening the | ||
493 | * device, this hint can be used to specify a default frequency that will be | ||
494 | * used. This defaults to "44100". | ||
495 | * | ||
496 | * This hint should be set before an audio device is opened. | ||
497 | * | ||
498 | * \since This hint is available since SDL 3.2.0. | ||
499 | */ | ||
500 | #define SDL_HINT_AUDIO_FREQUENCY "SDL_AUDIO_FREQUENCY" | ||
501 | |||
502 | /** | ||
503 | * A variable that causes SDL to not ignore audio "monitors". | ||
504 | * | ||
505 | * This is currently only used by the PulseAudio driver. | ||
506 | * | ||
507 | * By default, SDL ignores audio devices that aren't associated with physical | ||
508 | * hardware. Changing this hint to "1" will expose anything SDL sees that | ||
509 | * appears to be an audio source or sink. This will add "devices" to the list | ||
510 | * that the user probably doesn't want or need, but it can be useful in | ||
511 | * scenarios where you want to hook up SDL to some sort of virtual device, | ||
512 | * etc. | ||
513 | * | ||
514 | * The variable can be set to the following values: | ||
515 | * | ||
516 | * - "0": Audio monitor devices will be ignored. (default) | ||
517 | * - "1": Audio monitor devices will show up in the device list. | ||
518 | * | ||
519 | * This hint should be set before SDL is initialized. | ||
520 | * | ||
521 | * \since This hint is available since SDL 3.2.0. | ||
522 | */ | ||
523 | #define SDL_HINT_AUDIO_INCLUDE_MONITORS "SDL_AUDIO_INCLUDE_MONITORS" | ||
524 | |||
525 | /** | ||
526 | * A variable controlling whether SDL updates joystick state when getting | ||
527 | * input events. | ||
528 | * | ||
529 | * The variable can be set to the following values: | ||
530 | * | ||
531 | * - "0": You'll call SDL_UpdateJoysticks() manually. | ||
532 | * - "1": SDL will automatically call SDL_UpdateJoysticks(). (default) | ||
533 | * | ||
534 | * This hint can be set anytime. | ||
535 | * | ||
536 | * \since This hint is available since SDL 3.2.0. | ||
537 | */ | ||
538 | #define SDL_HINT_AUTO_UPDATE_JOYSTICKS "SDL_AUTO_UPDATE_JOYSTICKS" | ||
539 | |||
540 | /** | ||
541 | * A variable controlling whether SDL updates sensor state when getting input | ||
542 | * events. | ||
543 | * | ||
544 | * The variable can be set to the following values: | ||
545 | * | ||
546 | * - "0": You'll call SDL_UpdateSensors() manually. | ||
547 | * - "1": SDL will automatically call SDL_UpdateSensors(). (default) | ||
548 | * | ||
549 | * This hint can be set anytime. | ||
550 | * | ||
551 | * \since This hint is available since SDL 3.2.0. | ||
552 | */ | ||
553 | #define SDL_HINT_AUTO_UPDATE_SENSORS "SDL_AUTO_UPDATE_SENSORS" | ||
554 | |||
555 | /** | ||
556 | * Prevent SDL from using version 4 of the bitmap header when saving BMPs. | ||
557 | * | ||
558 | * The bitmap header version 4 is required for proper alpha channel support | ||
559 | * and SDL will use it when required. Should this not be desired, this hint | ||
560 | * can force the use of the 40 byte header version which is supported | ||
561 | * everywhere. | ||
562 | * | ||
563 | * The variable can be set to the following values: | ||
564 | * | ||
565 | * - "0": Surfaces with a colorkey or an alpha channel are saved to a 32-bit | ||
566 | * BMP file with an alpha mask. SDL will use the bitmap header version 4 and | ||
567 | * set the alpha mask accordingly. (default) | ||
568 | * - "1": Surfaces with a colorkey or an alpha channel are saved to a 32-bit | ||
569 | * BMP file without an alpha mask. The alpha channel data will be in the | ||
570 | * file, but applications are going to ignore it. | ||
571 | * | ||
572 | * This hint can be set anytime. | ||
573 | * | ||
574 | * \since This hint is available since SDL 3.2.0. | ||
575 | */ | ||
576 | #define SDL_HINT_BMP_SAVE_LEGACY_FORMAT "SDL_BMP_SAVE_LEGACY_FORMAT" | ||
577 | |||
578 | /** | ||
579 | * A variable that decides what camera backend to use. | ||
580 | * | ||
581 | * By default, SDL will try all available camera backends in a reasonable | ||
582 | * order until it finds one that can work, but this hint allows the app or | ||
583 | * user to force a specific target, such as "directshow" if, say, you are on | ||
584 | * Windows Media Foundations but want to try DirectShow instead. | ||
585 | * | ||
586 | * The default value is unset, in which case SDL will try to figure out the | ||
587 | * best camera backend on your behalf. This hint needs to be set before | ||
588 | * SDL_Init() is called to be useful. | ||
589 | * | ||
590 | * \since This hint is available since SDL 3.2.0. | ||
591 | */ | ||
592 | #define SDL_HINT_CAMERA_DRIVER "SDL_CAMERA_DRIVER" | ||
593 | |||
594 | /** | ||
595 | * A variable that limits what CPU features are available. | ||
596 | * | ||
597 | * By default, SDL marks all features the current CPU supports as available. | ||
598 | * This hint allows to limit these to a subset. | ||
599 | * | ||
600 | * When the hint is unset, or empty, SDL will enable all detected CPU | ||
601 | * features. | ||
602 | * | ||
603 | * The variable can be set to a comma separated list containing the following | ||
604 | * items: | ||
605 | * | ||
606 | * - "all" | ||
607 | * - "altivec" | ||
608 | * - "sse" | ||
609 | * - "sse2" | ||
610 | * - "sse3" | ||
611 | * - "sse41" | ||
612 | * - "sse42" | ||
613 | * - "avx" | ||
614 | * - "avx2" | ||
615 | * - "avx512f" | ||
616 | * - "arm-simd" | ||
617 | * - "neon" | ||
618 | * - "lsx" | ||
619 | * - "lasx" | ||
620 | * | ||
621 | * The items can be prefixed by '+'/'-' to add/remove features. | ||
622 | * | ||
623 | * \since This hint is available since SDL 3.2.0. | ||
624 | */ | ||
625 | #define SDL_HINT_CPU_FEATURE_MASK "SDL_CPU_FEATURE_MASK" | ||
626 | |||
627 | /** | ||
628 | * A variable controlling whether DirectInput should be used for controllers. | ||
629 | * | ||
630 | * The variable can be set to the following values: | ||
631 | * | ||
632 | * - "0": Disable DirectInput detection. | ||
633 | * - "1": Enable DirectInput detection. (default) | ||
634 | * | ||
635 | * This hint should be set before SDL is initialized. | ||
636 | * | ||
637 | * \since This hint is available since SDL 3.2.0. | ||
638 | */ | ||
639 | #define SDL_HINT_JOYSTICK_DIRECTINPUT "SDL_JOYSTICK_DIRECTINPUT" | ||
640 | |||
641 | /** | ||
642 | * A variable that specifies a dialog backend to use. | ||
643 | * | ||
644 | * By default, SDL will try all available dialog backends in a reasonable | ||
645 | * order until it finds one that can work, but this hint allows the app or | ||
646 | * user to force a specific target. | ||
647 | * | ||
648 | * If the specified target does not exist or is not available, the | ||
649 | * dialog-related function calls will fail. | ||
650 | * | ||
651 | * This hint currently only applies to platforms using the generic "Unix" | ||
652 | * dialog implementation, but may be extended to more platforms in the future. | ||
653 | * Note that some Unix and Unix-like platforms have their own implementation, | ||
654 | * such as macOS and Haiku. | ||
655 | * | ||
656 | * The variable can be set to the following values: | ||
657 | * | ||
658 | * - NULL: Select automatically (default, all platforms) | ||
659 | * - "portal": Use XDG Portals through DBus (Unix only) | ||
660 | * - "zenity": Use the Zenity program (Unix only) | ||
661 | * | ||
662 | * More options may be added in the future. | ||
663 | * | ||
664 | * This hint can be set anytime. | ||
665 | * | ||
666 | * \since This hint is available since SDL 3.2.0. | ||
667 | */ | ||
668 | #define SDL_HINT_FILE_DIALOG_DRIVER "SDL_FILE_DIALOG_DRIVER" | ||
669 | |||
670 | /** | ||
671 | * Override for SDL_GetDisplayUsableBounds(). | ||
672 | * | ||
673 | * If set, this hint will override the expected results for | ||
674 | * SDL_GetDisplayUsableBounds() for display index 0. Generally you don't want | ||
675 | * to do this, but this allows an embedded system to request that some of the | ||
676 | * screen be reserved for other uses when paired with a well-behaved | ||
677 | * application. | ||
678 | * | ||
679 | * The contents of this hint must be 4 comma-separated integers, the first is | ||
680 | * the bounds x, then y, width and height, in that order. | ||
681 | * | ||
682 | * This hint can be set anytime. | ||
683 | * | ||
684 | * \since This hint is available since SDL 3.2.0. | ||
685 | */ | ||
686 | #define SDL_HINT_DISPLAY_USABLE_BOUNDS "SDL_DISPLAY_USABLE_BOUNDS" | ||
687 | |||
688 | /** | ||
689 | * Disable giving back control to the browser automatically when running with | ||
690 | * asyncify. | ||
691 | * | ||
692 | * With -s ASYNCIFY, SDL calls emscripten_sleep during operations such as | ||
693 | * refreshing the screen or polling events. | ||
694 | * | ||
695 | * This hint only applies to the emscripten platform. | ||
696 | * | ||
697 | * The variable can be set to the following values: | ||
698 | * | ||
699 | * - "0": Disable emscripten_sleep calls (if you give back browser control | ||
700 | * manually or use asyncify for other purposes). | ||
701 | * - "1": Enable emscripten_sleep calls. (default) | ||
702 | * | ||
703 | * This hint can be set anytime. | ||
704 | * | ||
705 | * \since This hint is available since SDL 3.2.0. | ||
706 | */ | ||
707 | #define SDL_HINT_EMSCRIPTEN_ASYNCIFY "SDL_EMSCRIPTEN_ASYNCIFY" | ||
708 | |||
709 | /** | ||
710 | * Specify the CSS selector used for the "default" window/canvas. | ||
711 | * | ||
712 | * This hint only applies to the emscripten platform. | ||
713 | * | ||
714 | * The default value is "#canvas" | ||
715 | * | ||
716 | * This hint should be set before creating a window. | ||
717 | * | ||
718 | * \since This hint is available since SDL 3.2.0. | ||
719 | */ | ||
720 | #define SDL_HINT_EMSCRIPTEN_CANVAS_SELECTOR "SDL_EMSCRIPTEN_CANVAS_SELECTOR" | ||
721 | |||
722 | /** | ||
723 | * Override the binding element for keyboard inputs for Emscripten builds. | ||
724 | * | ||
725 | * This hint only applies to the emscripten platform. | ||
726 | * | ||
727 | * The variable can be one of: | ||
728 | * | ||
729 | * - "#window": the javascript window object (default) | ||
730 | * - "#document": the javascript document object | ||
731 | * - "#screen": the javascript window.screen object | ||
732 | * - "#canvas": the WebGL canvas element | ||
733 | * - "#none": Don't bind anything at all | ||
734 | * - any other string without a leading # sign applies to the element on the | ||
735 | * page with that ID. | ||
736 | * | ||
737 | * This hint should be set before creating a window. | ||
738 | * | ||
739 | * \since This hint is available since SDL 3.2.0. | ||
740 | */ | ||
741 | #define SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT" | ||
742 | |||
743 | /** | ||
744 | * A variable that controls whether the on-screen keyboard should be shown | ||
745 | * when text input is active. | ||
746 | * | ||
747 | * The variable can be set to the following values: | ||
748 | * | ||
749 | * - "auto": The on-screen keyboard will be shown if there is no physical | ||
750 | * keyboard attached. (default) | ||
751 | * - "0": Do not show the on-screen keyboard. | ||
752 | * - "1": Show the on-screen keyboard, if available. | ||
753 | * | ||
754 | * This hint must be set before SDL_StartTextInput() is called | ||
755 | * | ||
756 | * \since This hint is available since SDL 3.2.0. | ||
757 | */ | ||
758 | #define SDL_HINT_ENABLE_SCREEN_KEYBOARD "SDL_ENABLE_SCREEN_KEYBOARD" | ||
759 | |||
760 | /** | ||
761 | * A variable containing a list of evdev devices to use if udev is not | ||
762 | * available. | ||
763 | * | ||
764 | * The list of devices is in the form: | ||
765 | * | ||
766 | * deviceclass:path[,deviceclass:path[,...]] | ||
767 | * | ||
768 | * where device class is an integer representing the SDL_UDEV_deviceclass and | ||
769 | * path is the full path to the event device. | ||
770 | * | ||
771 | * This hint should be set before SDL is initialized. | ||
772 | * | ||
773 | * \since This hint is available since SDL 3.2.0. | ||
774 | */ | ||
775 | #define SDL_HINT_EVDEV_DEVICES "SDL_EVDEV_DEVICES" | ||
776 | |||
777 | /** | ||
778 | * A variable controlling verbosity of the logging of SDL events pushed onto | ||
779 | * the internal queue. | ||
780 | * | ||
781 | * The variable can be set to the following values, from least to most | ||
782 | * verbose: | ||
783 | * | ||
784 | * - "0": Don't log any events. (default) | ||
785 | * - "1": Log most events (other than the really spammy ones). | ||
786 | * - "2": Include mouse and finger motion events. | ||
787 | * | ||
788 | * This is generally meant to be used to debug SDL itself, but can be useful | ||
789 | * for application developers that need better visibility into what is going | ||
790 | * on in the event queue. Logged events are sent through SDL_Log(), which | ||
791 | * means by default they appear on stdout on most platforms or maybe | ||
792 | * OutputDebugString() on Windows, and can be funneled by the app with | ||
793 | * SDL_SetLogOutputFunction(), etc. | ||
794 | * | ||
795 | * This hint can be set anytime. | ||
796 | * | ||
797 | * \since This hint is available since SDL 3.2.0. | ||
798 | */ | ||
799 | #define SDL_HINT_EVENT_LOGGING "SDL_EVENT_LOGGING" | ||
800 | |||
801 | /** | ||
802 | * A variable controlling whether raising the window should be done more | ||
803 | * forcefully. | ||
804 | * | ||
805 | * The variable can be set to the following values: | ||
806 | * | ||
807 | * - "0": Honor the OS policy for raising windows. (default) | ||
808 | * - "1": Force the window to be raised, overriding any OS policy. | ||
809 | * | ||
810 | * At present, this is only an issue under MS Windows, which makes it nearly | ||
811 | * impossible to programmatically move a window to the foreground, for | ||
812 | * "security" reasons. See http://stackoverflow.com/a/34414846 for a | ||
813 | * discussion. | ||
814 | * | ||
815 | * This hint can be set anytime. | ||
816 | * | ||
817 | * \since This hint is available since SDL 3.2.0. | ||
818 | */ | ||
819 | #define SDL_HINT_FORCE_RAISEWINDOW "SDL_FORCE_RAISEWINDOW" | ||
820 | |||
821 | /** | ||
822 | * A variable controlling how 3D acceleration is used to accelerate the SDL | ||
823 | * screen surface. | ||
824 | * | ||
825 | * SDL can try to accelerate the SDL screen surface by using streaming | ||
826 | * textures with a 3D rendering engine. This variable controls whether and how | ||
827 | * this is done. | ||
828 | * | ||
829 | * The variable can be set to the following values: | ||
830 | * | ||
831 | * - "0": Disable 3D acceleration | ||
832 | * - "1": Enable 3D acceleration, using the default renderer. (default) | ||
833 | * - "X": Enable 3D acceleration, using X where X is one of the valid | ||
834 | * rendering drivers. (e.g. "direct3d", "opengl", etc.) | ||
835 | * | ||
836 | * This hint should be set before calling SDL_GetWindowSurface() | ||
837 | * | ||
838 | * \since This hint is available since SDL 3.2.0. | ||
839 | */ | ||
840 | #define SDL_HINT_FRAMEBUFFER_ACCELERATION "SDL_FRAMEBUFFER_ACCELERATION" | ||
841 | |||
842 | /** | ||
843 | * A variable that lets you manually hint extra gamecontroller db entries. | ||
844 | * | ||
845 | * The variable should be newline delimited rows of gamecontroller config | ||
846 | * data, see SDL_gamepad.h | ||
847 | * | ||
848 | * You can update mappings after SDL is initialized with | ||
849 | * SDL_GetGamepadMappingForGUID() and SDL_AddGamepadMapping() | ||
850 | * | ||
851 | * This hint should be set before SDL is initialized. | ||
852 | * | ||
853 | * \since This hint is available since SDL 3.2.0. | ||
854 | */ | ||
855 | #define SDL_HINT_GAMECONTROLLERCONFIG "SDL_GAMECONTROLLERCONFIG" | ||
856 | |||
857 | /** | ||
858 | * A variable that lets you provide a file with extra gamecontroller db | ||
859 | * entries. | ||
860 | * | ||
861 | * The file should contain lines of gamecontroller config data, see | ||
862 | * SDL_gamepad.h | ||
863 | * | ||
864 | * You can update mappings after SDL is initialized with | ||
865 | * SDL_GetGamepadMappingForGUID() and SDL_AddGamepadMapping() | ||
866 | * | ||
867 | * This hint should be set before SDL is initialized. | ||
868 | * | ||
869 | * \since This hint is available since SDL 3.2.0. | ||
870 | */ | ||
871 | #define SDL_HINT_GAMECONTROLLERCONFIG_FILE "SDL_GAMECONTROLLERCONFIG_FILE" | ||
872 | |||
873 | /** | ||
874 | * A variable that overrides the automatic controller type detection. | ||
875 | * | ||
876 | * The variable should be comma separated entries, in the form: VID/PID=type | ||
877 | * | ||
878 | * The VID and PID should be hexadecimal with exactly 4 digits, e.g. 0x00fd | ||
879 | * | ||
880 | * This hint affects what low level protocol is used with the HIDAPI driver. | ||
881 | * | ||
882 | * The variable can be set to the following values: | ||
883 | * | ||
884 | * - "Xbox360" | ||
885 | * - "XboxOne" | ||
886 | * - "PS3" | ||
887 | * - "PS4" | ||
888 | * - "PS5" | ||
889 | * - "SwitchPro" | ||
890 | * | ||
891 | * This hint should be set before SDL is initialized. | ||
892 | * | ||
893 | * \since This hint is available since SDL 3.2.0. | ||
894 | */ | ||
895 | #define SDL_HINT_GAMECONTROLLERTYPE "SDL_GAMECONTROLLERTYPE" | ||
896 | |||
897 | /** | ||
898 | * A variable containing a list of devices to skip when scanning for game | ||
899 | * controllers. | ||
900 | * | ||
901 | * The format of the string is a comma separated list of USB VID/PID pairs in | ||
902 | * hexadecimal form, e.g. | ||
903 | * | ||
904 | * 0xAAAA/0xBBBB,0xCCCC/0xDDDD | ||
905 | * | ||
906 | * The variable can also take the form of "@file", in which case the named | ||
907 | * file will be loaded and interpreted as the value of the variable. | ||
908 | * | ||
909 | * This hint can be set anytime. | ||
910 | * | ||
911 | * \since This hint is available since SDL 3.2.0. | ||
912 | */ | ||
913 | #define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES "SDL_GAMECONTROLLER_IGNORE_DEVICES" | ||
914 | |||
915 | /** | ||
916 | * If set, all devices will be skipped when scanning for game controllers | ||
917 | * except for the ones listed in this variable. | ||
918 | * | ||
919 | * The format of the string is a comma separated list of USB VID/PID pairs in | ||
920 | * hexadecimal form, e.g. | ||
921 | * | ||
922 | * 0xAAAA/0xBBBB,0xCCCC/0xDDDD | ||
923 | * | ||
924 | * The variable can also take the form of "@file", in which case the named | ||
925 | * file will be loaded and interpreted as the value of the variable. | ||
926 | * | ||
927 | * This hint can be set anytime. | ||
928 | * | ||
929 | * \since This hint is available since SDL 3.2.0. | ||
930 | */ | ||
931 | #define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT" | ||
932 | |||
933 | /** | ||
934 | * A variable that controls whether the device's built-in accelerometer and | ||
935 | * gyro should be used as sensors for gamepads. | ||
936 | * | ||
937 | * The variable can be set to the following values: | ||
938 | * | ||
939 | * - "0": Sensor fusion is disabled | ||
940 | * - "1": Sensor fusion is enabled for all controllers that lack sensors | ||
941 | * | ||
942 | * Or the variable can be a comma separated list of USB VID/PID pairs in | ||
943 | * hexadecimal form, e.g. | ||
944 | * | ||
945 | * 0xAAAA/0xBBBB,0xCCCC/0xDDDD | ||
946 | * | ||
947 | * The variable can also take the form of "@file", in which case the named | ||
948 | * file will be loaded and interpreted as the value of the variable. | ||
949 | * | ||
950 | * This hint should be set before a gamepad is opened. | ||
951 | * | ||
952 | * \since This hint is available since SDL 3.2.0. | ||
953 | */ | ||
954 | #define SDL_HINT_GAMECONTROLLER_SENSOR_FUSION "SDL_GAMECONTROLLER_SENSOR_FUSION" | ||
955 | |||
956 | /** | ||
957 | * This variable sets the default text of the TextInput window on GDK | ||
958 | * platforms. | ||
959 | * | ||
960 | * This hint is available only if SDL_GDK_TEXTINPUT defined. | ||
961 | * | ||
962 | * This hint should be set before calling SDL_StartTextInput() | ||
963 | * | ||
964 | * \since This hint is available since SDL 3.2.0. | ||
965 | */ | ||
966 | #define SDL_HINT_GDK_TEXTINPUT_DEFAULT_TEXT "SDL_GDK_TEXTINPUT_DEFAULT_TEXT" | ||
967 | |||
968 | /** | ||
969 | * This variable sets the description of the TextInput window on GDK | ||
970 | * platforms. | ||
971 | * | ||
972 | * This hint is available only if SDL_GDK_TEXTINPUT defined. | ||
973 | * | ||
974 | * This hint should be set before calling SDL_StartTextInput() | ||
975 | * | ||
976 | * \since This hint is available since SDL 3.2.0. | ||
977 | */ | ||
978 | #define SDL_HINT_GDK_TEXTINPUT_DESCRIPTION "SDL_GDK_TEXTINPUT_DESCRIPTION" | ||
979 | |||
980 | /** | ||
981 | * This variable sets the maximum input length of the TextInput window on GDK | ||
982 | * platforms. | ||
983 | * | ||
984 | * The value must be a stringified integer, for example "10" to allow for up | ||
985 | * to 10 characters of text input. | ||
986 | * | ||
987 | * This hint is available only if SDL_GDK_TEXTINPUT defined. | ||
988 | * | ||
989 | * This hint should be set before calling SDL_StartTextInput() | ||
990 | * | ||
991 | * \since This hint is available since SDL 3.2.0. | ||
992 | */ | ||
993 | #define SDL_HINT_GDK_TEXTINPUT_MAX_LENGTH "SDL_GDK_TEXTINPUT_MAX_LENGTH" | ||
994 | |||
995 | /** | ||
996 | * This variable sets the input scope of the TextInput window on GDK | ||
997 | * platforms. | ||
998 | * | ||
999 | * Set this hint to change the XGameUiTextEntryInputScope value that will be | ||
1000 | * passed to the window creation function. The value must be a stringified | ||
1001 | * integer, for example "0" for XGameUiTextEntryInputScope::Default. | ||
1002 | * | ||
1003 | * This hint is available only if SDL_GDK_TEXTINPUT defined. | ||
1004 | * | ||
1005 | * This hint should be set before calling SDL_StartTextInput() | ||
1006 | * | ||
1007 | * \since This hint is available since SDL 3.2.0. | ||
1008 | */ | ||
1009 | #define SDL_HINT_GDK_TEXTINPUT_SCOPE "SDL_GDK_TEXTINPUT_SCOPE" | ||
1010 | |||
1011 | /** | ||
1012 | * This variable sets the title of the TextInput window on GDK platforms. | ||
1013 | * | ||
1014 | * This hint is available only if SDL_GDK_TEXTINPUT defined. | ||
1015 | * | ||
1016 | * This hint should be set before calling SDL_StartTextInput() | ||
1017 | * | ||
1018 | * \since This hint is available since SDL 3.2.0. | ||
1019 | */ | ||
1020 | #define SDL_HINT_GDK_TEXTINPUT_TITLE "SDL_GDK_TEXTINPUT_TITLE" | ||
1021 | |||
1022 | /** | ||
1023 | * A variable to control whether HIDAPI uses libusb for device access. | ||
1024 | * | ||
1025 | * By default libusb will only be used for a few devices that require direct | ||
1026 | * USB access, and this can be controlled with | ||
1027 | * SDL_HINT_HIDAPI_LIBUSB_WHITELIST. | ||
1028 | * | ||
1029 | * The variable can be set to the following values: | ||
1030 | * | ||
1031 | * - "0": HIDAPI will not use libusb for device access. | ||
1032 | * - "1": HIDAPI will use libusb for device access if available. (default) | ||
1033 | * | ||
1034 | * This hint should be set before SDL is initialized. | ||
1035 | * | ||
1036 | * \since This hint is available since SDL 3.2.0. | ||
1037 | */ | ||
1038 | #define SDL_HINT_HIDAPI_LIBUSB "SDL_HIDAPI_LIBUSB" | ||
1039 | |||
1040 | /** | ||
1041 | * A variable to control whether HIDAPI uses libusb only for whitelisted | ||
1042 | * devices. | ||
1043 | * | ||
1044 | * By default libusb will only be used for a few devices that require direct | ||
1045 | * USB access. | ||
1046 | * | ||
1047 | * The variable can be set to the following values: | ||
1048 | * | ||
1049 | * - "0": HIDAPI will use libusb for all device access. | ||
1050 | * - "1": HIDAPI will use libusb only for whitelisted devices. (default) | ||
1051 | * | ||
1052 | * This hint should be set before SDL is initialized. | ||
1053 | * | ||
1054 | * \since This hint is available since SDL 3.2.0. | ||
1055 | */ | ||
1056 | #define SDL_HINT_HIDAPI_LIBUSB_WHITELIST "SDL_HIDAPI_LIBUSB_WHITELIST" | ||
1057 | |||
1058 | /** | ||
1059 | * A variable to control whether HIDAPI uses udev for device detection. | ||
1060 | * | ||
1061 | * The variable can be set to the following values: | ||
1062 | * | ||
1063 | * - "0": HIDAPI will poll for device changes. | ||
1064 | * - "1": HIDAPI will use udev for device detection. (default) | ||
1065 | * | ||
1066 | * This hint should be set before SDL is initialized. | ||
1067 | * | ||
1068 | * \since This hint is available since SDL 3.2.0. | ||
1069 | */ | ||
1070 | #define SDL_HINT_HIDAPI_UDEV "SDL_HIDAPI_UDEV" | ||
1071 | |||
1072 | /** | ||
1073 | * A variable that specifies a GPU backend to use. | ||
1074 | * | ||
1075 | * By default, SDL will try all available GPU backends in a reasonable order | ||
1076 | * until it finds one that can work, but this hint allows the app or user to | ||
1077 | * force a specific target, such as "direct3d12" if, say, your hardware | ||
1078 | * supports Vulkan but you want to try using D3D12 instead. | ||
1079 | * | ||
1080 | * This hint should be set before any GPU functions are called. | ||
1081 | * | ||
1082 | * \since This hint is available since SDL 3.2.0. | ||
1083 | */ | ||
1084 | #define SDL_HINT_GPU_DRIVER "SDL_GPU_DRIVER" | ||
1085 | |||
1086 | /** | ||
1087 | * A variable to control whether SDL_hid_enumerate() enumerates all HID | ||
1088 | * devices or only controllers. | ||
1089 | * | ||
1090 | * The variable can be set to the following values: | ||
1091 | * | ||
1092 | * - "0": SDL_hid_enumerate() will enumerate all HID devices. | ||
1093 | * - "1": SDL_hid_enumerate() will only enumerate controllers. (default) | ||
1094 | * | ||
1095 | * By default SDL will only enumerate controllers, to reduce risk of hanging | ||
1096 | * or crashing on devices with bad drivers and avoiding macOS keyboard capture | ||
1097 | * permission prompts. | ||
1098 | * | ||
1099 | * This hint can be set anytime. | ||
1100 | * | ||
1101 | * \since This hint is available since SDL 3.2.0. | ||
1102 | */ | ||
1103 | #define SDL_HINT_HIDAPI_ENUMERATE_ONLY_CONTROLLERS "SDL_HIDAPI_ENUMERATE_ONLY_CONTROLLERS" | ||
1104 | |||
1105 | /** | ||
1106 | * A variable containing a list of devices to ignore in SDL_hid_enumerate(). | ||
1107 | * | ||
1108 | * The format of the string is a comma separated list of USB VID/PID pairs in | ||
1109 | * hexadecimal form, e.g. | ||
1110 | * | ||
1111 | * `0xAAAA/0xBBBB,0xCCCC/0xDDDD` | ||
1112 | * | ||
1113 | * For example, to ignore the Shanwan DS3 controller and any Valve controller, | ||
1114 | * you might use the string "0x2563/0x0523,0x28de/0x0000" | ||
1115 | * | ||
1116 | * This hint can be set anytime. | ||
1117 | * | ||
1118 | * \since This hint is available since SDL 3.2.0. | ||
1119 | */ | ||
1120 | #define SDL_HINT_HIDAPI_IGNORE_DEVICES "SDL_HIDAPI_IGNORE_DEVICES" | ||
1121 | |||
1122 | /** | ||
1123 | * A variable describing what IME UI elements the application can display. | ||
1124 | * | ||
1125 | * By default IME UI is handled using native components by the OS where | ||
1126 | * possible, however this can interfere with or not be visible when exclusive | ||
1127 | * fullscreen mode is used. | ||
1128 | * | ||
1129 | * The variable can be set to a comma separated list containing the following | ||
1130 | * items: | ||
1131 | * | ||
1132 | * - "none" or "0": The application can't render any IME elements, and native | ||
1133 | * UI should be used. (default) | ||
1134 | * - "composition": The application handles SDL_EVENT_TEXT_EDITING events and | ||
1135 | * can render the composition text. | ||
1136 | * - "candidates": The application handles SDL_EVENT_TEXT_EDITING_CANDIDATES | ||
1137 | * and can render the candidate list. | ||
1138 | * | ||
1139 | * This hint should be set before SDL is initialized. | ||
1140 | * | ||
1141 | * \since This hint is available since SDL 3.2.0. | ||
1142 | */ | ||
1143 | #define SDL_HINT_IME_IMPLEMENTED_UI "SDL_IME_IMPLEMENTED_UI" | ||
1144 | |||
1145 | /** | ||
1146 | * A variable controlling whether the home indicator bar on iPhone X should be | ||
1147 | * hidden. | ||
1148 | * | ||
1149 | * The variable can be set to the following values: | ||
1150 | * | ||
1151 | * - "0": The indicator bar is not hidden. (default for windowed applications) | ||
1152 | * - "1": The indicator bar is hidden and is shown when the screen is touched | ||
1153 | * (useful for movie playback applications). | ||
1154 | * - "2": The indicator bar is dim and the first swipe makes it visible and | ||
1155 | * the second swipe performs the "home" action. (default for fullscreen | ||
1156 | * applications) | ||
1157 | * | ||
1158 | * This hint can be set anytime. | ||
1159 | * | ||
1160 | * \since This hint is available since SDL 3.2.0. | ||
1161 | */ | ||
1162 | #define SDL_HINT_IOS_HIDE_HOME_INDICATOR "SDL_IOS_HIDE_HOME_INDICATOR" | ||
1163 | |||
1164 | /** | ||
1165 | * A variable that lets you enable joystick (and gamecontroller) events even | ||
1166 | * when your app is in the background. | ||
1167 | * | ||
1168 | * The variable can be set to the following values: | ||
1169 | * | ||
1170 | * - "0": Disable joystick & gamecontroller input events when the application | ||
1171 | * is in the background. (default) | ||
1172 | * - "1": Enable joystick & gamecontroller input events when the application | ||
1173 | * is in the background. | ||
1174 | * | ||
1175 | * This hint can be set anytime. | ||
1176 | * | ||
1177 | * \since This hint is available since SDL 3.2.0. | ||
1178 | */ | ||
1179 | #define SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS" | ||
1180 | |||
1181 | /** | ||
1182 | * A variable containing a list of arcade stick style controllers. | ||
1183 | * | ||
1184 | * The format of the string is a comma separated list of USB VID/PID pairs in | ||
1185 | * hexadecimal form, e.g. | ||
1186 | * | ||
1187 | * `0xAAAA/0xBBBB,0xCCCC/0xDDDD` | ||
1188 | * | ||
1189 | * The variable can also take the form of "@file", in which case the named | ||
1190 | * file will be loaded and interpreted as the value of the variable. | ||
1191 | * | ||
1192 | * This hint can be set anytime. | ||
1193 | * | ||
1194 | * \since This hint is available since SDL 3.2.0. | ||
1195 | */ | ||
1196 | #define SDL_HINT_JOYSTICK_ARCADESTICK_DEVICES "SDL_JOYSTICK_ARCADESTICK_DEVICES" | ||
1197 | |||
1198 | /** | ||
1199 | * A variable containing a list of devices that are not arcade stick style | ||
1200 | * controllers. | ||
1201 | * | ||
1202 | * This will override SDL_HINT_JOYSTICK_ARCADESTICK_DEVICES and the built in | ||
1203 | * device list. | ||
1204 | * | ||
1205 | * The format of the string is a comma separated list of USB VID/PID pairs in | ||
1206 | * hexadecimal form, e.g. | ||
1207 | * | ||
1208 | * `0xAAAA/0xBBBB,0xCCCC/0xDDDD` | ||
1209 | * | ||
1210 | * The variable can also take the form of "@file", in which case the named | ||
1211 | * file will be loaded and interpreted as the value of the variable. | ||
1212 | * | ||
1213 | * This hint can be set anytime. | ||
1214 | * | ||
1215 | * \since This hint is available since SDL 3.2.0. | ||
1216 | */ | ||
1217 | #define SDL_HINT_JOYSTICK_ARCADESTICK_DEVICES_EXCLUDED "SDL_JOYSTICK_ARCADESTICK_DEVICES_EXCLUDED" | ||
1218 | |||
1219 | /** | ||
1220 | * A variable containing a list of devices that should not be considered | ||
1221 | * joysticks. | ||
1222 | * | ||
1223 | * The format of the string is a comma separated list of USB VID/PID pairs in | ||
1224 | * hexadecimal form, e.g. | ||
1225 | * | ||
1226 | * `0xAAAA/0xBBBB,0xCCCC/0xDDDD` | ||
1227 | * | ||
1228 | * The variable can also take the form of "@file", in which case the named | ||
1229 | * file will be loaded and interpreted as the value of the variable. | ||
1230 | * | ||
1231 | * This hint can be set anytime. | ||
1232 | * | ||
1233 | * \since This hint is available since SDL 3.2.0. | ||
1234 | */ | ||
1235 | #define SDL_HINT_JOYSTICK_BLACKLIST_DEVICES "SDL_JOYSTICK_BLACKLIST_DEVICES" | ||
1236 | |||
1237 | /** | ||
1238 | * A variable containing a list of devices that should be considered | ||
1239 | * joysticks. | ||
1240 | * | ||
1241 | * This will override SDL_HINT_JOYSTICK_BLACKLIST_DEVICES and the built in | ||
1242 | * device list. | ||
1243 | * | ||
1244 | * The format of the string is a comma separated list of USB VID/PID pairs in | ||
1245 | * hexadecimal form, e.g. | ||
1246 | * | ||
1247 | * `0xAAAA/0xBBBB,0xCCCC/0xDDDD` | ||
1248 | * | ||
1249 | * The variable can also take the form of "@file", in which case the named | ||
1250 | * file will be loaded and interpreted as the value of the variable. | ||
1251 | * | ||
1252 | * This hint can be set anytime. | ||
1253 | * | ||
1254 | * \since This hint is available since SDL 3.2.0. | ||
1255 | */ | ||
1256 | #define SDL_HINT_JOYSTICK_BLACKLIST_DEVICES_EXCLUDED "SDL_JOYSTICK_BLACKLIST_DEVICES_EXCLUDED" | ||
1257 | |||
1258 | /** | ||
1259 | * A variable containing a comma separated list of devices to open as | ||
1260 | * joysticks. | ||
1261 | * | ||
1262 | * This variable is currently only used by the Linux joystick driver. | ||
1263 | * | ||
1264 | * \since This hint is available since SDL 3.2.0. | ||
1265 | */ | ||
1266 | #define SDL_HINT_JOYSTICK_DEVICE "SDL_JOYSTICK_DEVICE" | ||
1267 | |||
1268 | /** | ||
1269 | * A variable controlling whether enhanced reports should be used for | ||
1270 | * controllers when using the HIDAPI driver. | ||
1271 | * | ||
1272 | * Enhanced reports allow rumble and effects on Bluetooth PlayStation | ||
1273 | * controllers and gyro on Nintendo Switch controllers, but break Windows | ||
1274 | * DirectInput for other applications that don't use SDL. | ||
1275 | * | ||
1276 | * Once enhanced reports are enabled, they can't be disabled on PlayStation | ||
1277 | * controllers without power cycling the controller. | ||
1278 | * | ||
1279 | * The variable can be set to the following values: | ||
1280 | * | ||
1281 | * - "0": enhanced reports are not enabled. | ||
1282 | * - "1": enhanced reports are enabled. (default) | ||
1283 | * - "auto": enhanced features are advertised to the application, but SDL | ||
1284 | * doesn't change the controller report mode unless the application uses | ||
1285 | * them. | ||
1286 | * | ||
1287 | * This hint can be enabled anytime. | ||
1288 | * | ||
1289 | * \since This hint is available since SDL 3.2.0. | ||
1290 | */ | ||
1291 | #define SDL_HINT_JOYSTICK_ENHANCED_REPORTS "SDL_JOYSTICK_ENHANCED_REPORTS" | ||
1292 | |||
1293 | /** | ||
1294 | * A variable containing a list of flightstick style controllers. | ||
1295 | * | ||
1296 | * The format of the string is a comma separated list of USB VID/PID pairs in | ||
1297 | * hexadecimal form, e.g. | ||
1298 | * | ||
1299 | * `0xAAAA/0xBBBB,0xCCCC/0xDDDD` | ||
1300 | * | ||
1301 | * The variable can also take the form of @file, in which case the named file | ||
1302 | * will be loaded and interpreted as the value of the variable. | ||
1303 | * | ||
1304 | * This hint can be set anytime. | ||
1305 | * | ||
1306 | * \since This hint is available since SDL 3.2.0. | ||
1307 | */ | ||
1308 | #define SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES "SDL_JOYSTICK_FLIGHTSTICK_DEVICES" | ||
1309 | |||
1310 | /** | ||
1311 | * A variable containing a list of devices that are not flightstick style | ||
1312 | * controllers. | ||
1313 | * | ||
1314 | * This will override SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES and the built in | ||
1315 | * device list. | ||
1316 | * | ||
1317 | * The format of the string is a comma separated list of USB VID/PID pairs in | ||
1318 | * hexadecimal form, e.g. | ||
1319 | * | ||
1320 | * `0xAAAA/0xBBBB,0xCCCC/0xDDDD` | ||
1321 | * | ||
1322 | * The variable can also take the form of "@file", in which case the named | ||
1323 | * file will be loaded and interpreted as the value of the variable. | ||
1324 | * | ||
1325 | * This hint can be set anytime. | ||
1326 | * | ||
1327 | * \since This hint is available since SDL 3.2.0. | ||
1328 | */ | ||
1329 | #define SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED "SDL_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED" | ||
1330 | |||
1331 | /** | ||
1332 | * A variable controlling whether GameInput should be used for controller | ||
1333 | * handling on Windows. | ||
1334 | * | ||
1335 | * The variable can be set to the following values: | ||
1336 | * | ||
1337 | * - "0": GameInput is not used. | ||
1338 | * - "1": GameInput is used. | ||
1339 | * | ||
1340 | * The default is "1" on GDK platforms, and "0" otherwise. | ||
1341 | * | ||
1342 | * This hint should be set before SDL is initialized. | ||
1343 | * | ||
1344 | * \since This hint is available since SDL 3.2.0. | ||
1345 | */ | ||
1346 | #define SDL_HINT_JOYSTICK_GAMEINPUT "SDL_JOYSTICK_GAMEINPUT" | ||
1347 | |||
1348 | /** | ||
1349 | * A variable containing a list of devices known to have a GameCube form | ||
1350 | * factor. | ||
1351 | * | ||
1352 | * The format of the string is a comma separated list of USB VID/PID pairs in | ||
1353 | * hexadecimal form, e.g. | ||
1354 | * | ||
1355 | * `0xAAAA/0xBBBB,0xCCCC/0xDDDD` | ||
1356 | * | ||
1357 | * The variable can also take the form of "@file", in which case the named | ||
1358 | * file will be loaded and interpreted as the value of the variable. | ||
1359 | * | ||
1360 | * This hint can be set anytime. | ||
1361 | * | ||
1362 | * \since This hint is available since SDL 3.2.0. | ||
1363 | */ | ||
1364 | #define SDL_HINT_JOYSTICK_GAMECUBE_DEVICES "SDL_JOYSTICK_GAMECUBE_DEVICES" | ||
1365 | |||
1366 | /** | ||
1367 | * A variable containing a list of devices known not to have a GameCube form | ||
1368 | * factor. | ||
1369 | * | ||
1370 | * This will override SDL_HINT_JOYSTICK_GAMECUBE_DEVICES and the built in | ||
1371 | * device list. | ||
1372 | * | ||
1373 | * The format of the string is a comma separated list of USB VID/PID pairs in | ||
1374 | * hexadecimal form, e.g. | ||
1375 | * | ||
1376 | * `0xAAAA/0xBBBB,0xCCCC/0xDDDD` | ||
1377 | * | ||
1378 | * The variable can also take the form of "@file", in which case the named | ||
1379 | * file will be loaded and interpreted as the value of the variable. | ||
1380 | * | ||
1381 | * This hint can be set anytime. | ||
1382 | * | ||
1383 | * \since This hint is available since SDL 3.2.0. | ||
1384 | */ | ||
1385 | #define SDL_HINT_JOYSTICK_GAMECUBE_DEVICES_EXCLUDED "SDL_JOYSTICK_GAMECUBE_DEVICES_EXCLUDED" | ||
1386 | |||
1387 | /** | ||
1388 | * A variable controlling whether the HIDAPI joystick drivers should be used. | ||
1389 | * | ||
1390 | * The variable can be set to the following values: | ||
1391 | * | ||
1392 | * - "0": HIDAPI drivers are not used. | ||
1393 | * - "1": HIDAPI drivers are used. (default) | ||
1394 | * | ||
1395 | * This variable is the default for all drivers, but can be overridden by the | ||
1396 | * hints for specific drivers below. | ||
1397 | * | ||
1398 | * This hint should be set before initializing joysticks and gamepads. | ||
1399 | * | ||
1400 | * \since This hint is available since SDL 3.2.0. | ||
1401 | */ | ||
1402 | #define SDL_HINT_JOYSTICK_HIDAPI "SDL_JOYSTICK_HIDAPI" | ||
1403 | |||
1404 | /** | ||
1405 | * A variable controlling whether Nintendo Switch Joy-Con controllers will be | ||
1406 | * combined into a single Pro-like controller when using the HIDAPI driver. | ||
1407 | * | ||
1408 | * The variable can be set to the following values: | ||
1409 | * | ||
1410 | * - "0": Left and right Joy-Con controllers will not be combined and each | ||
1411 | * will be a mini-gamepad. | ||
1412 | * - "1": Left and right Joy-Con controllers will be combined into a single | ||
1413 | * controller. (default) | ||
1414 | * | ||
1415 | * This hint should be set before initializing joysticks and gamepads. | ||
1416 | * | ||
1417 | * \since This hint is available since SDL 3.2.0. | ||
1418 | */ | ||
1419 | #define SDL_HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS "SDL_JOYSTICK_HIDAPI_COMBINE_JOY_CONS" | ||
1420 | |||
1421 | /** | ||
1422 | * A variable controlling whether the HIDAPI driver for Nintendo GameCube | ||
1423 | * controllers should be used. | ||
1424 | * | ||
1425 | * The variable can be set to the following values: | ||
1426 | * | ||
1427 | * - "0": HIDAPI driver is not used. | ||
1428 | * - "1": HIDAPI driver is used. | ||
1429 | * | ||
1430 | * The default is the value of SDL_HINT_JOYSTICK_HIDAPI | ||
1431 | * | ||
1432 | * This hint should be set before initializing joysticks and gamepads. | ||
1433 | * | ||
1434 | * \since This hint is available since SDL 3.2.0. | ||
1435 | */ | ||
1436 | #define SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE "SDL_JOYSTICK_HIDAPI_GAMECUBE" | ||
1437 | |||
1438 | /** | ||
1439 | * A variable controlling whether rumble is used to implement the GameCube | ||
1440 | * controller's 3 rumble modes, Stop(0), Rumble(1), and StopHard(2). | ||
1441 | * | ||
1442 | * This is useful for applications that need full compatibility for things | ||
1443 | * like ADSR envelopes. - Stop is implemented by setting low_frequency_rumble | ||
1444 | * to 0 and high_frequency_rumble >0 - Rumble is both at any arbitrary value - | ||
1445 | * StopHard is implemented by setting both low_frequency_rumble and | ||
1446 | * high_frequency_rumble to 0 | ||
1447 | * | ||
1448 | * The variable can be set to the following values: | ||
1449 | * | ||
1450 | * - "0": Normal rumble behavior is behavior is used. (default) | ||
1451 | * - "1": Proper GameCube controller rumble behavior is used. | ||
1452 | * | ||
1453 | * This hint can be set anytime. | ||
1454 | * | ||
1455 | * \since This hint is available since SDL 3.2.0. | ||
1456 | */ | ||
1457 | #define SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE_RUMBLE_BRAKE "SDL_JOYSTICK_HIDAPI_GAMECUBE_RUMBLE_BRAKE" | ||
1458 | |||
1459 | /** | ||
1460 | * A variable controlling whether the HIDAPI driver for Nintendo Switch | ||
1461 | * Joy-Cons should be used. | ||
1462 | * | ||
1463 | * The variable can be set to the following values: | ||
1464 | * | ||
1465 | * - "0": HIDAPI driver is not used. | ||
1466 | * - "1": HIDAPI driver is used. | ||
1467 | * | ||
1468 | * The default is the value of SDL_HINT_JOYSTICK_HIDAPI. | ||
1469 | * | ||
1470 | * This hint should be set before initializing joysticks and gamepads. | ||
1471 | * | ||
1472 | * \since This hint is available since SDL 3.2.0. | ||
1473 | */ | ||
1474 | #define SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS "SDL_JOYSTICK_HIDAPI_JOY_CONS" | ||
1475 | |||
1476 | /** | ||
1477 | * A variable controlling whether the Home button LED should be turned on when | ||
1478 | * a Nintendo Switch Joy-Con controller is opened. | ||
1479 | * | ||
1480 | * The variable can be set to the following values: | ||
1481 | * | ||
1482 | * - "0": home button LED is turned off | ||
1483 | * - "1": home button LED is turned on | ||
1484 | * | ||
1485 | * By default the Home button LED state is not changed. This hint can also be | ||
1486 | * set to a floating point value between 0.0 and 1.0 which controls the | ||
1487 | * brightness of the Home button LED. | ||
1488 | * | ||
1489 | * This hint can be set anytime. | ||
1490 | * | ||
1491 | * \since This hint is available since SDL 3.2.0. | ||
1492 | */ | ||
1493 | #define SDL_HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LED "SDL_JOYSTICK_HIDAPI_JOYCON_HOME_LED" | ||
1494 | |||
1495 | /** | ||
1496 | * A variable controlling whether the HIDAPI driver for Amazon Luna | ||
1497 | * controllers connected via Bluetooth should be used. | ||
1498 | * | ||
1499 | * The variable can be set to the following values: | ||
1500 | * | ||
1501 | * - "0": HIDAPI driver is not used. | ||
1502 | * - "1": HIDAPI driver is used. | ||
1503 | * | ||
1504 | * The default is the value of SDL_HINT_JOYSTICK_HIDAPI. | ||
1505 | * | ||
1506 | * This hint should be set before initializing joysticks and gamepads. | ||
1507 | * | ||
1508 | * \since This hint is available since SDL 3.2.0. | ||
1509 | */ | ||
1510 | #define SDL_HINT_JOYSTICK_HIDAPI_LUNA "SDL_JOYSTICK_HIDAPI_LUNA" | ||
1511 | |||
1512 | /** | ||
1513 | * A variable controlling whether the HIDAPI driver for Nintendo Online | ||
1514 | * classic controllers should be used. | ||
1515 | * | ||
1516 | * The variable can be set to the following values: | ||
1517 | * | ||
1518 | * - "0": HIDAPI driver is not used. | ||
1519 | * - "1": HIDAPI driver is used. | ||
1520 | * | ||
1521 | * The default is the value of SDL_HINT_JOYSTICK_HIDAPI. | ||
1522 | * | ||
1523 | * This hint should be set before initializing joysticks and gamepads. | ||
1524 | * | ||
1525 | * \since This hint is available since SDL 3.2.0. | ||
1526 | */ | ||
1527 | #define SDL_HINT_JOYSTICK_HIDAPI_NINTENDO_CLASSIC "SDL_JOYSTICK_HIDAPI_NINTENDO_CLASSIC" | ||
1528 | |||
1529 | /** | ||
1530 | * A variable controlling whether the HIDAPI driver for PS3 controllers should | ||
1531 | * be used. | ||
1532 | * | ||
1533 | * The variable can be set to the following values: | ||
1534 | * | ||
1535 | * - "0": HIDAPI driver is not used. | ||
1536 | * - "1": HIDAPI driver is used. | ||
1537 | * | ||
1538 | * The default is the value of SDL_HINT_JOYSTICK_HIDAPI on macOS, and "0" on | ||
1539 | * other platforms. | ||
1540 | * | ||
1541 | * For official Sony driver (sixaxis.sys) use | ||
1542 | * SDL_HINT_JOYSTICK_HIDAPI_PS3_SIXAXIS_DRIVER. See | ||
1543 | * https://github.com/ViGEm/DsHidMini for an alternative driver on Windows. | ||
1544 | * | ||
1545 | * This hint should be set before initializing joysticks and gamepads. | ||
1546 | * | ||
1547 | * \since This hint is available since SDL 3.2.0. | ||
1548 | */ | ||
1549 | #define SDL_HINT_JOYSTICK_HIDAPI_PS3 "SDL_JOYSTICK_HIDAPI_PS3" | ||
1550 | |||
1551 | /** | ||
1552 | * A variable controlling whether the Sony driver (sixaxis.sys) for PS3 | ||
1553 | * controllers (Sixaxis/DualShock 3) should be used. | ||
1554 | * | ||
1555 | * The variable can be set to the following values: | ||
1556 | * | ||
1557 | * - "0": Sony driver (sixaxis.sys) is not used. | ||
1558 | * - "1": Sony driver (sixaxis.sys) is used. | ||
1559 | * | ||
1560 | * The default value is 0. | ||
1561 | * | ||
1562 | * This hint should be set before initializing joysticks and gamepads. | ||
1563 | * | ||
1564 | * \since This hint is available since SDL 3.2.0. | ||
1565 | */ | ||
1566 | #define SDL_HINT_JOYSTICK_HIDAPI_PS3_SIXAXIS_DRIVER "SDL_JOYSTICK_HIDAPI_PS3_SIXAXIS_DRIVER" | ||
1567 | |||
1568 | /** | ||
1569 | * A variable controlling whether the HIDAPI driver for PS4 controllers should | ||
1570 | * be used. | ||
1571 | * | ||
1572 | * The variable can be set to the following values: | ||
1573 | * | ||
1574 | * - "0": HIDAPI driver is not used. | ||
1575 | * - "1": HIDAPI driver is used. | ||
1576 | * | ||
1577 | * The default is the value of SDL_HINT_JOYSTICK_HIDAPI. | ||
1578 | * | ||
1579 | * This hint should be set before initializing joysticks and gamepads. | ||
1580 | * | ||
1581 | * \since This hint is available since SDL 3.2.0. | ||
1582 | */ | ||
1583 | #define SDL_HINT_JOYSTICK_HIDAPI_PS4 "SDL_JOYSTICK_HIDAPI_PS4" | ||
1584 | |||
1585 | /** | ||
1586 | * A variable controlling the update rate of the PS4 controller over Bluetooth | ||
1587 | * when using the HIDAPI driver. | ||
1588 | * | ||
1589 | * This defaults to 4 ms, to match the behavior over USB, and to be more | ||
1590 | * friendly to other Bluetooth devices and older Bluetooth hardware on the | ||
1591 | * computer. It can be set to "1" (1000Hz), "2" (500Hz) and "4" (250Hz) | ||
1592 | * | ||
1593 | * This hint can be set anytime, but only takes effect when extended input | ||
1594 | * reports are enabled. | ||
1595 | * | ||
1596 | * \since This hint is available since SDL 3.2.0. | ||
1597 | */ | ||
1598 | #define SDL_HINT_JOYSTICK_HIDAPI_PS4_REPORT_INTERVAL "SDL_JOYSTICK_HIDAPI_PS4_REPORT_INTERVAL" | ||
1599 | |||
1600 | /** | ||
1601 | * A variable controlling whether the HIDAPI driver for PS5 controllers should | ||
1602 | * be used. | ||
1603 | * | ||
1604 | * The variable can be set to the following values: | ||
1605 | * | ||
1606 | * - "0": HIDAPI driver is not used. | ||
1607 | * - "1": HIDAPI driver is used. | ||
1608 | * | ||
1609 | * The default is the value of SDL_HINT_JOYSTICK_HIDAPI. | ||
1610 | * | ||
1611 | * This hint should be set before initializing joysticks and gamepads. | ||
1612 | * | ||
1613 | * \since This hint is available since SDL 3.2.0. | ||
1614 | */ | ||
1615 | #define SDL_HINT_JOYSTICK_HIDAPI_PS5 "SDL_JOYSTICK_HIDAPI_PS5" | ||
1616 | |||
1617 | /** | ||
1618 | * A variable controlling whether the player LEDs should be lit to indicate | ||
1619 | * which player is associated with a PS5 controller. | ||
1620 | * | ||
1621 | * The variable can be set to the following values: | ||
1622 | * | ||
1623 | * - "0": player LEDs are not enabled. | ||
1624 | * - "1": player LEDs are enabled. (default) | ||
1625 | * | ||
1626 | * \since This hint is available since SDL 3.2.0. | ||
1627 | */ | ||
1628 | #define SDL_HINT_JOYSTICK_HIDAPI_PS5_PLAYER_LED "SDL_JOYSTICK_HIDAPI_PS5_PLAYER_LED" | ||
1629 | |||
1630 | /** | ||
1631 | * A variable controlling whether the HIDAPI driver for NVIDIA SHIELD | ||
1632 | * controllers should be used. | ||
1633 | * | ||
1634 | * The variable can be set to the following values: | ||
1635 | * | ||
1636 | * - "0": HIDAPI driver is not used. | ||
1637 | * - "1": HIDAPI driver is used. | ||
1638 | * | ||
1639 | * The default is the value of SDL_HINT_JOYSTICK_HIDAPI. | ||
1640 | * | ||
1641 | * This hint should be set before initializing joysticks and gamepads. | ||
1642 | * | ||
1643 | * \since This hint is available since SDL 3.2.0. | ||
1644 | */ | ||
1645 | #define SDL_HINT_JOYSTICK_HIDAPI_SHIELD "SDL_JOYSTICK_HIDAPI_SHIELD" | ||
1646 | |||
1647 | /** | ||
1648 | * A variable controlling whether the HIDAPI driver for Google Stadia | ||
1649 | * controllers should be used. | ||
1650 | * | ||
1651 | * The variable can be set to the following values: | ||
1652 | * | ||
1653 | * - "0": HIDAPI driver is not used. | ||
1654 | * - "1": HIDAPI driver is used. | ||
1655 | * | ||
1656 | * The default is the value of SDL_HINT_JOYSTICK_HIDAPI. | ||
1657 | * | ||
1658 | * \since This hint is available since SDL 3.2.0. | ||
1659 | */ | ||
1660 | #define SDL_HINT_JOYSTICK_HIDAPI_STADIA "SDL_JOYSTICK_HIDAPI_STADIA" | ||
1661 | |||
1662 | /** | ||
1663 | * A variable controlling whether the HIDAPI driver for Bluetooth Steam | ||
1664 | * Controllers should be used. | ||
1665 | * | ||
1666 | * The variable can be set to the following values: | ||
1667 | * | ||
1668 | * - "0": HIDAPI driver is not used. (default) | ||
1669 | * - "1": HIDAPI driver is used for Steam Controllers, which requires | ||
1670 | * Bluetooth access and may prompt the user for permission on iOS and | ||
1671 | * Android. | ||
1672 | * | ||
1673 | * This hint should be set before initializing joysticks and gamepads. | ||
1674 | * | ||
1675 | * \since This hint is available since SDL 3.2.0. | ||
1676 | */ | ||
1677 | #define SDL_HINT_JOYSTICK_HIDAPI_STEAM "SDL_JOYSTICK_HIDAPI_STEAM" | ||
1678 | |||
1679 | /** | ||
1680 | * A variable controlling whether the Steam button LED should be turned on | ||
1681 | * when a Steam controller is opened. | ||
1682 | * | ||
1683 | * The variable can be set to the following values: | ||
1684 | * | ||
1685 | * - "0": Steam button LED is turned off. | ||
1686 | * - "1": Steam button LED is turned on. | ||
1687 | * | ||
1688 | * By default the Steam button LED state is not changed. This hint can also be | ||
1689 | * set to a floating point value between 0.0 and 1.0 which controls the | ||
1690 | * brightness of the Steam button LED. | ||
1691 | * | ||
1692 | * This hint can be set anytime. | ||
1693 | * | ||
1694 | * \since This hint is available since SDL 3.2.0. | ||
1695 | */ | ||
1696 | #define SDL_HINT_JOYSTICK_HIDAPI_STEAM_HOME_LED "SDL_JOYSTICK_HIDAPI_STEAM_HOME_LED" | ||
1697 | |||
1698 | /** | ||
1699 | * A variable controlling whether the HIDAPI driver for the Steam Deck builtin | ||
1700 | * controller should be used. | ||
1701 | * | ||
1702 | * The variable can be set to the following values: | ||
1703 | * | ||
1704 | * - "0": HIDAPI driver is not used. | ||
1705 | * - "1": HIDAPI driver is used. | ||
1706 | * | ||
1707 | * The default is the value of SDL_HINT_JOYSTICK_HIDAPI. | ||
1708 | * | ||
1709 | * This hint should be set before initializing joysticks and gamepads. | ||
1710 | * | ||
1711 | * \since This hint is available since SDL 3.2.0. | ||
1712 | */ | ||
1713 | #define SDL_HINT_JOYSTICK_HIDAPI_STEAMDECK "SDL_JOYSTICK_HIDAPI_STEAMDECK" | ||
1714 | |||
1715 | /** | ||
1716 | * A variable controlling whether the HIDAPI driver for HORI licensed Steam | ||
1717 | * controllers should be used. | ||
1718 | * | ||
1719 | * This variable can be set to the following values: "0" - HIDAPI driver is | ||
1720 | * not used "1" - HIDAPI driver is used | ||
1721 | * | ||
1722 | * The default is the value of SDL_HINT_JOYSTICK_HIDAPI | ||
1723 | */ | ||
1724 | #define SDL_HINT_JOYSTICK_HIDAPI_STEAM_HORI "SDL_JOYSTICK_HIDAPI_STEAM_HORI" | ||
1725 | |||
1726 | /** | ||
1727 | * A variable controlling whether the HIDAPI driver for Nintendo Switch | ||
1728 | * controllers should be used. | ||
1729 | * | ||
1730 | * The variable can be set to the following values: | ||
1731 | * | ||
1732 | * - "0": HIDAPI driver is not used. | ||
1733 | * - "1": HIDAPI driver is used. | ||
1734 | * | ||
1735 | * The default is the value of SDL_HINT_JOYSTICK_HIDAPI. | ||
1736 | * | ||
1737 | * This hint should be set before initializing joysticks and gamepads. | ||
1738 | * | ||
1739 | * \since This hint is available since SDL 3.2.0. | ||
1740 | */ | ||
1741 | #define SDL_HINT_JOYSTICK_HIDAPI_SWITCH "SDL_JOYSTICK_HIDAPI_SWITCH" | ||
1742 | |||
1743 | /** | ||
1744 | * A variable controlling whether the Home button LED should be turned on when | ||
1745 | * a Nintendo Switch Pro controller is opened. | ||
1746 | * | ||
1747 | * The variable can be set to the following values: | ||
1748 | * | ||
1749 | * - "0": Home button LED is turned off. | ||
1750 | * - "1": Home button LED is turned on. | ||
1751 | * | ||
1752 | * By default the Home button LED state is not changed. This hint can also be | ||
1753 | * set to a floating point value between 0.0 and 1.0 which controls the | ||
1754 | * brightness of the Home button LED. | ||
1755 | * | ||
1756 | * This hint can be set anytime. | ||
1757 | * | ||
1758 | * \since This hint is available since SDL 3.2.0. | ||
1759 | */ | ||
1760 | #define SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED "SDL_JOYSTICK_HIDAPI_SWITCH_HOME_LED" | ||
1761 | |||
1762 | /** | ||
1763 | * A variable controlling whether the player LEDs should be lit to indicate | ||
1764 | * which player is associated with a Nintendo Switch controller. | ||
1765 | * | ||
1766 | * The variable can be set to the following values: | ||
1767 | * | ||
1768 | * - "0": Player LEDs are not enabled. | ||
1769 | * - "1": Player LEDs are enabled. (default) | ||
1770 | * | ||
1771 | * This hint can be set anytime. | ||
1772 | * | ||
1773 | * \since This hint is available since SDL 3.2.0. | ||
1774 | */ | ||
1775 | #define SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED "SDL_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED" | ||
1776 | |||
1777 | /** | ||
1778 | * A variable controlling whether Nintendo Switch Joy-Con controllers will be | ||
1779 | * in vertical mode when using the HIDAPI driver. | ||
1780 | * | ||
1781 | * The variable can be set to the following values: | ||
1782 | * | ||
1783 | * - "0": Left and right Joy-Con controllers will not be in vertical mode. | ||
1784 | * (default) | ||
1785 | * - "1": Left and right Joy-Con controllers will be in vertical mode. | ||
1786 | * | ||
1787 | * This hint should be set before opening a Joy-Con controller. | ||
1788 | * | ||
1789 | * \since This hint is available since SDL 3.2.0. | ||
1790 | */ | ||
1791 | #define SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS "SDL_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS" | ||
1792 | |||
1793 | /** | ||
1794 | * A variable controlling whether the HIDAPI driver for Nintendo Wii and Wii U | ||
1795 | * controllers should be used. | ||
1796 | * | ||
1797 | * The variable can be set to the following values: | ||
1798 | * | ||
1799 | * - "0": HIDAPI driver is not used. | ||
1800 | * - "1": HIDAPI driver is used. | ||
1801 | * | ||
1802 | * This driver doesn't work with the dolphinbar, so the default is false for | ||
1803 | * now. | ||
1804 | * | ||
1805 | * This hint should be set before initializing joysticks and gamepads. | ||
1806 | * | ||
1807 | * \since This hint is available since SDL 3.2.0. | ||
1808 | */ | ||
1809 | #define SDL_HINT_JOYSTICK_HIDAPI_WII "SDL_JOYSTICK_HIDAPI_WII" | ||
1810 | |||
1811 | /** | ||
1812 | * A variable controlling whether the player LEDs should be lit to indicate | ||
1813 | * which player is associated with a Wii controller. | ||
1814 | * | ||
1815 | * The variable can be set to the following values: | ||
1816 | * | ||
1817 | * - "0": Player LEDs are not enabled. | ||
1818 | * - "1": Player LEDs are enabled. (default) | ||
1819 | * | ||
1820 | * This hint can be set anytime. | ||
1821 | * | ||
1822 | * \since This hint is available since SDL 3.2.0. | ||
1823 | */ | ||
1824 | #define SDL_HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED "SDL_JOYSTICK_HIDAPI_WII_PLAYER_LED" | ||
1825 | |||
1826 | /** | ||
1827 | * A variable controlling whether the HIDAPI driver for XBox controllers | ||
1828 | * should be used. | ||
1829 | * | ||
1830 | * The variable can be set to the following values: | ||
1831 | * | ||
1832 | * - "0": HIDAPI driver is not used. | ||
1833 | * - "1": HIDAPI driver is used. | ||
1834 | * | ||
1835 | * The default is "0" on Windows, otherwise the value of | ||
1836 | * SDL_HINT_JOYSTICK_HIDAPI | ||
1837 | * | ||
1838 | * This hint should be set before initializing joysticks and gamepads. | ||
1839 | * | ||
1840 | * \since This hint is available since SDL 3.2.0. | ||
1841 | */ | ||
1842 | #define SDL_HINT_JOYSTICK_HIDAPI_XBOX "SDL_JOYSTICK_HIDAPI_XBOX" | ||
1843 | |||
1844 | /** | ||
1845 | * A variable controlling whether the HIDAPI driver for XBox 360 controllers | ||
1846 | * should be used. | ||
1847 | * | ||
1848 | * The variable can be set to the following values: | ||
1849 | * | ||
1850 | * - "0": HIDAPI driver is not used. | ||
1851 | * - "1": HIDAPI driver is used. | ||
1852 | * | ||
1853 | * The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX | ||
1854 | * | ||
1855 | * This hint should be set before initializing joysticks and gamepads. | ||
1856 | * | ||
1857 | * \since This hint is available since SDL 3.2.0. | ||
1858 | */ | ||
1859 | #define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360 "SDL_JOYSTICK_HIDAPI_XBOX_360" | ||
1860 | |||
1861 | /** | ||
1862 | * A variable controlling whether the player LEDs should be lit to indicate | ||
1863 | * which player is associated with an Xbox 360 controller. | ||
1864 | * | ||
1865 | * The variable can be set to the following values: | ||
1866 | * | ||
1867 | * - "0": Player LEDs are not enabled. | ||
1868 | * - "1": Player LEDs are enabled. (default) | ||
1869 | * | ||
1870 | * This hint can be set anytime. | ||
1871 | * | ||
1872 | * \since This hint is available since SDL 3.2.0. | ||
1873 | */ | ||
1874 | #define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED "SDL_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED" | ||
1875 | |||
1876 | /** | ||
1877 | * A variable controlling whether the HIDAPI driver for XBox 360 wireless | ||
1878 | * controllers should be used. | ||
1879 | * | ||
1880 | * The variable can be set to the following values: | ||
1881 | * | ||
1882 | * - "0": HIDAPI driver is not used. | ||
1883 | * - "1": HIDAPI driver is used. | ||
1884 | * | ||
1885 | * The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX_360 | ||
1886 | * | ||
1887 | * This hint should be set before initializing joysticks and gamepads. | ||
1888 | * | ||
1889 | * \since This hint is available since SDL 3.2.0. | ||
1890 | */ | ||
1891 | #define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_WIRELESS "SDL_JOYSTICK_HIDAPI_XBOX_360_WIRELESS" | ||
1892 | |||
1893 | /** | ||
1894 | * A variable controlling whether the HIDAPI driver for XBox One controllers | ||
1895 | * should be used. | ||
1896 | * | ||
1897 | * The variable can be set to the following values: | ||
1898 | * | ||
1899 | * - "0": HIDAPI driver is not used. | ||
1900 | * - "1": HIDAPI driver is used. | ||
1901 | * | ||
1902 | * The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX. | ||
1903 | * | ||
1904 | * This hint should be set before initializing joysticks and gamepads. | ||
1905 | * | ||
1906 | * \since This hint is available since SDL 3.2.0. | ||
1907 | */ | ||
1908 | #define SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE "SDL_JOYSTICK_HIDAPI_XBOX_ONE" | ||
1909 | |||
1910 | /** | ||
1911 | * A variable controlling whether the Home button LED should be turned on when | ||
1912 | * an Xbox One controller is opened. | ||
1913 | * | ||
1914 | * The variable can be set to the following values: | ||
1915 | * | ||
1916 | * - "0": Home button LED is turned off. | ||
1917 | * - "1": Home button LED is turned on. | ||
1918 | * | ||
1919 | * By default the Home button LED state is not changed. This hint can also be | ||
1920 | * set to a floating point value between 0.0 and 1.0 which controls the | ||
1921 | * brightness of the Home button LED. The default brightness is 0.4. | ||
1922 | * | ||
1923 | * This hint can be set anytime. | ||
1924 | * | ||
1925 | * \since This hint is available since SDL 3.2.0. | ||
1926 | */ | ||
1927 | #define SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED "SDL_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED" | ||
1928 | |||
1929 | /** | ||
1930 | * A variable controlling whether IOKit should be used for controller | ||
1931 | * handling. | ||
1932 | * | ||
1933 | * The variable can be set to the following values: | ||
1934 | * | ||
1935 | * - "0": IOKit is not used. | ||
1936 | * - "1": IOKit is used. (default) | ||
1937 | * | ||
1938 | * This hint should be set before SDL is initialized. | ||
1939 | * | ||
1940 | * \since This hint is available since SDL 3.2.0. | ||
1941 | */ | ||
1942 | #define SDL_HINT_JOYSTICK_IOKIT "SDL_JOYSTICK_IOKIT" | ||
1943 | |||
1944 | /** | ||
1945 | * A variable controlling whether to use the classic /dev/input/js* joystick | ||
1946 | * interface or the newer /dev/input/event* joystick interface on Linux. | ||
1947 | * | ||
1948 | * The variable can be set to the following values: | ||
1949 | * | ||
1950 | * - "0": Use /dev/input/event* (default) | ||
1951 | * - "1": Use /dev/input/js* | ||
1952 | * | ||
1953 | * This hint should be set before SDL is initialized. | ||
1954 | * | ||
1955 | * \since This hint is available since SDL 3.2.0. | ||
1956 | */ | ||
1957 | #define SDL_HINT_JOYSTICK_LINUX_CLASSIC "SDL_JOYSTICK_LINUX_CLASSIC" | ||
1958 | |||
1959 | /** | ||
1960 | * A variable controlling whether joysticks on Linux adhere to their | ||
1961 | * HID-defined deadzones or return unfiltered values. | ||
1962 | * | ||
1963 | * The variable can be set to the following values: | ||
1964 | * | ||
1965 | * - "0": Return unfiltered joystick axis values. (default) | ||
1966 | * - "1": Return axis values with deadzones taken into account. | ||
1967 | * | ||
1968 | * This hint should be set before a controller is opened. | ||
1969 | * | ||
1970 | * \since This hint is available since SDL 3.2.0. | ||
1971 | */ | ||
1972 | #define SDL_HINT_JOYSTICK_LINUX_DEADZONES "SDL_JOYSTICK_LINUX_DEADZONES" | ||
1973 | |||
1974 | /** | ||
1975 | * A variable controlling whether joysticks on Linux will always treat 'hat' | ||
1976 | * axis inputs (ABS_HAT0X - ABS_HAT3Y) as 8-way digital hats without checking | ||
1977 | * whether they may be analog. | ||
1978 | * | ||
1979 | * The variable can be set to the following values: | ||
1980 | * | ||
1981 | * - "0": Only map hat axis inputs to digital hat outputs if the input axes | ||
1982 | * appear to actually be digital. (default) | ||
1983 | * - "1": Always handle the input axes numbered ABS_HAT0X to ABS_HAT3Y as | ||
1984 | * digital hats. | ||
1985 | * | ||
1986 | * This hint should be set before a controller is opened. | ||
1987 | * | ||
1988 | * \since This hint is available since SDL 3.2.0. | ||
1989 | */ | ||
1990 | #define SDL_HINT_JOYSTICK_LINUX_DIGITAL_HATS "SDL_JOYSTICK_LINUX_DIGITAL_HATS" | ||
1991 | |||
1992 | /** | ||
1993 | * A variable controlling whether digital hats on Linux will apply deadzones | ||
1994 | * to their underlying input axes or use unfiltered values. | ||
1995 | * | ||
1996 | * The variable can be set to the following values: | ||
1997 | * | ||
1998 | * - "0": Return digital hat values based on unfiltered input axis values. | ||
1999 | * - "1": Return digital hat values with deadzones on the input axes taken | ||
2000 | * into account. (default) | ||
2001 | * | ||
2002 | * This hint should be set before a controller is opened. | ||
2003 | * | ||
2004 | * \since This hint is available since SDL 3.2.0. | ||
2005 | */ | ||
2006 | #define SDL_HINT_JOYSTICK_LINUX_HAT_DEADZONES "SDL_JOYSTICK_LINUX_HAT_DEADZONES" | ||
2007 | |||
2008 | /** | ||
2009 | * A variable controlling whether GCController should be used for controller | ||
2010 | * handling. | ||
2011 | * | ||
2012 | * The variable can be set to the following values: | ||
2013 | * | ||
2014 | * - "0": GCController is not used. | ||
2015 | * - "1": GCController is used. (default) | ||
2016 | * | ||
2017 | * This hint should be set before SDL is initialized. | ||
2018 | * | ||
2019 | * \since This hint is available since SDL 3.2.0. | ||
2020 | */ | ||
2021 | #define SDL_HINT_JOYSTICK_MFI "SDL_JOYSTICK_MFI" | ||
2022 | |||
2023 | /** | ||
2024 | * A variable controlling whether the RAWINPUT joystick drivers should be used | ||
2025 | * for better handling XInput-capable devices. | ||
2026 | * | ||
2027 | * The variable can be set to the following values: | ||
2028 | * | ||
2029 | * - "0": RAWINPUT drivers are not used. (default) | ||
2030 | * - "1": RAWINPUT drivers are used. | ||
2031 | * | ||
2032 | * This hint should be set before SDL is initialized. | ||
2033 | * | ||
2034 | * \since This hint is available since SDL 3.2.0. | ||
2035 | */ | ||
2036 | #define SDL_HINT_JOYSTICK_RAWINPUT "SDL_JOYSTICK_RAWINPUT" | ||
2037 | |||
2038 | /** | ||
2039 | * A variable controlling whether the RAWINPUT driver should pull correlated | ||
2040 | * data from XInput. | ||
2041 | * | ||
2042 | * The variable can be set to the following values: | ||
2043 | * | ||
2044 | * - "0": RAWINPUT driver will only use data from raw input APIs. | ||
2045 | * - "1": RAWINPUT driver will also pull data from XInput and | ||
2046 | * Windows.Gaming.Input, providing better trigger axes, guide button | ||
2047 | * presses, and rumble support for Xbox controllers. (default) | ||
2048 | * | ||
2049 | * This hint should be set before a gamepad is opened. | ||
2050 | * | ||
2051 | * \since This hint is available since SDL 3.2.0. | ||
2052 | */ | ||
2053 | #define SDL_HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT "SDL_JOYSTICK_RAWINPUT_CORRELATE_XINPUT" | ||
2054 | |||
2055 | /** | ||
2056 | * A variable controlling whether the ROG Chakram mice should show up as | ||
2057 | * joysticks. | ||
2058 | * | ||
2059 | * The variable can be set to the following values: | ||
2060 | * | ||
2061 | * - "0": ROG Chakram mice do not show up as joysticks. (default) | ||
2062 | * - "1": ROG Chakram mice show up as joysticks. | ||
2063 | * | ||
2064 | * This hint should be set before SDL is initialized. | ||
2065 | * | ||
2066 | * \since This hint is available since SDL 3.2.0. | ||
2067 | */ | ||
2068 | #define SDL_HINT_JOYSTICK_ROG_CHAKRAM "SDL_JOYSTICK_ROG_CHAKRAM" | ||
2069 | |||
2070 | /** | ||
2071 | * A variable controlling whether a separate thread should be used for | ||
2072 | * handling joystick detection and raw input messages on Windows. | ||
2073 | * | ||
2074 | * The variable can be set to the following values: | ||
2075 | * | ||
2076 | * - "0": A separate thread is not used. | ||
2077 | * - "1": A separate thread is used for handling raw input messages. (default) | ||
2078 | * | ||
2079 | * This hint should be set before SDL is initialized. | ||
2080 | * | ||
2081 | * \since This hint is available since SDL 3.2.0. | ||
2082 | */ | ||
2083 | #define SDL_HINT_JOYSTICK_THREAD "SDL_JOYSTICK_THREAD" | ||
2084 | |||
2085 | /** | ||
2086 | * A variable containing a list of throttle style controllers. | ||
2087 | * | ||
2088 | * The format of the string is a comma separated list of USB VID/PID pairs in | ||
2089 | * hexadecimal form, e.g. | ||
2090 | * | ||
2091 | * `0xAAAA/0xBBBB,0xCCCC/0xDDDD` | ||
2092 | * | ||
2093 | * The variable can also take the form of "@file", in which case the named | ||
2094 | * file will be loaded and interpreted as the value of the variable. | ||
2095 | * | ||
2096 | * This hint can be set anytime. | ||
2097 | * | ||
2098 | * \since This hint is available since SDL 3.2.0. | ||
2099 | */ | ||
2100 | #define SDL_HINT_JOYSTICK_THROTTLE_DEVICES "SDL_JOYSTICK_THROTTLE_DEVICES" | ||
2101 | |||
2102 | /** | ||
2103 | * A variable containing a list of devices that are not throttle style | ||
2104 | * controllers. | ||
2105 | * | ||
2106 | * This will override SDL_HINT_JOYSTICK_THROTTLE_DEVICES and the built in | ||
2107 | * device list. | ||
2108 | * | ||
2109 | * The format of the string is a comma separated list of USB VID/PID pairs in | ||
2110 | * hexadecimal form, e.g. | ||
2111 | * | ||
2112 | * `0xAAAA/0xBBBB,0xCCCC/0xDDDD` | ||
2113 | * | ||
2114 | * The variable can also take the form of "@file", in which case the named | ||
2115 | * file will be loaded and interpreted as the value of the variable. | ||
2116 | * | ||
2117 | * This hint can be set anytime. | ||
2118 | * | ||
2119 | * \since This hint is available since SDL 3.2.0. | ||
2120 | */ | ||
2121 | #define SDL_HINT_JOYSTICK_THROTTLE_DEVICES_EXCLUDED "SDL_JOYSTICK_THROTTLE_DEVICES_EXCLUDED" | ||
2122 | |||
2123 | /** | ||
2124 | * A variable controlling whether Windows.Gaming.Input should be used for | ||
2125 | * controller handling. | ||
2126 | * | ||
2127 | * The variable can be set to the following values: | ||
2128 | * | ||
2129 | * - "0": WGI is not used. | ||
2130 | * - "1": WGI is used. (default) | ||
2131 | * | ||
2132 | * This hint should be set before SDL is initialized. | ||
2133 | * | ||
2134 | * \since This hint is available since SDL 3.2.0. | ||
2135 | */ | ||
2136 | #define SDL_HINT_JOYSTICK_WGI "SDL_JOYSTICK_WGI" | ||
2137 | |||
2138 | /** | ||
2139 | * A variable containing a list of wheel style controllers. | ||
2140 | * | ||
2141 | * The format of the string is a comma separated list of USB VID/PID pairs in | ||
2142 | * hexadecimal form, e.g. | ||
2143 | * | ||
2144 | * `0xAAAA/0xBBBB,0xCCCC/0xDDDD` | ||
2145 | * | ||
2146 | * The variable can also take the form of "@file", in which case the named | ||
2147 | * file will be loaded and interpreted as the value of the variable. | ||
2148 | * | ||
2149 | * This hint can be set anytime. | ||
2150 | * | ||
2151 | * \since This hint is available since SDL 3.2.0. | ||
2152 | */ | ||
2153 | #define SDL_HINT_JOYSTICK_WHEEL_DEVICES "SDL_JOYSTICK_WHEEL_DEVICES" | ||
2154 | |||
2155 | /** | ||
2156 | * A variable containing a list of devices that are not wheel style | ||
2157 | * controllers. | ||
2158 | * | ||
2159 | * This will override SDL_HINT_JOYSTICK_WHEEL_DEVICES and the built in device | ||
2160 | * list. | ||
2161 | * | ||
2162 | * The format of the string is a comma separated list of USB VID/PID pairs in | ||
2163 | * hexadecimal form, e.g. | ||
2164 | * | ||
2165 | * `0xAAAA/0xBBBB,0xCCCC/0xDDDD` | ||
2166 | * | ||
2167 | * The variable can also take the form of "@file", in which case the named | ||
2168 | * file will be loaded and interpreted as the value of the variable. | ||
2169 | * | ||
2170 | * This hint can be set anytime. | ||
2171 | * | ||
2172 | * \since This hint is available since SDL 3.2.0. | ||
2173 | */ | ||
2174 | #define SDL_HINT_JOYSTICK_WHEEL_DEVICES_EXCLUDED "SDL_JOYSTICK_WHEEL_DEVICES_EXCLUDED" | ||
2175 | |||
2176 | /** | ||
2177 | * A variable containing a list of devices known to have all axes centered at | ||
2178 | * zero. | ||
2179 | * | ||
2180 | * The format of the string is a comma separated list of USB VID/PID pairs in | ||
2181 | * hexadecimal form, e.g. | ||
2182 | * | ||
2183 | * `0xAAAA/0xBBBB,0xCCCC/0xDDDD` | ||
2184 | * | ||
2185 | * The variable can also take the form of "@file", in which case the named | ||
2186 | * file will be loaded and interpreted as the value of the variable. | ||
2187 | * | ||
2188 | * This hint should be set before a controller is opened. | ||
2189 | * | ||
2190 | * \since This hint is available since SDL 3.2.0. | ||
2191 | */ | ||
2192 | #define SDL_HINT_JOYSTICK_ZERO_CENTERED_DEVICES "SDL_JOYSTICK_ZERO_CENTERED_DEVICES" | ||
2193 | |||
2194 | /** | ||
2195 | * A variable containing a list of devices and their desired number of haptic | ||
2196 | * (force feedback) enabled axis. | ||
2197 | * | ||
2198 | * The format of the string is a comma separated list of USB VID/PID pairs in | ||
2199 | * hexadecimal form plus the number of desired axes, e.g. | ||
2200 | * | ||
2201 | * `0xAAAA/0xBBBB/1,0xCCCC/0xDDDD/3` | ||
2202 | * | ||
2203 | * This hint supports a "wildcard" device that will set the number of haptic | ||
2204 | * axes on all initialized haptic devices which were not defined explicitly in | ||
2205 | * this hint. | ||
2206 | * | ||
2207 | * `0xFFFF/0xFFFF/1` | ||
2208 | * | ||
2209 | * This hint should be set before a controller is opened. The number of haptic | ||
2210 | * axes won't exceed the number of real axes found on the device. | ||
2211 | * | ||
2212 | * \since This hint is available since SDL 3.2.5. | ||
2213 | */ | ||
2214 | #define SDL_HINT_JOYSTICK_HAPTIC_AXES "SDL_JOYSTICK_HAPTIC_AXES" | ||
2215 | |||
2216 | /** | ||
2217 | * A variable that controls keycode representation in keyboard events. | ||
2218 | * | ||
2219 | * This variable is a comma separated set of options for translating keycodes | ||
2220 | * in events: | ||
2221 | * | ||
2222 | * - "none": Keycode options are cleared, this overrides other options. | ||
2223 | * - "hide_numpad": The numpad keysyms will be translated into their | ||
2224 | * non-numpad versions based on the current NumLock state. For example, | ||
2225 | * SDLK_KP_4 would become SDLK_4 if SDL_KMOD_NUM is set in the event | ||
2226 | * modifiers, and SDLK_LEFT if it is unset. | ||
2227 | * - "french_numbers": The number row on French keyboards is inverted, so | ||
2228 | * pressing the 1 key would yield the keycode SDLK_1, or '1', instead of | ||
2229 | * SDLK_AMPERSAND, or '&' | ||
2230 | * - "latin_letters": For keyboards using non-Latin letters, such as Russian | ||
2231 | * or Thai, the letter keys generate keycodes as though it had an en_US | ||
2232 | * layout. e.g. pressing the key associated with SDL_SCANCODE_A on a Russian | ||
2233 | * keyboard would yield 'a' instead of a Cyrillic letter. | ||
2234 | * | ||
2235 | * The default value for this hint is "french_numbers,latin_letters" | ||
2236 | * | ||
2237 | * Some platforms like Emscripten only provide modified keycodes and the | ||
2238 | * options are not used. | ||
2239 | * | ||
2240 | * These options do not affect the return value of SDL_GetKeyFromScancode() or | ||
2241 | * SDL_GetScancodeFromKey(), they just apply to the keycode included in key | ||
2242 | * events. | ||
2243 | * | ||
2244 | * This hint can be set anytime. | ||
2245 | * | ||
2246 | * \since This hint is available since SDL 3.2.0. | ||
2247 | */ | ||
2248 | #define SDL_HINT_KEYCODE_OPTIONS "SDL_KEYCODE_OPTIONS" | ||
2249 | |||
2250 | /** | ||
2251 | * A variable that controls what KMSDRM device to use. | ||
2252 | * | ||
2253 | * SDL might open something like "/dev/dri/cardNN" to access KMSDRM | ||
2254 | * functionality, where "NN" is a device index number. SDL makes a guess at | ||
2255 | * the best index to use (usually zero), but the app or user can set this hint | ||
2256 | * to a number between 0 and 99 to force selection. | ||
2257 | * | ||
2258 | * This hint should be set before SDL is initialized. | ||
2259 | * | ||
2260 | * \since This hint is available since SDL 3.2.0. | ||
2261 | */ | ||
2262 | #define SDL_HINT_KMSDRM_DEVICE_INDEX "SDL_KMSDRM_DEVICE_INDEX" | ||
2263 | |||
2264 | /** | ||
2265 | * A variable that controls whether SDL requires DRM master access in order to | ||
2266 | * initialize the KMSDRM video backend. | ||
2267 | * | ||
2268 | * The DRM subsystem has a concept of a "DRM master" which is a DRM client | ||
2269 | * that has the ability to set planes, set cursor, etc. When SDL is DRM | ||
2270 | * master, it can draw to the screen using the SDL rendering APIs. Without DRM | ||
2271 | * master, SDL is still able to process input and query attributes of attached | ||
2272 | * displays, but it cannot change display state or draw to the screen | ||
2273 | * directly. | ||
2274 | * | ||
2275 | * In some cases, it can be useful to have the KMSDRM backend even if it | ||
2276 | * cannot be used for rendering. An app may want to use SDL for input | ||
2277 | * processing while using another rendering API (such as an MMAL overlay on | ||
2278 | * Raspberry Pi) or using its own code to render to DRM overlays that SDL | ||
2279 | * doesn't support. | ||
2280 | * | ||
2281 | * The variable can be set to the following values: | ||
2282 | * | ||
2283 | * - "0": SDL will allow usage of the KMSDRM backend without DRM master. | ||
2284 | * - "1": SDL Will require DRM master to use the KMSDRM backend. (default) | ||
2285 | * | ||
2286 | * This hint should be set before SDL is initialized. | ||
2287 | * | ||
2288 | * \since This hint is available since SDL 3.2.0. | ||
2289 | */ | ||
2290 | #define SDL_HINT_KMSDRM_REQUIRE_DRM_MASTER "SDL_KMSDRM_REQUIRE_DRM_MASTER" | ||
2291 | |||
2292 | /** | ||
2293 | * A variable controlling the default SDL log levels. | ||
2294 | * | ||
2295 | * This variable is a comma separated set of category=level tokens that define | ||
2296 | * the default logging levels for SDL applications. | ||
2297 | * | ||
2298 | * The category can be a numeric category, one of "app", "error", "assert", | ||
2299 | * "system", "audio", "video", "render", "input", "test", or `*` for any | ||
2300 | * unspecified category. | ||
2301 | * | ||
2302 | * The level can be a numeric level, one of "verbose", "debug", "info", | ||
2303 | * "warn", "error", "critical", or "quiet" to disable that category. | ||
2304 | * | ||
2305 | * You can omit the category if you want to set the logging level for all | ||
2306 | * categories. | ||
2307 | * | ||
2308 | * If this hint isn't set, the default log levels are equivalent to: | ||
2309 | * | ||
2310 | * `app=info,assert=warn,test=verbose,*=error` | ||
2311 | * | ||
2312 | * This hint can be set anytime. | ||
2313 | * | ||
2314 | * \since This hint is available since SDL 3.2.0. | ||
2315 | */ | ||
2316 | #define SDL_HINT_LOGGING "SDL_LOGGING" | ||
2317 | |||
2318 | /** | ||
2319 | * A variable controlling whether to force the application to become the | ||
2320 | * foreground process when launched on macOS. | ||
2321 | * | ||
2322 | * The variable can be set to the following values: | ||
2323 | * | ||
2324 | * - "0": The application is brought to the foreground when launched. | ||
2325 | * (default) | ||
2326 | * - "1": The application may remain in the background when launched. | ||
2327 | * | ||
2328 | * This hint needs to be set before SDL_Init(). | ||
2329 | * | ||
2330 | * \since This hint is available since SDL 3.2.0. | ||
2331 | */ | ||
2332 | #define SDL_HINT_MAC_BACKGROUND_APP "SDL_MAC_BACKGROUND_APP" | ||
2333 | |||
2334 | /** | ||
2335 | * A variable that determines whether Ctrl+Click should generate a right-click | ||
2336 | * event on macOS. | ||
2337 | * | ||
2338 | * The variable can be set to the following values: | ||
2339 | * | ||
2340 | * - "0": Ctrl+Click does not generate a right mouse button click event. | ||
2341 | * (default) | ||
2342 | * - "1": Ctrl+Click generated a right mouse button click event. | ||
2343 | * | ||
2344 | * This hint can be set anytime. | ||
2345 | * | ||
2346 | * \since This hint is available since SDL 3.2.0. | ||
2347 | */ | ||
2348 | #define SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK" | ||
2349 | |||
2350 | /** | ||
2351 | * A variable controlling whether dispatching OpenGL context updates should | ||
2352 | * block the dispatching thread until the main thread finishes processing on | ||
2353 | * macOS. | ||
2354 | * | ||
2355 | * The variable can be set to the following values: | ||
2356 | * | ||
2357 | * - "0": Dispatching OpenGL context updates will block the dispatching thread | ||
2358 | * until the main thread finishes processing. (default) | ||
2359 | * - "1": Dispatching OpenGL context updates will allow the dispatching thread | ||
2360 | * to continue execution. | ||
2361 | * | ||
2362 | * Generally you want the default, but if you have OpenGL code in a background | ||
2363 | * thread on a Mac, and the main thread hangs because it's waiting for that | ||
2364 | * background thread, but that background thread is also hanging because it's | ||
2365 | * waiting for the main thread to do an update, this might fix your issue. | ||
2366 | * | ||
2367 | * This hint can be set anytime. | ||
2368 | * | ||
2369 | * \since This hint is available since SDL 3.2.0. | ||
2370 | */ | ||
2371 | #define SDL_HINT_MAC_OPENGL_ASYNC_DISPATCH "SDL_MAC_OPENGL_ASYNC_DISPATCH" | ||
2372 | |||
2373 | /** | ||
2374 | * A variable controlling whether the Option key on macOS should be remapped | ||
2375 | * to act as the Alt key. | ||
2376 | * | ||
2377 | * The variable can be set to the following values: | ||
2378 | * | ||
2379 | * - "none": The Option key is not remapped to Alt. (default) | ||
2380 | * - "only_left": Only the left Option key is remapped to Alt. | ||
2381 | * - "only_right": Only the right Option key is remapped to Alt. | ||
2382 | * - "both": Both Option keys are remapped to Alt. | ||
2383 | * | ||
2384 | * This will prevent the triggering of key compositions that rely on the | ||
2385 | * Option key, but will still send the Alt modifier for keyboard events. In | ||
2386 | * the case that both Alt and Option are pressed, the Option key will be | ||
2387 | * ignored. This is particularly useful for applications like terminal | ||
2388 | * emulators and graphical user interfaces (GUIs) that rely on Alt key | ||
2389 | * functionality for shortcuts or navigation. This does not apply to | ||
2390 | * SDL_GetKeyFromScancode and only has an effect if IME is enabled. | ||
2391 | * | ||
2392 | * This hint can be set anytime. | ||
2393 | * | ||
2394 | * \since This hint is available since SDL 3.2.0. | ||
2395 | */ | ||
2396 | #define SDL_HINT_MAC_OPTION_AS_ALT "SDL_MAC_OPTION_AS_ALT" | ||
2397 | |||
2398 | /** | ||
2399 | * A variable controlling whether SDL_EVENT_MOUSE_WHEEL event values will have | ||
2400 | * momentum on macOS. | ||
2401 | * | ||
2402 | * The variable can be set to the following values: | ||
2403 | * | ||
2404 | * - "0": The mouse wheel events will have no momentum. (default) | ||
2405 | * - "1": The mouse wheel events will have momentum. | ||
2406 | * | ||
2407 | * This hint needs to be set before SDL_Init(). | ||
2408 | * | ||
2409 | * \since This hint is available since SDL 3.2.0. | ||
2410 | */ | ||
2411 | #define SDL_HINT_MAC_SCROLL_MOMENTUM "SDL_MAC_SCROLL_MOMENTUM" | ||
2412 | |||
2413 | /** | ||
2414 | * Request SDL_AppIterate() be called at a specific rate. | ||
2415 | * | ||
2416 | * If this is set to a number, it represents Hz, so "60" means try to iterate | ||
2417 | * 60 times per second. "0" means to iterate as fast as possible. Negative | ||
2418 | * values are illegal, but reserved, in case they are useful in a future | ||
2419 | * revision of SDL. | ||
2420 | * | ||
2421 | * There are other strings that have special meaning. If set to "waitevent", | ||
2422 | * SDL_AppIterate will not be called until new event(s) have arrived (and been | ||
2423 | * processed by SDL_AppEvent). This can be useful for apps that are completely | ||
2424 | * idle except in response to input. | ||
2425 | * | ||
2426 | * On some platforms, or if you are using SDL_main instead of SDL_AppIterate, | ||
2427 | * this hint is ignored. When the hint can be used, it is allowed to be | ||
2428 | * changed at any time. | ||
2429 | * | ||
2430 | * This defaults to 0, and specifying NULL for the hint's value will restore | ||
2431 | * the default. | ||
2432 | * | ||
2433 | * This hint can be set anytime. | ||
2434 | * | ||
2435 | * \since This hint is available since SDL 3.2.0. | ||
2436 | */ | ||
2437 | #define SDL_HINT_MAIN_CALLBACK_RATE "SDL_MAIN_CALLBACK_RATE" | ||
2438 | |||
2439 | /** | ||
2440 | * A variable controlling whether the mouse is captured while mouse buttons | ||
2441 | * are pressed. | ||
2442 | * | ||
2443 | * The variable can be set to the following values: | ||
2444 | * | ||
2445 | * - "0": The mouse is not captured while mouse buttons are pressed. | ||
2446 | * - "1": The mouse is captured while mouse buttons are pressed. | ||
2447 | * | ||
2448 | * By default the mouse is captured while mouse buttons are pressed so if the | ||
2449 | * mouse is dragged outside the window, the application continues to receive | ||
2450 | * mouse events until the button is released. | ||
2451 | * | ||
2452 | * This hint can be set anytime. | ||
2453 | * | ||
2454 | * \since This hint is available since SDL 3.2.0. | ||
2455 | */ | ||
2456 | #define SDL_HINT_MOUSE_AUTO_CAPTURE "SDL_MOUSE_AUTO_CAPTURE" | ||
2457 | |||
2458 | /** | ||
2459 | * A variable setting the double click radius, in pixels. | ||
2460 | * | ||
2461 | * This hint can be set anytime. | ||
2462 | * | ||
2463 | * \since This hint is available since SDL 3.2.0. | ||
2464 | */ | ||
2465 | #define SDL_HINT_MOUSE_DOUBLE_CLICK_RADIUS "SDL_MOUSE_DOUBLE_CLICK_RADIUS" | ||
2466 | |||
2467 | /** | ||
2468 | * A variable setting the double click time, in milliseconds. | ||
2469 | * | ||
2470 | * This hint can be set anytime. | ||
2471 | * | ||
2472 | * \since This hint is available since SDL 3.2.0. | ||
2473 | */ | ||
2474 | #define SDL_HINT_MOUSE_DOUBLE_CLICK_TIME "SDL_MOUSE_DOUBLE_CLICK_TIME" | ||
2475 | |||
2476 | /** | ||
2477 | * A variable setting which system cursor to use as the default cursor. | ||
2478 | * | ||
2479 | * This should be an integer corresponding to the SDL_SystemCursor enum. The | ||
2480 | * default value is zero (SDL_SYSTEM_CURSOR_DEFAULT). | ||
2481 | * | ||
2482 | * This hint needs to be set before SDL_Init(). | ||
2483 | * | ||
2484 | * \since This hint is available since SDL 3.2.0. | ||
2485 | */ | ||
2486 | #define SDL_HINT_MOUSE_DEFAULT_SYSTEM_CURSOR "SDL_MOUSE_DEFAULT_SYSTEM_CURSOR" | ||
2487 | |||
2488 | /** | ||
2489 | * A variable controlling whether warping a hidden mouse cursor will activate | ||
2490 | * relative mouse mode. | ||
2491 | * | ||
2492 | * When this hint is set, the mouse cursor is hidden, and multiple warps to | ||
2493 | * the window center occur within a short time period, SDL will emulate mouse | ||
2494 | * warps using relative mouse mode. This can provide smoother and more | ||
2495 | * reliable mouse motion for some older games, which continuously calculate | ||
2496 | * the distance travelled by the mouse pointer and warp it back to the center | ||
2497 | * of the window, rather than using relative mouse motion. | ||
2498 | * | ||
2499 | * Note that relative mouse mode may have different mouse acceleration | ||
2500 | * behavior than pointer warps. | ||
2501 | * | ||
2502 | * If your application needs to repeatedly warp the hidden mouse cursor at a | ||
2503 | * high-frequency for other purposes, it should disable this hint. | ||
2504 | * | ||
2505 | * The variable can be set to the following values: | ||
2506 | * | ||
2507 | * - "0": Attempts to warp the mouse will always be made. | ||
2508 | * - "1": Some mouse warps will be emulated by forcing relative mouse mode. | ||
2509 | * (default) | ||
2510 | * | ||
2511 | * If not set, this is automatically enabled unless an application uses | ||
2512 | * relative mouse mode directly. | ||
2513 | * | ||
2514 | * This hint can be set anytime. | ||
2515 | * | ||
2516 | * \since This hint is available since SDL 3.2.0. | ||
2517 | */ | ||
2518 | #define SDL_HINT_MOUSE_EMULATE_WARP_WITH_RELATIVE "SDL_MOUSE_EMULATE_WARP_WITH_RELATIVE" | ||
2519 | |||
2520 | /** | ||
2521 | * Allow mouse click events when clicking to focus an SDL window. | ||
2522 | * | ||
2523 | * The variable can be set to the following values: | ||
2524 | * | ||
2525 | * - "0": Ignore mouse clicks that activate a window. (default) | ||
2526 | * - "1": Generate events for mouse clicks that activate a window. | ||
2527 | * | ||
2528 | * This hint can be set anytime. | ||
2529 | * | ||
2530 | * \since This hint is available since SDL 3.2.0. | ||
2531 | */ | ||
2532 | #define SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH "SDL_MOUSE_FOCUS_CLICKTHROUGH" | ||
2533 | |||
2534 | /** | ||
2535 | * A variable setting the speed scale for mouse motion, in floating point, | ||
2536 | * when the mouse is not in relative mode. | ||
2537 | * | ||
2538 | * This hint can be set anytime. | ||
2539 | * | ||
2540 | * \since This hint is available since SDL 3.2.0. | ||
2541 | */ | ||
2542 | #define SDL_HINT_MOUSE_NORMAL_SPEED_SCALE "SDL_MOUSE_NORMAL_SPEED_SCALE" | ||
2543 | |||
2544 | /** | ||
2545 | * A variable controlling whether relative mouse mode constrains the mouse to | ||
2546 | * the center of the window. | ||
2547 | * | ||
2548 | * Constraining to the center of the window works better for FPS games and | ||
2549 | * when the application is running over RDP. Constraining to the whole window | ||
2550 | * works better for 2D games and increases the chance that the mouse will be | ||
2551 | * in the correct position when using high DPI mice. | ||
2552 | * | ||
2553 | * The variable can be set to the following values: | ||
2554 | * | ||
2555 | * - "0": Relative mouse mode constrains the mouse to the window. | ||
2556 | * - "1": Relative mouse mode constrains the mouse to the center of the | ||
2557 | * window. (default) | ||
2558 | * | ||
2559 | * This hint can be set anytime. | ||
2560 | * | ||
2561 | * \since This hint is available since SDL 3.2.0. | ||
2562 | */ | ||
2563 | #define SDL_HINT_MOUSE_RELATIVE_MODE_CENTER "SDL_MOUSE_RELATIVE_MODE_CENTER" | ||
2564 | |||
2565 | /** | ||
2566 | * A variable setting the scale for mouse motion, in floating point, when the | ||
2567 | * mouse is in relative mode. | ||
2568 | * | ||
2569 | * This hint can be set anytime. | ||
2570 | * | ||
2571 | * \since This hint is available since SDL 3.2.0. | ||
2572 | */ | ||
2573 | #define SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE "SDL_MOUSE_RELATIVE_SPEED_SCALE" | ||
2574 | |||
2575 | /** | ||
2576 | * A variable controlling whether the system mouse acceleration curve is used | ||
2577 | * for relative mouse motion. | ||
2578 | * | ||
2579 | * The variable can be set to the following values: | ||
2580 | * | ||
2581 | * - "0": Relative mouse motion will be unscaled. (default) | ||
2582 | * - "1": Relative mouse motion will be scaled using the system mouse | ||
2583 | * acceleration curve. | ||
2584 | * | ||
2585 | * If SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE is set, that will be applied after | ||
2586 | * system speed scale. | ||
2587 | * | ||
2588 | * This hint can be set anytime. | ||
2589 | * | ||
2590 | * \since This hint is available since SDL 3.2.0. | ||
2591 | */ | ||
2592 | #define SDL_HINT_MOUSE_RELATIVE_SYSTEM_SCALE "SDL_MOUSE_RELATIVE_SYSTEM_SCALE" | ||
2593 | |||
2594 | /** | ||
2595 | * A variable controlling whether a motion event should be generated for mouse | ||
2596 | * warping in relative mode. | ||
2597 | * | ||
2598 | * The variable can be set to the following values: | ||
2599 | * | ||
2600 | * - "0": Warping the mouse will not generate a motion event in relative mode | ||
2601 | * - "1": Warping the mouse will generate a motion event in relative mode | ||
2602 | * | ||
2603 | * By default warping the mouse will not generate motion events in relative | ||
2604 | * mode. This avoids the application having to filter out large relative | ||
2605 | * motion due to warping. | ||
2606 | * | ||
2607 | * This hint can be set anytime. | ||
2608 | * | ||
2609 | * \since This hint is available since SDL 3.2.0. | ||
2610 | */ | ||
2611 | #define SDL_HINT_MOUSE_RELATIVE_WARP_MOTION "SDL_MOUSE_RELATIVE_WARP_MOTION" | ||
2612 | |||
2613 | /** | ||
2614 | * A variable controlling whether the hardware cursor stays visible when | ||
2615 | * relative mode is active. | ||
2616 | * | ||
2617 | * This variable can be set to the following values: | ||
2618 | * | ||
2619 | * - "0": The cursor will be hidden while relative mode is active (default) | ||
2620 | * - "1": The cursor will remain visible while relative mode is active | ||
2621 | * | ||
2622 | * Note that for systems without raw hardware inputs, relative mode is | ||
2623 | * implemented using warping, so the hardware cursor will visibly warp between | ||
2624 | * frames if this is enabled on those systems. | ||
2625 | * | ||
2626 | * This hint can be set anytime. | ||
2627 | * | ||
2628 | * \since This hint is available since SDL 3.2.0. | ||
2629 | */ | ||
2630 | #define SDL_HINT_MOUSE_RELATIVE_CURSOR_VISIBLE "SDL_MOUSE_RELATIVE_CURSOR_VISIBLE" | ||
2631 | |||
2632 | /** | ||
2633 | * A variable controlling whether mouse events should generate synthetic touch | ||
2634 | * events. | ||
2635 | * | ||
2636 | * The variable can be set to the following values: | ||
2637 | * | ||
2638 | * - "0": Mouse events will not generate touch events. (default for desktop | ||
2639 | * platforms) | ||
2640 | * - "1": Mouse events will generate touch events. (default for mobile | ||
2641 | * platforms, such as Android and iOS) | ||
2642 | * | ||
2643 | * This hint can be set anytime. | ||
2644 | * | ||
2645 | * \since This hint is available since SDL 3.2.0. | ||
2646 | */ | ||
2647 | #define SDL_HINT_MOUSE_TOUCH_EVENTS "SDL_MOUSE_TOUCH_EVENTS" | ||
2648 | |||
2649 | /** | ||
2650 | * A variable controlling whether the keyboard should be muted on the console. | ||
2651 | * | ||
2652 | * Normally the keyboard is muted while SDL applications are running so that | ||
2653 | * keyboard input doesn't show up as key strokes on the console. This hint | ||
2654 | * allows you to turn that off for debugging purposes. | ||
2655 | * | ||
2656 | * The variable can be set to the following values: | ||
2657 | * | ||
2658 | * - "0": Allow keystrokes to go through to the console. | ||
2659 | * - "1": Mute keyboard input so it doesn't show up on the console. (default) | ||
2660 | * | ||
2661 | * This hint should be set before SDL is initialized. | ||
2662 | * | ||
2663 | * \since This hint is available since SDL 3.2.0. | ||
2664 | */ | ||
2665 | #define SDL_HINT_MUTE_CONSOLE_KEYBOARD "SDL_MUTE_CONSOLE_KEYBOARD" | ||
2666 | |||
2667 | /** | ||
2668 | * Tell SDL not to catch the SIGINT or SIGTERM signals on POSIX platforms. | ||
2669 | * | ||
2670 | * The variable can be set to the following values: | ||
2671 | * | ||
2672 | * - "0": SDL will install a SIGINT and SIGTERM handler, and when it catches a | ||
2673 | * signal, convert it into an SDL_EVENT_QUIT event. (default) | ||
2674 | * - "1": SDL will not install a signal handler at all. | ||
2675 | * | ||
2676 | * This hint should be set before SDL is initialized. | ||
2677 | * | ||
2678 | * \since This hint is available since SDL 3.2.0. | ||
2679 | */ | ||
2680 | #define SDL_HINT_NO_SIGNAL_HANDLERS "SDL_NO_SIGNAL_HANDLERS" | ||
2681 | |||
2682 | /** | ||
2683 | * Specify the OpenGL library to load. | ||
2684 | * | ||
2685 | * This hint should be set before creating an OpenGL window or creating an | ||
2686 | * OpenGL context. If this hint isn't set, SDL will choose a reasonable | ||
2687 | * default. | ||
2688 | * | ||
2689 | * \since This hint is available since SDL 3.2.0. | ||
2690 | */ | ||
2691 | #define SDL_HINT_OPENGL_LIBRARY "SDL_OPENGL_LIBRARY" | ||
2692 | |||
2693 | /** | ||
2694 | * Specify the EGL library to load. | ||
2695 | * | ||
2696 | * This hint should be set before creating an OpenGL window or creating an | ||
2697 | * OpenGL context. This hint is only considered if SDL is using EGL to manage | ||
2698 | * OpenGL contexts. If this hint isn't set, SDL will choose a reasonable | ||
2699 | * default. | ||
2700 | * | ||
2701 | * \since This hint is available since SDL 3.2.0. | ||
2702 | */ | ||
2703 | #define SDL_HINT_EGL_LIBRARY "SDL_EGL_LIBRARY" | ||
2704 | |||
2705 | /** | ||
2706 | * A variable controlling what driver to use for OpenGL ES contexts. | ||
2707 | * | ||
2708 | * On some platforms, currently Windows and X11, OpenGL drivers may support | ||
2709 | * creating contexts with an OpenGL ES profile. By default SDL uses these | ||
2710 | * profiles, when available, otherwise it attempts to load an OpenGL ES | ||
2711 | * library, e.g. that provided by the ANGLE project. This variable controls | ||
2712 | * whether SDL follows this default behaviour or will always load an OpenGL ES | ||
2713 | * library. | ||
2714 | * | ||
2715 | * Circumstances where this is useful include - Testing an app with a | ||
2716 | * particular OpenGL ES implementation, e.g ANGLE, or emulator, e.g. those | ||
2717 | * from ARM, Imagination or Qualcomm. - Resolving OpenGL ES function addresses | ||
2718 | * at link time by linking with the OpenGL ES library instead of querying them | ||
2719 | * at run time with SDL_GL_GetProcAddress(). | ||
2720 | * | ||
2721 | * Caution: for an application to work with the default behaviour across | ||
2722 | * different OpenGL drivers it must query the OpenGL ES function addresses at | ||
2723 | * run time using SDL_GL_GetProcAddress(). | ||
2724 | * | ||
2725 | * This variable is ignored on most platforms because OpenGL ES is native or | ||
2726 | * not supported. | ||
2727 | * | ||
2728 | * The variable can be set to the following values: | ||
2729 | * | ||
2730 | * - "0": Use ES profile of OpenGL, if available. (default) | ||
2731 | * - "1": Load OpenGL ES library using the default library names. | ||
2732 | * | ||
2733 | * This hint should be set before SDL is initialized. | ||
2734 | * | ||
2735 | * \since This hint is available since SDL 3.2.0. | ||
2736 | */ | ||
2737 | #define SDL_HINT_OPENGL_ES_DRIVER "SDL_OPENGL_ES_DRIVER" | ||
2738 | |||
2739 | /** | ||
2740 | * Mechanism to specify openvr_api library location | ||
2741 | * | ||
2742 | * By default, when using the OpenVR driver, it will search for the API | ||
2743 | * library in the current folder. But, if you wish to use a system API you can | ||
2744 | * specify that by using this hint. This should be the full or relative path | ||
2745 | * to a .dll on Windows or .so on Linux. | ||
2746 | * | ||
2747 | * \since This hint is available since SDL 3.2.0. | ||
2748 | */ | ||
2749 | #define SDL_HINT_OPENVR_LIBRARY "SDL_OPENVR_LIBRARY" | ||
2750 | |||
2751 | /** | ||
2752 | * A variable controlling which orientations are allowed on iOS/Android. | ||
2753 | * | ||
2754 | * In some circumstances it is necessary to be able to explicitly control | ||
2755 | * which UI orientations are allowed. | ||
2756 | * | ||
2757 | * This variable is a space delimited list of the following values: | ||
2758 | * | ||
2759 | * - "LandscapeLeft" | ||
2760 | * - "LandscapeRight" | ||
2761 | * - "Portrait" | ||
2762 | * - "PortraitUpsideDown" | ||
2763 | * | ||
2764 | * This hint should be set before SDL is initialized. | ||
2765 | * | ||
2766 | * \since This hint is available since SDL 3.2.0. | ||
2767 | */ | ||
2768 | #define SDL_HINT_ORIENTATIONS "SDL_ORIENTATIONS" | ||
2769 | |||
2770 | /** | ||
2771 | * A variable controlling the use of a sentinel event when polling the event | ||
2772 | * queue. | ||
2773 | * | ||
2774 | * When polling for events, SDL_PumpEvents is used to gather new events from | ||
2775 | * devices. If a device keeps producing new events between calls to | ||
2776 | * SDL_PumpEvents, a poll loop will become stuck until the new events stop. | ||
2777 | * This is most noticeable when moving a high frequency mouse. | ||
2778 | * | ||
2779 | * The variable can be set to the following values: | ||
2780 | * | ||
2781 | * - "0": Disable poll sentinels. | ||
2782 | * - "1": Enable poll sentinels. (default) | ||
2783 | * | ||
2784 | * This hint can be set anytime. | ||
2785 | * | ||
2786 | * \since This hint is available since SDL 3.2.0. | ||
2787 | */ | ||
2788 | #define SDL_HINT_POLL_SENTINEL "SDL_POLL_SENTINEL" | ||
2789 | |||
2790 | /** | ||
2791 | * Override for SDL_GetPreferredLocales(). | ||
2792 | * | ||
2793 | * If set, this will be favored over anything the OS might report for the | ||
2794 | * user's preferred locales. Changing this hint at runtime will not generate a | ||
2795 | * SDL_EVENT_LOCALE_CHANGED event (but if you can change the hint, you can | ||
2796 | * push your own event, if you want). | ||
2797 | * | ||
2798 | * The format of this hint is a comma-separated list of language and locale, | ||
2799 | * combined with an underscore, as is a common format: "en_GB". Locale is | ||
2800 | * optional: "en". So you might have a list like this: "en_GB,jp,es_PT" | ||
2801 | * | ||
2802 | * This hint can be set anytime. | ||
2803 | * | ||
2804 | * \since This hint is available since SDL 3.2.0. | ||
2805 | */ | ||
2806 | #define SDL_HINT_PREFERRED_LOCALES "SDL_PREFERRED_LOCALES" | ||
2807 | |||
2808 | /** | ||
2809 | * A variable that decides whether to send SDL_EVENT_QUIT when closing the | ||
2810 | * last window. | ||
2811 | * | ||
2812 | * The variable can be set to the following values: | ||
2813 | * | ||
2814 | * - "0": SDL will not send an SDL_EVENT_QUIT event when the last window is | ||
2815 | * requesting to close. Note that in this case, there are still other | ||
2816 | * legitimate reasons one might get an SDL_EVENT_QUIT event: choosing "Quit" | ||
2817 | * from the macOS menu bar, sending a SIGINT (ctrl-c) on Unix, etc. | ||
2818 | * - "1": SDL will send a quit event when the last window is requesting to | ||
2819 | * close. (default) | ||
2820 | * | ||
2821 | * If there is at least one active system tray icon, SDL_EVENT_QUIT will | ||
2822 | * instead be sent when both the last window will be closed and the last tray | ||
2823 | * icon will be destroyed. | ||
2824 | * | ||
2825 | * This hint can be set anytime. | ||
2826 | * | ||
2827 | * \since This hint is available since SDL 3.2.0. | ||
2828 | */ | ||
2829 | #define SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE "SDL_QUIT_ON_LAST_WINDOW_CLOSE" | ||
2830 | |||
2831 | /** | ||
2832 | * A variable controlling whether the Direct3D device is initialized for | ||
2833 | * thread-safe operations. | ||
2834 | * | ||
2835 | * The variable can be set to the following values: | ||
2836 | * | ||
2837 | * - "0": Thread-safety is not enabled. (default) | ||
2838 | * - "1": Thread-safety is enabled. | ||
2839 | * | ||
2840 | * This hint should be set before creating a renderer. | ||
2841 | * | ||
2842 | * \since This hint is available since SDL 3.2.0. | ||
2843 | */ | ||
2844 | #define SDL_HINT_RENDER_DIRECT3D_THREADSAFE "SDL_RENDER_DIRECT3D_THREADSAFE" | ||
2845 | |||
2846 | /** | ||
2847 | * A variable controlling whether to enable Direct3D 11+'s Debug Layer. | ||
2848 | * | ||
2849 | * This variable does not have any effect on the Direct3D 9 based renderer. | ||
2850 | * | ||
2851 | * The variable can be set to the following values: | ||
2852 | * | ||
2853 | * - "0": Disable Debug Layer use. (default) | ||
2854 | * - "1": Enable Debug Layer use. | ||
2855 | * | ||
2856 | * This hint should be set before creating a renderer. | ||
2857 | * | ||
2858 | * \since This hint is available since SDL 3.2.0. | ||
2859 | */ | ||
2860 | #define SDL_HINT_RENDER_DIRECT3D11_DEBUG "SDL_RENDER_DIRECT3D11_DEBUG" | ||
2861 | |||
2862 | /** | ||
2863 | * A variable controlling whether to enable Vulkan Validation Layers. | ||
2864 | * | ||
2865 | * This variable can be set to the following values: | ||
2866 | * | ||
2867 | * - "0": Disable Validation Layer use | ||
2868 | * - "1": Enable Validation Layer use | ||
2869 | * | ||
2870 | * By default, SDL does not use Vulkan Validation Layers. | ||
2871 | * | ||
2872 | * \since This hint is available since SDL 3.2.0. | ||
2873 | */ | ||
2874 | #define SDL_HINT_RENDER_VULKAN_DEBUG "SDL_RENDER_VULKAN_DEBUG" | ||
2875 | |||
2876 | /** | ||
2877 | * A variable controlling whether to create the GPU device in debug mode. | ||
2878 | * | ||
2879 | * This variable can be set to the following values: | ||
2880 | * | ||
2881 | * - "0": Disable debug mode use (default) | ||
2882 | * - "1": Enable debug mode use | ||
2883 | * | ||
2884 | * This hint should be set before creating a renderer. | ||
2885 | * | ||
2886 | * \since This hint is available since SDL 3.2.0. | ||
2887 | */ | ||
2888 | #define SDL_HINT_RENDER_GPU_DEBUG "SDL_RENDER_GPU_DEBUG" | ||
2889 | |||
2890 | /** | ||
2891 | * A variable controlling whether to prefer a low-power GPU on multi-GPU | ||
2892 | * systems. | ||
2893 | * | ||
2894 | * This variable can be set to the following values: | ||
2895 | * | ||
2896 | * - "0": Prefer high-performance GPU (default) | ||
2897 | * - "1": Prefer low-power GPU | ||
2898 | * | ||
2899 | * This hint should be set before creating a renderer. | ||
2900 | * | ||
2901 | * \since This hint is available since SDL 3.2.0. | ||
2902 | */ | ||
2903 | #define SDL_HINT_RENDER_GPU_LOW_POWER "SDL_RENDER_GPU_LOW_POWER" | ||
2904 | |||
2905 | /** | ||
2906 | * A variable specifying which render driver to use. | ||
2907 | * | ||
2908 | * If the application doesn't pick a specific renderer to use, this variable | ||
2909 | * specifies the name of the preferred renderer. If the preferred renderer | ||
2910 | * can't be initialized, creating a renderer will fail. | ||
2911 | * | ||
2912 | * This variable is case insensitive and can be set to the following values: | ||
2913 | * | ||
2914 | * - "direct3d" | ||
2915 | * - "direct3d11" | ||
2916 | * - "direct3d12" | ||
2917 | * - "opengl" | ||
2918 | * - "opengles2" | ||
2919 | * - "opengles" | ||
2920 | * - "metal" | ||
2921 | * - "vulkan" | ||
2922 | * - "gpu" | ||
2923 | * - "software" | ||
2924 | * | ||
2925 | * This hint accepts a comma-separated list of driver names, and each will be | ||
2926 | * tried in the order listed when creating a renderer until one succeeds or | ||
2927 | * all of them fail. | ||
2928 | * | ||
2929 | * The default varies by platform, but it's the first one in the list that is | ||
2930 | * available on the current platform. | ||
2931 | * | ||
2932 | * This hint should be set before creating a renderer. | ||
2933 | * | ||
2934 | * \since This hint is available since SDL 3.2.0. | ||
2935 | */ | ||
2936 | #define SDL_HINT_RENDER_DRIVER "SDL_RENDER_DRIVER" | ||
2937 | |||
2938 | /** | ||
2939 | * A variable controlling how the 2D render API renders lines. | ||
2940 | * | ||
2941 | * The variable can be set to the following values: | ||
2942 | * | ||
2943 | * - "0": Use the default line drawing method (Bresenham's line algorithm) | ||
2944 | * - "1": Use the driver point API using Bresenham's line algorithm (correct, | ||
2945 | * draws many points) | ||
2946 | * - "2": Use the driver line API (occasionally misses line endpoints based on | ||
2947 | * hardware driver quirks | ||
2948 | * - "3": Use the driver geometry API (correct, draws thicker diagonal lines) | ||
2949 | * | ||
2950 | * This hint should be set before creating a renderer. | ||
2951 | * | ||
2952 | * \since This hint is available since SDL 3.2.0. | ||
2953 | */ | ||
2954 | #define SDL_HINT_RENDER_LINE_METHOD "SDL_RENDER_LINE_METHOD" | ||
2955 | |||
2956 | /** | ||
2957 | * A variable controlling whether the Metal render driver select low power | ||
2958 | * device over default one. | ||
2959 | * | ||
2960 | * The variable can be set to the following values: | ||
2961 | * | ||
2962 | * - "0": Use the preferred OS device. (default) | ||
2963 | * - "1": Select a low power device. | ||
2964 | * | ||
2965 | * This hint should be set before creating a renderer. | ||
2966 | * | ||
2967 | * \since This hint is available since SDL 3.2.0. | ||
2968 | */ | ||
2969 | #define SDL_HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICE "SDL_RENDER_METAL_PREFER_LOW_POWER_DEVICE" | ||
2970 | |||
2971 | /** | ||
2972 | * A variable controlling whether updates to the SDL screen surface should be | ||
2973 | * synchronized with the vertical refresh, to avoid tearing. | ||
2974 | * | ||
2975 | * This hint overrides the application preference when creating a renderer. | ||
2976 | * | ||
2977 | * The variable can be set to the following values: | ||
2978 | * | ||
2979 | * - "0": Disable vsync. (default) | ||
2980 | * - "1": Enable vsync. | ||
2981 | * | ||
2982 | * This hint should be set before creating a renderer. | ||
2983 | * | ||
2984 | * \since This hint is available since SDL 3.2.0. | ||
2985 | */ | ||
2986 | #define SDL_HINT_RENDER_VSYNC "SDL_RENDER_VSYNC" | ||
2987 | |||
2988 | /** | ||
2989 | * A variable to control whether the return key on the soft keyboard should | ||
2990 | * hide the soft keyboard on Android and iOS. | ||
2991 | * | ||
2992 | * This hint sets the default value of SDL_PROP_TEXTINPUT_MULTILINE_BOOLEAN. | ||
2993 | * | ||
2994 | * The variable can be set to the following values: | ||
2995 | * | ||
2996 | * - "0": The return key will be handled as a key event. (default) | ||
2997 | * - "1": The return key will hide the keyboard. | ||
2998 | * | ||
2999 | * This hint can be set anytime. | ||
3000 | * | ||
3001 | * \since This hint is available since SDL 3.2.0. | ||
3002 | */ | ||
3003 | #define SDL_HINT_RETURN_KEY_HIDES_IME "SDL_RETURN_KEY_HIDES_IME" | ||
3004 | |||
3005 | /** | ||
3006 | * A variable containing a list of ROG gamepad capable mice. | ||
3007 | * | ||
3008 | * The format of the string is a comma separated list of USB VID/PID pairs in | ||
3009 | * hexadecimal form, e.g. | ||
3010 | * | ||
3011 | * `0xAAAA/0xBBBB,0xCCCC/0xDDDD` | ||
3012 | * | ||
3013 | * The variable can also take the form of "@file", in which case the named | ||
3014 | * file will be loaded and interpreted as the value of the variable. | ||
3015 | * | ||
3016 | * This hint should be set before SDL is initialized. | ||
3017 | * | ||
3018 | * \since This hint is available since SDL 3.2.0. | ||
3019 | * | ||
3020 | * \sa SDL_HINT_ROG_GAMEPAD_MICE_EXCLUDED | ||
3021 | */ | ||
3022 | #define SDL_HINT_ROG_GAMEPAD_MICE "SDL_ROG_GAMEPAD_MICE" | ||
3023 | |||
3024 | /** | ||
3025 | * A variable containing a list of devices that are not ROG gamepad capable | ||
3026 | * mice. | ||
3027 | * | ||
3028 | * This will override SDL_HINT_ROG_GAMEPAD_MICE and the built in device list. | ||
3029 | * | ||
3030 | * The format of the string is a comma separated list of USB VID/PID pairs in | ||
3031 | * hexadecimal form, e.g. | ||
3032 | * | ||
3033 | * `0xAAAA/0xBBBB,0xCCCC/0xDDDD` | ||
3034 | * | ||
3035 | * The variable can also take the form of "@file", in which case the named | ||
3036 | * file will be loaded and interpreted as the value of the variable. | ||
3037 | * | ||
3038 | * This hint should be set before SDL is initialized. | ||
3039 | * | ||
3040 | * \since This hint is available since SDL 3.2.0. | ||
3041 | */ | ||
3042 | #define SDL_HINT_ROG_GAMEPAD_MICE_EXCLUDED "SDL_ROG_GAMEPAD_MICE_EXCLUDED" | ||
3043 | |||
3044 | /** | ||
3045 | * A variable controlling which Dispmanx layer to use on a Raspberry PI. | ||
3046 | * | ||
3047 | * Also known as Z-order. The variable can take a negative or positive value. | ||
3048 | * The default is 10000. | ||
3049 | * | ||
3050 | * This hint should be set before SDL is initialized. | ||
3051 | * | ||
3052 | * \since This hint is available since SDL 3.2.0. | ||
3053 | */ | ||
3054 | #define SDL_HINT_RPI_VIDEO_LAYER "SDL_RPI_VIDEO_LAYER" | ||
3055 | |||
3056 | /** | ||
3057 | * Specify an "activity name" for screensaver inhibition. | ||
3058 | * | ||
3059 | * Some platforms, notably Linux desktops, list the applications which are | ||
3060 | * inhibiting the screensaver or other power-saving features. | ||
3061 | * | ||
3062 | * This hint lets you specify the "activity name" sent to the OS when | ||
3063 | * SDL_DisableScreenSaver() is used (or the screensaver is automatically | ||
3064 | * disabled). The contents of this hint are used when the screensaver is | ||
3065 | * disabled. You should use a string that describes what your program is doing | ||
3066 | * (and, therefore, why the screensaver is disabled). For example, "Playing a | ||
3067 | * game" or "Watching a video". | ||
3068 | * | ||
3069 | * Setting this to "" or leaving it unset will have SDL use a reasonable | ||
3070 | * default: "Playing a game" or something similar. | ||
3071 | * | ||
3072 | * This hint should be set before calling SDL_DisableScreenSaver() | ||
3073 | * | ||
3074 | * \since This hint is available since SDL 3.2.0. | ||
3075 | */ | ||
3076 | #define SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME "SDL_SCREENSAVER_INHIBIT_ACTIVITY_NAME" | ||
3077 | |||
3078 | /** | ||
3079 | * A variable controlling whether SDL calls dbus_shutdown() on quit. | ||
3080 | * | ||
3081 | * This is useful as a debug tool to validate memory leaks, but shouldn't ever | ||
3082 | * be set in production applications, as other libraries used by the | ||
3083 | * application might use dbus under the hood and this can cause crashes if | ||
3084 | * they continue after SDL_Quit(). | ||
3085 | * | ||
3086 | * The variable can be set to the following values: | ||
3087 | * | ||
3088 | * - "0": SDL will not call dbus_shutdown() on quit. (default) | ||
3089 | * - "1": SDL will call dbus_shutdown() on quit. | ||
3090 | * | ||
3091 | * This hint can be set anytime. | ||
3092 | * | ||
3093 | * \since This hint is available since SDL 3.2.0. | ||
3094 | */ | ||
3095 | #define SDL_HINT_SHUTDOWN_DBUS_ON_QUIT "SDL_SHUTDOWN_DBUS_ON_QUIT" | ||
3096 | |||
3097 | /** | ||
3098 | * A variable that specifies a backend to use for title storage. | ||
3099 | * | ||
3100 | * By default, SDL will try all available storage backends in a reasonable | ||
3101 | * order until it finds one that can work, but this hint allows the app or | ||
3102 | * user to force a specific target, such as "pc" if, say, you are on Steam but | ||
3103 | * want to avoid SteamRemoteStorage for title data. | ||
3104 | * | ||
3105 | * This hint should be set before SDL is initialized. | ||
3106 | * | ||
3107 | * \since This hint is available since SDL 3.2.0. | ||
3108 | */ | ||
3109 | #define SDL_HINT_STORAGE_TITLE_DRIVER "SDL_STORAGE_TITLE_DRIVER" | ||
3110 | |||
3111 | /** | ||
3112 | * A variable that specifies a backend to use for user storage. | ||
3113 | * | ||
3114 | * By default, SDL will try all available storage backends in a reasonable | ||
3115 | * order until it finds one that can work, but this hint allows the app or | ||
3116 | * user to force a specific target, such as "pc" if, say, you are on Steam but | ||
3117 | * want to avoid SteamRemoteStorage for user data. | ||
3118 | * | ||
3119 | * This hint should be set before SDL is initialized. | ||
3120 | * | ||
3121 | * \since This hint is available since SDL 3.2.0. | ||
3122 | */ | ||
3123 | #define SDL_HINT_STORAGE_USER_DRIVER "SDL_STORAGE_USER_DRIVER" | ||
3124 | |||
3125 | /** | ||
3126 | * Specifies whether SDL_THREAD_PRIORITY_TIME_CRITICAL should be treated as | ||
3127 | * realtime. | ||
3128 | * | ||
3129 | * On some platforms, like Linux, a realtime priority thread may be subject to | ||
3130 | * restrictions that require special handling by the application. This hint | ||
3131 | * exists to let SDL know that the app is prepared to handle said | ||
3132 | * restrictions. | ||
3133 | * | ||
3134 | * On Linux, SDL will apply the following configuration to any thread that | ||
3135 | * becomes realtime: | ||
3136 | * | ||
3137 | * - The SCHED_RESET_ON_FORK bit will be set on the scheduling policy, | ||
3138 | * - An RLIMIT_RTTIME budget will be configured to the rtkit specified limit. | ||
3139 | * - Exceeding this limit will result in the kernel sending SIGKILL to the | ||
3140 | * app, refer to the man pages for more information. | ||
3141 | * | ||
3142 | * The variable can be set to the following values: | ||
3143 | * | ||
3144 | * - "0": default platform specific behaviour | ||
3145 | * - "1": Force SDL_THREAD_PRIORITY_TIME_CRITICAL to a realtime scheduling | ||
3146 | * policy | ||
3147 | * | ||
3148 | * This hint should be set before calling SDL_SetCurrentThreadPriority() | ||
3149 | * | ||
3150 | * \since This hint is available since SDL 3.2.0. | ||
3151 | */ | ||
3152 | #define SDL_HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL "SDL_THREAD_FORCE_REALTIME_TIME_CRITICAL" | ||
3153 | |||
3154 | /** | ||
3155 | * A string specifying additional information to use with | ||
3156 | * SDL_SetCurrentThreadPriority. | ||
3157 | * | ||
3158 | * By default SDL_SetCurrentThreadPriority will make appropriate system | ||
3159 | * changes in order to apply a thread priority. For example on systems using | ||
3160 | * pthreads the scheduler policy is changed automatically to a policy that | ||
3161 | * works well with a given priority. Code which has specific requirements can | ||
3162 | * override SDL's default behavior with this hint. | ||
3163 | * | ||
3164 | * pthread hint values are "current", "other", "fifo" and "rr". Currently no | ||
3165 | * other platform hint values are defined but may be in the future. | ||
3166 | * | ||
3167 | * On Linux, the kernel may send SIGKILL to realtime tasks which exceed the | ||
3168 | * distro configured execution budget for rtkit. This budget can be queried | ||
3169 | * through RLIMIT_RTTIME after calling SDL_SetCurrentThreadPriority(). | ||
3170 | * | ||
3171 | * This hint should be set before calling SDL_SetCurrentThreadPriority() | ||
3172 | * | ||
3173 | * \since This hint is available since SDL 3.2.0. | ||
3174 | */ | ||
3175 | #define SDL_HINT_THREAD_PRIORITY_POLICY "SDL_THREAD_PRIORITY_POLICY" | ||
3176 | |||
3177 | /** | ||
3178 | * A variable that controls the timer resolution, in milliseconds. | ||
3179 | * | ||
3180 | * The higher resolution the timer, the more frequently the CPU services timer | ||
3181 | * interrupts, and the more precise delays are, but this takes up power and | ||
3182 | * CPU time. This hint is only used on Windows. | ||
3183 | * | ||
3184 | * See this blog post for more information: | ||
3185 | * http://randomascii.wordpress.com/2013/07/08/windows-timer-resolution-megawatts-wasted/ | ||
3186 | * | ||
3187 | * The default value is "1". | ||
3188 | * | ||
3189 | * If this variable is set to "0", the system timer resolution is not set. | ||
3190 | * | ||
3191 | * This hint can be set anytime. | ||
3192 | * | ||
3193 | * \since This hint is available since SDL 3.2.0. | ||
3194 | */ | ||
3195 | #define SDL_HINT_TIMER_RESOLUTION "SDL_TIMER_RESOLUTION" | ||
3196 | |||
3197 | /** | ||
3198 | * A variable controlling whether touch events should generate synthetic mouse | ||
3199 | * events. | ||
3200 | * | ||
3201 | * The variable can be set to the following values: | ||
3202 | * | ||
3203 | * - "0": Touch events will not generate mouse events. | ||
3204 | * - "1": Touch events will generate mouse events. (default) | ||
3205 | * | ||
3206 | * This hint can be set anytime. | ||
3207 | * | ||
3208 | * \since This hint is available since SDL 3.2.0. | ||
3209 | */ | ||
3210 | #define SDL_HINT_TOUCH_MOUSE_EVENTS "SDL_TOUCH_MOUSE_EVENTS" | ||
3211 | |||
3212 | /** | ||
3213 | * A variable controlling whether trackpads should be treated as touch | ||
3214 | * devices. | ||
3215 | * | ||
3216 | * On macOS (and possibly other platforms in the future), SDL will report | ||
3217 | * touches on a trackpad as mouse input, which is generally what users expect | ||
3218 | * from this device; however, these are often actually full multitouch-capable | ||
3219 | * touch devices, so it might be preferable to some apps to treat them as | ||
3220 | * such. | ||
3221 | * | ||
3222 | * The variable can be set to the following values: | ||
3223 | * | ||
3224 | * - "0": Trackpad will send mouse events. (default) | ||
3225 | * - "1": Trackpad will send touch events. | ||
3226 | * | ||
3227 | * This hint should be set before SDL is initialized. | ||
3228 | * | ||
3229 | * \since This hint is available since SDL 3.2.0. | ||
3230 | */ | ||
3231 | #define SDL_HINT_TRACKPAD_IS_TOUCH_ONLY "SDL_TRACKPAD_IS_TOUCH_ONLY" | ||
3232 | |||
3233 | /** | ||
3234 | * A variable controlling whether the Android / tvOS remotes should be listed | ||
3235 | * as joystick devices, instead of sending keyboard events. | ||
3236 | * | ||
3237 | * The variable can be set to the following values: | ||
3238 | * | ||
3239 | * - "0": Remotes send enter/escape/arrow key events. | ||
3240 | * - "1": Remotes are available as 2 axis, 2 button joysticks. (default) | ||
3241 | * | ||
3242 | * This hint should be set before SDL is initialized. | ||
3243 | * | ||
3244 | * \since This hint is available since SDL 3.2.0. | ||
3245 | */ | ||
3246 | #define SDL_HINT_TV_REMOTE_AS_JOYSTICK "SDL_TV_REMOTE_AS_JOYSTICK" | ||
3247 | |||
3248 | /** | ||
3249 | * A variable controlling whether the screensaver is enabled. | ||
3250 | * | ||
3251 | * The variable can be set to the following values: | ||
3252 | * | ||
3253 | * - "0": Disable screensaver. (default) | ||
3254 | * - "1": Enable screensaver. | ||
3255 | * | ||
3256 | * This hint should be set before SDL is initialized. | ||
3257 | * | ||
3258 | * \since This hint is available since SDL 3.2.0. | ||
3259 | */ | ||
3260 | #define SDL_HINT_VIDEO_ALLOW_SCREENSAVER "SDL_VIDEO_ALLOW_SCREENSAVER" | ||
3261 | |||
3262 | /** | ||
3263 | * A comma separated list containing the names of the displays that SDL should | ||
3264 | * sort to the front of the display list. | ||
3265 | * | ||
3266 | * When this hint is set, displays with matching name strings will be | ||
3267 | * prioritized in the list of displays, as exposed by calling | ||
3268 | * SDL_GetDisplays(), with the first listed becoming the primary display. The | ||
3269 | * naming convention can vary depending on the environment, but it is usually | ||
3270 | * a connector name (e.g. 'DP-1', 'DP-2', 'HDMI-A-1',etc...). | ||
3271 | * | ||
3272 | * On Wayland and X11 desktops, the connector names associated with displays | ||
3273 | * can typically be found by using the `xrandr` utility. | ||
3274 | * | ||
3275 | * This hint is currently supported on the following drivers: | ||
3276 | * | ||
3277 | * - KMSDRM (kmsdrm) | ||
3278 | * - Wayland (wayland) | ||
3279 | * - X11 (x11) | ||
3280 | * | ||
3281 | * This hint should be set before SDL is initialized. | ||
3282 | * | ||
3283 | * \since This hint is available since SDL 3.2.0. | ||
3284 | */ | ||
3285 | #define SDL_HINT_VIDEO_DISPLAY_PRIORITY "SDL_VIDEO_DISPLAY_PRIORITY" | ||
3286 | |||
3287 | /** | ||
3288 | * Tell the video driver that we only want a double buffer. | ||
3289 | * | ||
3290 | * By default, most lowlevel 2D APIs will use a triple buffer scheme that | ||
3291 | * wastes no CPU time on waiting for vsync after issuing a flip, but | ||
3292 | * introduces a frame of latency. On the other hand, using a double buffer | ||
3293 | * scheme instead is recommended for cases where low latency is an important | ||
3294 | * factor because we save a whole frame of latency. | ||
3295 | * | ||
3296 | * We do so by waiting for vsync immediately after issuing a flip, usually | ||
3297 | * just after eglSwapBuffers call in the backend's *_SwapWindow function. | ||
3298 | * | ||
3299 | * This hint is currently supported on the following drivers: | ||
3300 | * | ||
3301 | * - Raspberry Pi (raspberrypi) | ||
3302 | * - Wayland (wayland) | ||
3303 | * | ||
3304 | * This hint should be set before SDL is initialized. | ||
3305 | * | ||
3306 | * \since This hint is available since SDL 3.2.0. | ||
3307 | */ | ||
3308 | #define SDL_HINT_VIDEO_DOUBLE_BUFFER "SDL_VIDEO_DOUBLE_BUFFER" | ||
3309 | |||
3310 | /** | ||
3311 | * A variable that specifies a video backend to use. | ||
3312 | * | ||
3313 | * By default, SDL will try all available video backends in a reasonable order | ||
3314 | * until it finds one that can work, but this hint allows the app or user to | ||
3315 | * force a specific target, such as "x11" if, say, you are on Wayland but want | ||
3316 | * to try talking to the X server instead. | ||
3317 | * | ||
3318 | * This hint accepts a comma-separated list of driver names, and each will be | ||
3319 | * tried in the order listed during init, until one succeeds or all of them | ||
3320 | * fail. | ||
3321 | * | ||
3322 | * This hint should be set before SDL is initialized. | ||
3323 | * | ||
3324 | * \since This hint is available since SDL 3.2.0. | ||
3325 | */ | ||
3326 | #define SDL_HINT_VIDEO_DRIVER "SDL_VIDEO_DRIVER" | ||
3327 | |||
3328 | /** | ||
3329 | * A variable controlling whether the dummy video driver saves output frames. | ||
3330 | * | ||
3331 | * - "0": Video frames are not saved to disk. (default) | ||
3332 | * - "1": Video frames are saved to files in the format "SDL_windowX-Y.bmp", | ||
3333 | * where X is the window ID, and Y is the frame number. | ||
3334 | * | ||
3335 | * This hint can be set anytime. | ||
3336 | * | ||
3337 | * \since This hint is available since SDL 3.2.0. | ||
3338 | */ | ||
3339 | #define SDL_HINT_VIDEO_DUMMY_SAVE_FRAMES "SDL_VIDEO_DUMMY_SAVE_FRAMES" | ||
3340 | |||
3341 | /** | ||
3342 | * If eglGetPlatformDisplay fails, fall back to calling eglGetDisplay. | ||
3343 | * | ||
3344 | * The variable can be set to one of the following values: | ||
3345 | * | ||
3346 | * - "0": Do not fall back to eglGetDisplay. | ||
3347 | * - "1": Fall back to eglGetDisplay if eglGetPlatformDisplay fails. (default) | ||
3348 | * | ||
3349 | * This hint should be set before SDL is initialized. | ||
3350 | * | ||
3351 | * \since This hint is available since SDL 3.2.0. | ||
3352 | */ | ||
3353 | #define SDL_HINT_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK "SDL_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK" | ||
3354 | |||
3355 | /** | ||
3356 | * A variable controlling whether the OpenGL context should be created with | ||
3357 | * EGL. | ||
3358 | * | ||
3359 | * The variable can be set to the following values: | ||
3360 | * | ||
3361 | * - "0": Use platform-specific GL context creation API (GLX, WGL, CGL, etc). | ||
3362 | * (default) | ||
3363 | * - "1": Use EGL | ||
3364 | * | ||
3365 | * This hint should be set before SDL is initialized. | ||
3366 | * | ||
3367 | * \since This hint is available since SDL 3.2.0. | ||
3368 | */ | ||
3369 | #define SDL_HINT_VIDEO_FORCE_EGL "SDL_VIDEO_FORCE_EGL" | ||
3370 | |||
3371 | /** | ||
3372 | * A variable that specifies the policy for fullscreen Spaces on macOS. | ||
3373 | * | ||
3374 | * The variable can be set to the following values: | ||
3375 | * | ||
3376 | * - "0": Disable Spaces support (FULLSCREEN_DESKTOP won't use them and | ||
3377 | * SDL_WINDOW_RESIZABLE windows won't offer the "fullscreen" button on their | ||
3378 | * titlebars). | ||
3379 | * - "1": Enable Spaces support (FULLSCREEN_DESKTOP will use them and | ||
3380 | * SDL_WINDOW_RESIZABLE windows will offer the "fullscreen" button on their | ||
3381 | * titlebars). (default) | ||
3382 | * | ||
3383 | * This hint should be set before creating a window. | ||
3384 | * | ||
3385 | * \since This hint is available since SDL 3.2.0. | ||
3386 | */ | ||
3387 | #define SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES "SDL_VIDEO_MAC_FULLSCREEN_SPACES" | ||
3388 | |||
3389 | /** | ||
3390 | * A variable that specifies the menu visibility when a window is fullscreen | ||
3391 | * in Spaces on macOS. | ||
3392 | * | ||
3393 | * The variable can be set to the following values: | ||
3394 | * | ||
3395 | * - "0": The menu will be hidden when the window is in a fullscreen space, | ||
3396 | * and not accessible by moving the mouse to the top of the screen. | ||
3397 | * - "1": The menu will be accessible when the window is in a fullscreen | ||
3398 | * space. | ||
3399 | * - "auto": The menu will be hidden if fullscreen mode was toggled on | ||
3400 | * programmatically via `SDL_SetWindowFullscreen()`, and accessible if | ||
3401 | * fullscreen was entered via the "fullscreen" button on the window title | ||
3402 | * bar. (default) | ||
3403 | * | ||
3404 | * This hint can be set anytime. | ||
3405 | * | ||
3406 | * \since This hint is available since SDL 3.2.0. | ||
3407 | */ | ||
3408 | #define SDL_HINT_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY "SDL_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY" | ||
3409 | |||
3410 | /** | ||
3411 | * A variable controlling whether fullscreen windows are minimized when they | ||
3412 | * lose focus. | ||
3413 | * | ||
3414 | * The variable can be set to the following values: | ||
3415 | * | ||
3416 | * - "0": Fullscreen windows will not be minimized when they lose focus. | ||
3417 | * (default) | ||
3418 | * - "1": Fullscreen windows are minimized when they lose focus. | ||
3419 | * | ||
3420 | * This hint can be set anytime. | ||
3421 | * | ||
3422 | * \since This hint is available since SDL 3.2.0. | ||
3423 | */ | ||
3424 | #define SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS" | ||
3425 | |||
3426 | /** | ||
3427 | * A variable controlling whether the offscreen video driver saves output | ||
3428 | * frames. | ||
3429 | * | ||
3430 | * This only saves frames that are generated using software rendering, not | ||
3431 | * accelerated OpenGL rendering. | ||
3432 | * | ||
3433 | * - "0": Video frames are not saved to disk. (default) | ||
3434 | * - "1": Video frames are saved to files in the format "SDL_windowX-Y.bmp", | ||
3435 | * where X is the window ID, and Y is the frame number. | ||
3436 | * | ||
3437 | * This hint can be set anytime. | ||
3438 | * | ||
3439 | * \since This hint is available since SDL 3.2.0. | ||
3440 | */ | ||
3441 | #define SDL_HINT_VIDEO_OFFSCREEN_SAVE_FRAMES "SDL_VIDEO_OFFSCREEN_SAVE_FRAMES" | ||
3442 | |||
3443 | /** | ||
3444 | * A variable controlling whether all window operations will block until | ||
3445 | * complete. | ||
3446 | * | ||
3447 | * Window systems that run asynchronously may not have the results of window | ||
3448 | * operations that resize or move the window applied immediately upon the | ||
3449 | * return of the requesting function. Setting this hint will cause such | ||
3450 | * operations to block after every call until the pending operation has | ||
3451 | * completed. Setting this to '1' is the equivalent of calling | ||
3452 | * SDL_SyncWindow() after every function call. | ||
3453 | * | ||
3454 | * Be aware that amount of time spent blocking while waiting for window | ||
3455 | * operations to complete can be quite lengthy, as animations may have to | ||
3456 | * complete, which can take upwards of multiple seconds in some cases. | ||
3457 | * | ||
3458 | * The variable can be set to the following values: | ||
3459 | * | ||
3460 | * - "0": Window operations are non-blocking. (default) | ||
3461 | * - "1": Window operations will block until completed. | ||
3462 | * | ||
3463 | * This hint can be set anytime. | ||
3464 | * | ||
3465 | * \since This hint is available since SDL 3.2.0. | ||
3466 | */ | ||
3467 | #define SDL_HINT_VIDEO_SYNC_WINDOW_OPERATIONS "SDL_VIDEO_SYNC_WINDOW_OPERATIONS" | ||
3468 | |||
3469 | /** | ||
3470 | * A variable controlling whether the libdecor Wayland backend is allowed to | ||
3471 | * be used. | ||
3472 | * | ||
3473 | * libdecor is used over xdg-shell when xdg-decoration protocol is | ||
3474 | * unavailable. | ||
3475 | * | ||
3476 | * The variable can be set to the following values: | ||
3477 | * | ||
3478 | * - "0": libdecor use is disabled. | ||
3479 | * - "1": libdecor use is enabled. (default) | ||
3480 | * | ||
3481 | * This hint should be set before SDL is initialized. | ||
3482 | * | ||
3483 | * \since This hint is available since SDL 3.2.0. | ||
3484 | */ | ||
3485 | #define SDL_HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR "SDL_VIDEO_WAYLAND_ALLOW_LIBDECOR" | ||
3486 | |||
3487 | /** | ||
3488 | * A variable controlling whether video mode emulation is enabled under | ||
3489 | * Wayland. | ||
3490 | * | ||
3491 | * When this hint is set, a standard set of emulated CVT video modes will be | ||
3492 | * exposed for use by the application. If it is disabled, the only modes | ||
3493 | * exposed will be the logical desktop size and, in the case of a scaled | ||
3494 | * desktop, the native display resolution. | ||
3495 | * | ||
3496 | * The variable can be set to the following values: | ||
3497 | * | ||
3498 | * - "0": Video mode emulation is disabled. | ||
3499 | * - "1": Video mode emulation is enabled. (default) | ||
3500 | * | ||
3501 | * This hint should be set before SDL is initialized. | ||
3502 | * | ||
3503 | * \since This hint is available since SDL 3.2.0. | ||
3504 | */ | ||
3505 | #define SDL_HINT_VIDEO_WAYLAND_MODE_EMULATION "SDL_VIDEO_WAYLAND_MODE_EMULATION" | ||
3506 | |||
3507 | /** | ||
3508 | * A variable controlling how modes with a non-native aspect ratio are | ||
3509 | * displayed under Wayland. | ||
3510 | * | ||
3511 | * When this hint is set, the requested scaling will be used when displaying | ||
3512 | * fullscreen video modes that don't match the display's native aspect ratio. | ||
3513 | * This is contingent on compositor viewport support. | ||
3514 | * | ||
3515 | * The variable can be set to the following values: | ||
3516 | * | ||
3517 | * - "aspect" - Video modes will be displayed scaled, in their proper aspect | ||
3518 | * ratio, with black bars. | ||
3519 | * - "stretch" - Video modes will be scaled to fill the entire display. | ||
3520 | * (default) | ||
3521 | * - "none" - Video modes will be displayed as 1:1 with no scaling. | ||
3522 | * | ||
3523 | * This hint should be set before creating a window. | ||
3524 | * | ||
3525 | * \since This hint is available since SDL 3.2.0. | ||
3526 | */ | ||
3527 | #define SDL_HINT_VIDEO_WAYLAND_MODE_SCALING "SDL_VIDEO_WAYLAND_MODE_SCALING" | ||
3528 | |||
3529 | /** | ||
3530 | * A variable controlling whether the libdecor Wayland backend is preferred | ||
3531 | * over native decorations. | ||
3532 | * | ||
3533 | * When this hint is set, libdecor will be used to provide window decorations, | ||
3534 | * even if xdg-decoration is available. (Note that, by default, libdecor will | ||
3535 | * use xdg-decoration itself if available). | ||
3536 | * | ||
3537 | * The variable can be set to the following values: | ||
3538 | * | ||
3539 | * - "0": libdecor is enabled only if server-side decorations are unavailable. | ||
3540 | * (default) | ||
3541 | * - "1": libdecor is always enabled if available. | ||
3542 | * | ||
3543 | * This hint should be set before SDL is initialized. | ||
3544 | * | ||
3545 | * \since This hint is available since SDL 3.2.0. | ||
3546 | */ | ||
3547 | #define SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR "SDL_VIDEO_WAYLAND_PREFER_LIBDECOR" | ||
3548 | |||
3549 | /** | ||
3550 | * A variable forcing non-DPI-aware Wayland windows to output at 1:1 scaling. | ||
3551 | * | ||
3552 | * This must be set before initializing the video subsystem. | ||
3553 | * | ||
3554 | * When this hint is set, Wayland windows that are not flagged as being | ||
3555 | * DPI-aware will be output with scaling designed to force 1:1 pixel mapping. | ||
3556 | * | ||
3557 | * This is intended to allow legacy applications to be displayed without | ||
3558 | * desktop scaling being applied, and has issues with certain display | ||
3559 | * configurations, as this forces the window to behave in a way that Wayland | ||
3560 | * desktops were not designed to accommodate: | ||
3561 | * | ||
3562 | * - Rounding errors can result with odd window sizes and/or desktop scales, | ||
3563 | * which can cause the window contents to appear slightly blurry. | ||
3564 | * - Positioning the window may be imprecise due to unit conversions and | ||
3565 | * rounding. | ||
3566 | * - The window may be unusably small on scaled desktops. | ||
3567 | * - The window may jump in size when moving between displays of different | ||
3568 | * scale factors. | ||
3569 | * - Displays may appear to overlap when using a multi-monitor setup with | ||
3570 | * scaling enabled. | ||
3571 | * - Possible loss of cursor precision due to the logical size of the window | ||
3572 | * being reduced. | ||
3573 | * | ||
3574 | * New applications should be designed with proper DPI awareness handling | ||
3575 | * instead of enabling this. | ||
3576 | * | ||
3577 | * The variable can be set to the following values: | ||
3578 | * | ||
3579 | * - "0": Windows will be scaled normally. | ||
3580 | * - "1": Windows will be forced to scale to achieve 1:1 output. | ||
3581 | * | ||
3582 | * This hint should be set before creating a window. | ||
3583 | * | ||
3584 | * \since This hint is available since SDL 3.2.0. | ||
3585 | */ | ||
3586 | #define SDL_HINT_VIDEO_WAYLAND_SCALE_TO_DISPLAY "SDL_VIDEO_WAYLAND_SCALE_TO_DISPLAY" | ||
3587 | |||
3588 | /** | ||
3589 | * A variable specifying which shader compiler to preload when using the | ||
3590 | * Chrome ANGLE binaries. | ||
3591 | * | ||
3592 | * SDL has EGL and OpenGL ES2 support on Windows via the ANGLE project. It can | ||
3593 | * use two different sets of binaries, those compiled by the user from source | ||
3594 | * or those provided by the Chrome browser. In the later case, these binaries | ||
3595 | * require that SDL loads a DLL providing the shader compiler. | ||
3596 | * | ||
3597 | * The variable can be set to the following values: | ||
3598 | * | ||
3599 | * - "d3dcompiler_46.dll" - best for Vista or later. (default) | ||
3600 | * - "d3dcompiler_43.dll" - for XP support. | ||
3601 | * - "none" - do not load any library, useful if you compiled ANGLE from | ||
3602 | * source and included the compiler in your binaries. | ||
3603 | * | ||
3604 | * This hint should be set before SDL is initialized. | ||
3605 | * | ||
3606 | * \since This hint is available since SDL 3.2.0. | ||
3607 | */ | ||
3608 | #define SDL_HINT_VIDEO_WIN_D3DCOMPILER "SDL_VIDEO_WIN_D3DCOMPILER" | ||
3609 | |||
3610 | /** | ||
3611 | * A variable controlling whether SDL should call XSelectInput() to enable | ||
3612 | * input events on X11 windows wrapped by SDL windows. | ||
3613 | * | ||
3614 | * The variable can be set to the following values: | ||
3615 | * | ||
3616 | * - "0": Don't call XSelectInput(), assuming the native window code has done | ||
3617 | * it already. | ||
3618 | * - "1": Call XSelectInput() to enable input events. (default) | ||
3619 | * | ||
3620 | * This hint should be set before creating a window. | ||
3621 | * | ||
3622 | * \since This hint is available since SDL 3.2.10. | ||
3623 | */ | ||
3624 | #define SDL_HINT_VIDEO_X11_EXTERNAL_WINDOW_INPUT "SDL_VIDEO_X11_EXTERNAL_WINDOW_INPUT" | ||
3625 | |||
3626 | /** | ||
3627 | * A variable controlling whether the X11 _NET_WM_BYPASS_COMPOSITOR hint | ||
3628 | * should be used. | ||
3629 | * | ||
3630 | * The variable can be set to the following values: | ||
3631 | * | ||
3632 | * - "0": Disable _NET_WM_BYPASS_COMPOSITOR. | ||
3633 | * - "1": Enable _NET_WM_BYPASS_COMPOSITOR. (default) | ||
3634 | * | ||
3635 | * This hint should be set before creating a window. | ||
3636 | * | ||
3637 | * \since This hint is available since SDL 3.2.0. | ||
3638 | */ | ||
3639 | #define SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR" | ||
3640 | |||
3641 | /** | ||
3642 | * A variable controlling whether the X11 _NET_WM_PING protocol should be | ||
3643 | * supported. | ||
3644 | * | ||
3645 | * By default SDL will use _NET_WM_PING, but for applications that know they | ||
3646 | * will not always be able to respond to ping requests in a timely manner they | ||
3647 | * can turn it off to avoid the window manager thinking the app is hung. | ||
3648 | * | ||
3649 | * The variable can be set to the following values: | ||
3650 | * | ||
3651 | * - "0": Disable _NET_WM_PING. | ||
3652 | * - "1": Enable _NET_WM_PING. (default) | ||
3653 | * | ||
3654 | * This hint should be set before creating a window. | ||
3655 | * | ||
3656 | * \since This hint is available since SDL 3.2.0. | ||
3657 | */ | ||
3658 | #define SDL_HINT_VIDEO_X11_NET_WM_PING "SDL_VIDEO_X11_NET_WM_PING" | ||
3659 | |||
3660 | /** | ||
3661 | * A variable controlling whether SDL uses DirectColor visuals. | ||
3662 | * | ||
3663 | * The variable can be set to the following values: | ||
3664 | * | ||
3665 | * - "0": Disable DirectColor visuals. | ||
3666 | * - "1": Enable DirectColor visuals. (default) | ||
3667 | * | ||
3668 | * This hint should be set before initializing the video subsystem. | ||
3669 | * | ||
3670 | * \since This hint is available since SDL 3.2.0. | ||
3671 | */ | ||
3672 | #define SDL_HINT_VIDEO_X11_NODIRECTCOLOR "SDL_VIDEO_X11_NODIRECTCOLOR" | ||
3673 | |||
3674 | /** | ||
3675 | * A variable forcing the content scaling factor for X11 displays. | ||
3676 | * | ||
3677 | * The variable can be set to a floating point value in the range 1.0-10.0f | ||
3678 | * | ||
3679 | * This hint should be set before SDL is initialized. | ||
3680 | * | ||
3681 | * \since This hint is available since SDL 3.2.0. | ||
3682 | */ | ||
3683 | #define SDL_HINT_VIDEO_X11_SCALING_FACTOR "SDL_VIDEO_X11_SCALING_FACTOR" | ||
3684 | |||
3685 | /** | ||
3686 | * A variable forcing the visual ID used for X11 display modes. | ||
3687 | * | ||
3688 | * This hint should be set before initializing the video subsystem. | ||
3689 | * | ||
3690 | * \since This hint is available since SDL 3.2.0. | ||
3691 | */ | ||
3692 | #define SDL_HINT_VIDEO_X11_VISUALID "SDL_VIDEO_X11_VISUALID" | ||
3693 | |||
3694 | /** | ||
3695 | * A variable forcing the visual ID chosen for new X11 windows. | ||
3696 | * | ||
3697 | * This hint should be set before creating a window. | ||
3698 | * | ||
3699 | * \since This hint is available since SDL 3.2.0. | ||
3700 | */ | ||
3701 | #define SDL_HINT_VIDEO_X11_WINDOW_VISUALID "SDL_VIDEO_X11_WINDOW_VISUALID" | ||
3702 | |||
3703 | /** | ||
3704 | * A variable controlling whether the X11 XRandR extension should be used. | ||
3705 | * | ||
3706 | * The variable can be set to the following values: | ||
3707 | * | ||
3708 | * - "0": Disable XRandR. | ||
3709 | * - "1": Enable XRandR. (default) | ||
3710 | * | ||
3711 | * This hint should be set before SDL is initialized. | ||
3712 | * | ||
3713 | * \since This hint is available since SDL 3.2.0. | ||
3714 | */ | ||
3715 | #define SDL_HINT_VIDEO_X11_XRANDR "SDL_VIDEO_X11_XRANDR" | ||
3716 | |||
3717 | /** | ||
3718 | * A variable controlling whether touch should be enabled on the back panel of | ||
3719 | * the PlayStation Vita. | ||
3720 | * | ||
3721 | * The variable can be set to the following values: | ||
3722 | * | ||
3723 | * - "0": Disable touch on the back panel. | ||
3724 | * - "1": Enable touch on the back panel. (default) | ||
3725 | * | ||
3726 | * This hint should be set before SDL is initialized. | ||
3727 | * | ||
3728 | * \since This hint is available since SDL 3.2.0. | ||
3729 | */ | ||
3730 | #define SDL_HINT_VITA_ENABLE_BACK_TOUCH "SDL_VITA_ENABLE_BACK_TOUCH" | ||
3731 | |||
3732 | /** | ||
3733 | * A variable controlling whether touch should be enabled on the front panel | ||
3734 | * of the PlayStation Vita. | ||
3735 | * | ||
3736 | * The variable can be set to the following values: | ||
3737 | * | ||
3738 | * - "0": Disable touch on the front panel. | ||
3739 | * - "1": Enable touch on the front panel. (default) | ||
3740 | * | ||
3741 | * This hint should be set before SDL is initialized. | ||
3742 | * | ||
3743 | * \since This hint is available since SDL 3.2.0. | ||
3744 | */ | ||
3745 | #define SDL_HINT_VITA_ENABLE_FRONT_TOUCH "SDL_VITA_ENABLE_FRONT_TOUCH" | ||
3746 | |||
3747 | /** | ||
3748 | * A variable controlling the module path on the PlayStation Vita. | ||
3749 | * | ||
3750 | * This hint defaults to "app0:module" | ||
3751 | * | ||
3752 | * This hint should be set before SDL is initialized. | ||
3753 | * | ||
3754 | * \since This hint is available since SDL 3.2.0. | ||
3755 | */ | ||
3756 | #define SDL_HINT_VITA_MODULE_PATH "SDL_VITA_MODULE_PATH" | ||
3757 | |||
3758 | /** | ||
3759 | * A variable controlling whether to perform PVR initialization on the | ||
3760 | * PlayStation Vita. | ||
3761 | * | ||
3762 | * - "0": Skip PVR initialization. | ||
3763 | * - "1": Perform the normal PVR initialization. (default) | ||
3764 | * | ||
3765 | * This hint should be set before SDL is initialized. | ||
3766 | * | ||
3767 | * \since This hint is available since SDL 3.2.0. | ||
3768 | */ | ||
3769 | #define SDL_HINT_VITA_PVR_INIT "SDL_VITA_PVR_INIT" | ||
3770 | |||
3771 | /** | ||
3772 | * A variable overriding the resolution reported on the PlayStation Vita. | ||
3773 | * | ||
3774 | * The variable can be set to the following values: | ||
3775 | * | ||
3776 | * - "544": 544p (default) | ||
3777 | * - "720": 725p for PSTV | ||
3778 | * - "1080": 1088i for PSTV | ||
3779 | * | ||
3780 | * This hint should be set before SDL is initialized. | ||
3781 | * | ||
3782 | * \since This hint is available since SDL 3.2.0. | ||
3783 | */ | ||
3784 | #define SDL_HINT_VITA_RESOLUTION "SDL_VITA_RESOLUTION" | ||
3785 | |||
3786 | /** | ||
3787 | * A variable controlling whether OpenGL should be used instead of OpenGL ES | ||
3788 | * on the PlayStation Vita. | ||
3789 | * | ||
3790 | * The variable can be set to the following values: | ||
3791 | * | ||
3792 | * - "0": Use OpenGL ES. (default) | ||
3793 | * - "1": Use OpenGL. | ||
3794 | * | ||
3795 | * This hint should be set before SDL is initialized. | ||
3796 | * | ||
3797 | * \since This hint is available since SDL 3.2.0. | ||
3798 | */ | ||
3799 | #define SDL_HINT_VITA_PVR_OPENGL "SDL_VITA_PVR_OPENGL" | ||
3800 | |||
3801 | /** | ||
3802 | * A variable controlling which touchpad should generate synthetic mouse | ||
3803 | * events. | ||
3804 | * | ||
3805 | * The variable can be set to the following values: | ||
3806 | * | ||
3807 | * - "0": Only front touchpad should generate mouse events. (default) | ||
3808 | * - "1": Only back touchpad should generate mouse events. | ||
3809 | * - "2": Both touchpads should generate mouse events. | ||
3810 | * | ||
3811 | * This hint can be set anytime. | ||
3812 | * | ||
3813 | * \since This hint is available since SDL 3.2.0. | ||
3814 | */ | ||
3815 | #define SDL_HINT_VITA_TOUCH_MOUSE_DEVICE "SDL_VITA_TOUCH_MOUSE_DEVICE" | ||
3816 | |||
3817 | /** | ||
3818 | * A variable overriding the display index used in SDL_Vulkan_CreateSurface() | ||
3819 | * | ||
3820 | * The display index starts at 0, which is the default. | ||
3821 | * | ||
3822 | * This hint should be set before calling SDL_Vulkan_CreateSurface() | ||
3823 | * | ||
3824 | * \since This hint is available since SDL 3.2.0. | ||
3825 | */ | ||
3826 | #define SDL_HINT_VULKAN_DISPLAY "SDL_VULKAN_DISPLAY" | ||
3827 | |||
3828 | /** | ||
3829 | * Specify the Vulkan library to load. | ||
3830 | * | ||
3831 | * This hint should be set before creating a Vulkan window or calling | ||
3832 | * SDL_Vulkan_LoadLibrary(). | ||
3833 | * | ||
3834 | * \since This hint is available since SDL 3.2.0. | ||
3835 | */ | ||
3836 | #define SDL_HINT_VULKAN_LIBRARY "SDL_VULKAN_LIBRARY" | ||
3837 | |||
3838 | /** | ||
3839 | * A variable controlling how the fact chunk affects the loading of a WAVE | ||
3840 | * file. | ||
3841 | * | ||
3842 | * The fact chunk stores information about the number of samples of a WAVE | ||
3843 | * file. The Standards Update from Microsoft notes that this value can be used | ||
3844 | * to 'determine the length of the data in seconds'. This is especially useful | ||
3845 | * for compressed formats (for which this is a mandatory chunk) if they | ||
3846 | * produce multiple sample frames per block and truncating the block is not | ||
3847 | * allowed. The fact chunk can exactly specify how many sample frames there | ||
3848 | * should be in this case. | ||
3849 | * | ||
3850 | * Unfortunately, most application seem to ignore the fact chunk and so SDL | ||
3851 | * ignores it by default as well. | ||
3852 | * | ||
3853 | * The variable can be set to the following values: | ||
3854 | * | ||
3855 | * - "truncate" - Use the number of samples to truncate the wave data if the | ||
3856 | * fact chunk is present and valid. | ||
3857 | * - "strict" - Like "truncate", but raise an error if the fact chunk is | ||
3858 | * invalid, not present for non-PCM formats, or if the data chunk doesn't | ||
3859 | * have that many samples. | ||
3860 | * - "ignorezero" - Like "truncate", but ignore fact chunk if the number of | ||
3861 | * samples is zero. | ||
3862 | * - "ignore" - Ignore fact chunk entirely. (default) | ||
3863 | * | ||
3864 | * This hint should be set before calling SDL_LoadWAV() or SDL_LoadWAV_IO() | ||
3865 | * | ||
3866 | * \since This hint is available since SDL 3.2.0. | ||
3867 | */ | ||
3868 | #define SDL_HINT_WAVE_FACT_CHUNK "SDL_WAVE_FACT_CHUNK" | ||
3869 | |||
3870 | /** | ||
3871 | * A variable controlling the maximum number of chunks in a WAVE file. | ||
3872 | * | ||
3873 | * This sets an upper bound on the number of chunks in a WAVE file to avoid | ||
3874 | * wasting time on malformed or corrupt WAVE files. This defaults to "10000". | ||
3875 | * | ||
3876 | * This hint should be set before calling SDL_LoadWAV() or SDL_LoadWAV_IO() | ||
3877 | * | ||
3878 | * \since This hint is available since SDL 3.2.0. | ||
3879 | */ | ||
3880 | #define SDL_HINT_WAVE_CHUNK_LIMIT "SDL_WAVE_CHUNK_LIMIT" | ||
3881 | |||
3882 | /** | ||
3883 | * A variable controlling how the size of the RIFF chunk affects the loading | ||
3884 | * of a WAVE file. | ||
3885 | * | ||
3886 | * The size of the RIFF chunk (which includes all the sub-chunks of the WAVE | ||
3887 | * file) is not always reliable. In case the size is wrong, it's possible to | ||
3888 | * just ignore it and step through the chunks until a fixed limit is reached. | ||
3889 | * | ||
3890 | * Note that files that have trailing data unrelated to the WAVE file or | ||
3891 | * corrupt files may slow down the loading process without a reliable | ||
3892 | * boundary. By default, SDL stops after 10000 chunks to prevent wasting time. | ||
3893 | * Use SDL_HINT_WAVE_CHUNK_LIMIT to adjust this value. | ||
3894 | * | ||
3895 | * The variable can be set to the following values: | ||
3896 | * | ||
3897 | * - "force" - Always use the RIFF chunk size as a boundary for the chunk | ||
3898 | * search. | ||
3899 | * - "ignorezero" - Like "force", but a zero size searches up to 4 GiB. | ||
3900 | * (default) | ||
3901 | * - "ignore" - Ignore the RIFF chunk size and always search up to 4 GiB. | ||
3902 | * - "maximum" - Search for chunks until the end of file. (not recommended) | ||
3903 | * | ||
3904 | * This hint should be set before calling SDL_LoadWAV() or SDL_LoadWAV_IO() | ||
3905 | * | ||
3906 | * \since This hint is available since SDL 3.2.0. | ||
3907 | */ | ||
3908 | #define SDL_HINT_WAVE_RIFF_CHUNK_SIZE "SDL_WAVE_RIFF_CHUNK_SIZE" | ||
3909 | |||
3910 | /** | ||
3911 | * A variable controlling how a truncated WAVE file is handled. | ||
3912 | * | ||
3913 | * A WAVE file is considered truncated if any of the chunks are incomplete or | ||
3914 | * the data chunk size is not a multiple of the block size. By default, SDL | ||
3915 | * decodes until the first incomplete block, as most applications seem to do. | ||
3916 | * | ||
3917 | * The variable can be set to the following values: | ||
3918 | * | ||
3919 | * - "verystrict" - Raise an error if the file is truncated. | ||
3920 | * - "strict" - Like "verystrict", but the size of the RIFF chunk is ignored. | ||
3921 | * - "dropframe" - Decode until the first incomplete sample frame. | ||
3922 | * - "dropblock" - Decode until the first incomplete block. (default) | ||
3923 | * | ||
3924 | * This hint should be set before calling SDL_LoadWAV() or SDL_LoadWAV_IO() | ||
3925 | * | ||
3926 | * \since This hint is available since SDL 3.2.0. | ||
3927 | */ | ||
3928 | #define SDL_HINT_WAVE_TRUNCATION "SDL_WAVE_TRUNCATION" | ||
3929 | |||
3930 | /** | ||
3931 | * A variable controlling whether the window is activated when the | ||
3932 | * SDL_RaiseWindow function is called. | ||
3933 | * | ||
3934 | * The variable can be set to the following values: | ||
3935 | * | ||
3936 | * - "0": The window is not activated when the SDL_RaiseWindow function is | ||
3937 | * called. | ||
3938 | * - "1": The window is activated when the SDL_RaiseWindow function is called. | ||
3939 | * (default) | ||
3940 | * | ||
3941 | * This hint can be set anytime. | ||
3942 | * | ||
3943 | * \since This hint is available since SDL 3.2.0. | ||
3944 | */ | ||
3945 | #define SDL_HINT_WINDOW_ACTIVATE_WHEN_RAISED "SDL_WINDOW_ACTIVATE_WHEN_RAISED" | ||
3946 | |||
3947 | /** | ||
3948 | * A variable controlling whether the window is activated when the | ||
3949 | * SDL_ShowWindow function is called. | ||
3950 | * | ||
3951 | * The variable can be set to the following values: | ||
3952 | * | ||
3953 | * - "0": The window is not activated when the SDL_ShowWindow function is | ||
3954 | * called. | ||
3955 | * - "1": The window is activated when the SDL_ShowWindow function is called. | ||
3956 | * (default) | ||
3957 | * | ||
3958 | * This hint can be set anytime. | ||
3959 | * | ||
3960 | * \since This hint is available since SDL 3.2.0. | ||
3961 | */ | ||
3962 | #define SDL_HINT_WINDOW_ACTIVATE_WHEN_SHOWN "SDL_WINDOW_ACTIVATE_WHEN_SHOWN" | ||
3963 | |||
3964 | /** | ||
3965 | * If set to "0" then never set the top-most flag on an SDL Window even if the | ||
3966 | * application requests it. | ||
3967 | * | ||
3968 | * This is a debugging aid for developers and not expected to be used by end | ||
3969 | * users. | ||
3970 | * | ||
3971 | * The variable can be set to the following values: | ||
3972 | * | ||
3973 | * - "0": don't allow topmost | ||
3974 | * - "1": allow topmost (default) | ||
3975 | * | ||
3976 | * This hint can be set anytime. | ||
3977 | * | ||
3978 | * \since This hint is available since SDL 3.2.0. | ||
3979 | */ | ||
3980 | #define SDL_HINT_WINDOW_ALLOW_TOPMOST "SDL_WINDOW_ALLOW_TOPMOST" | ||
3981 | |||
3982 | /** | ||
3983 | * A variable controlling whether the window frame and title bar are | ||
3984 | * interactive when the cursor is hidden. | ||
3985 | * | ||
3986 | * The variable can be set to the following values: | ||
3987 | * | ||
3988 | * - "0": The window frame is not interactive when the cursor is hidden (no | ||
3989 | * move, resize, etc). | ||
3990 | * - "1": The window frame is interactive when the cursor is hidden. (default) | ||
3991 | * | ||
3992 | * This hint can be set anytime. | ||
3993 | * | ||
3994 | * \since This hint is available since SDL 3.2.0. | ||
3995 | */ | ||
3996 | #define SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN" | ||
3997 | |||
3998 | /** | ||
3999 | * A variable controlling whether SDL generates window-close events for Alt+F4 | ||
4000 | * on Windows. | ||
4001 | * | ||
4002 | * The variable can be set to the following values: | ||
4003 | * | ||
4004 | * - "0": SDL will only do normal key handling for Alt+F4. | ||
4005 | * - "1": SDL will generate a window-close event when it sees Alt+F4. | ||
4006 | * (default) | ||
4007 | * | ||
4008 | * This hint can be set anytime. | ||
4009 | * | ||
4010 | * \since This hint is available since SDL 3.2.0. | ||
4011 | */ | ||
4012 | #define SDL_HINT_WINDOWS_CLOSE_ON_ALT_F4 "SDL_WINDOWS_CLOSE_ON_ALT_F4" | ||
4013 | |||
4014 | /** | ||
4015 | * A variable controlling whether menus can be opened with their keyboard | ||
4016 | * shortcut (Alt+mnemonic). | ||
4017 | * | ||
4018 | * If the mnemonics are enabled, then menus can be opened by pressing the Alt | ||
4019 | * key and the corresponding mnemonic (for example, Alt+F opens the File | ||
4020 | * menu). However, in case an invalid mnemonic is pressed, Windows makes an | ||
4021 | * audible beep to convey that nothing happened. This is true even if the | ||
4022 | * window has no menu at all! | ||
4023 | * | ||
4024 | * Because most SDL applications don't have menus, and some want to use the | ||
4025 | * Alt key for other purposes, SDL disables mnemonics (and the beeping) by | ||
4026 | * default. | ||
4027 | * | ||
4028 | * Note: This also affects keyboard events: with mnemonics enabled, when a | ||
4029 | * menu is opened from the keyboard, you will not receive a KEYUP event for | ||
4030 | * the mnemonic key, and *might* not receive one for Alt. | ||
4031 | * | ||
4032 | * The variable can be set to the following values: | ||
4033 | * | ||
4034 | * - "0": Alt+mnemonic does nothing, no beeping. (default) | ||
4035 | * - "1": Alt+mnemonic opens menus, invalid mnemonics produce a beep. | ||
4036 | * | ||
4037 | * This hint can be set anytime. | ||
4038 | * | ||
4039 | * \since This hint is available since SDL 3.2.0. | ||
4040 | */ | ||
4041 | #define SDL_HINT_WINDOWS_ENABLE_MENU_MNEMONICS "SDL_WINDOWS_ENABLE_MENU_MNEMONICS" | ||
4042 | |||
4043 | /** | ||
4044 | * A variable controlling whether the windows message loop is processed by | ||
4045 | * SDL. | ||
4046 | * | ||
4047 | * The variable can be set to the following values: | ||
4048 | * | ||
4049 | * - "0": The window message loop is not run. | ||
4050 | * - "1": The window message loop is processed in SDL_PumpEvents(). (default) | ||
4051 | * | ||
4052 | * This hint can be set anytime. | ||
4053 | * | ||
4054 | * \since This hint is available since SDL 3.2.0. | ||
4055 | */ | ||
4056 | #define SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP "SDL_WINDOWS_ENABLE_MESSAGELOOP" | ||
4057 | |||
4058 | /** | ||
4059 | * A variable controlling whether GameInput is used for raw keyboard and mouse | ||
4060 | * on Windows. | ||
4061 | * | ||
4062 | * The variable can be set to the following values: | ||
4063 | * | ||
4064 | * - "0": GameInput is not used for raw keyboard and mouse events. | ||
4065 | * - "1": GameInput is used for raw keyboard and mouse events, if available. | ||
4066 | * (default) | ||
4067 | * | ||
4068 | * This hint should be set before SDL is initialized. | ||
4069 | * | ||
4070 | * \since This hint is available since SDL 3.2.0. | ||
4071 | */ | ||
4072 | #define SDL_HINT_WINDOWS_GAMEINPUT "SDL_WINDOWS_GAMEINPUT" | ||
4073 | |||
4074 | /** | ||
4075 | * A variable controlling whether raw keyboard events are used on Windows. | ||
4076 | * | ||
4077 | * The variable can be set to the following values: | ||
4078 | * | ||
4079 | * - "0": The Windows message loop is used for keyboard events. (default) | ||
4080 | * - "1": Low latency raw keyboard events are used. | ||
4081 | * | ||
4082 | * This hint can be set anytime. | ||
4083 | * | ||
4084 | * \since This hint is available since SDL 3.2.0. | ||
4085 | */ | ||
4086 | #define SDL_HINT_WINDOWS_RAW_KEYBOARD "SDL_WINDOWS_RAW_KEYBOARD" | ||
4087 | |||
4088 | /** | ||
4089 | * A variable controlling whether SDL uses Kernel Semaphores on Windows. | ||
4090 | * | ||
4091 | * Kernel Semaphores are inter-process and require a context switch on every | ||
4092 | * interaction. On Windows 8 and newer, the WaitOnAddress API is available. | ||
4093 | * Using that and atomics to implement semaphores increases performance. SDL | ||
4094 | * will fall back to Kernel Objects on older OS versions or if forced to by | ||
4095 | * this hint. | ||
4096 | * | ||
4097 | * The variable can be set to the following values: | ||
4098 | * | ||
4099 | * - "0": Use Atomics and WaitOnAddress API when available, otherwise fall | ||
4100 | * back to Kernel Objects. (default) | ||
4101 | * - "1": Force the use of Kernel Objects in all cases. | ||
4102 | * | ||
4103 | * This hint should be set before SDL is initialized. | ||
4104 | * | ||
4105 | * \since This hint is available since SDL 3.2.0. | ||
4106 | */ | ||
4107 | #define SDL_HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL "SDL_WINDOWS_FORCE_SEMAPHORE_KERNEL" | ||
4108 | |||
4109 | /** | ||
4110 | * A variable to specify custom icon resource id from RC file on Windows | ||
4111 | * platform. | ||
4112 | * | ||
4113 | * This hint should be set before SDL is initialized. | ||
4114 | * | ||
4115 | * \since This hint is available since SDL 3.2.0. | ||
4116 | */ | ||
4117 | #define SDL_HINT_WINDOWS_INTRESOURCE_ICON "SDL_WINDOWS_INTRESOURCE_ICON" | ||
4118 | |||
4119 | /** | ||
4120 | * A variable to specify custom icon resource id from RC file on Windows | ||
4121 | * platform. | ||
4122 | * | ||
4123 | * This hint should be set before SDL is initialized. | ||
4124 | * | ||
4125 | * \since This hint is available since SDL 3.2.0. | ||
4126 | */ | ||
4127 | #define SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL "SDL_WINDOWS_INTRESOURCE_ICON_SMALL" | ||
4128 | |||
4129 | /** | ||
4130 | * A variable controlling whether SDL uses the D3D9Ex API introduced in | ||
4131 | * Windows Vista, instead of normal D3D9. | ||
4132 | * | ||
4133 | * Direct3D 9Ex contains changes to state management that can eliminate device | ||
4134 | * loss errors during scenarios like Alt+Tab or UAC prompts. D3D9Ex may | ||
4135 | * require some changes to your application to cope with the new behavior, so | ||
4136 | * this is disabled by default. | ||
4137 | * | ||
4138 | * For more information on Direct3D 9Ex, see: | ||
4139 | * | ||
4140 | * - https://docs.microsoft.com/en-us/windows/win32/direct3darticles/graphics-apis-in-windows-vista#direct3d-9ex | ||
4141 | * - https://docs.microsoft.com/en-us/windows/win32/direct3darticles/direct3d-9ex-improvements | ||
4142 | * | ||
4143 | * The variable can be set to the following values: | ||
4144 | * | ||
4145 | * - "0": Use the original Direct3D 9 API. (default) | ||
4146 | * - "1": Use the Direct3D 9Ex API on Vista and later (and fall back if D3D9Ex | ||
4147 | * is unavailable) | ||
4148 | * | ||
4149 | * This hint should be set before SDL is initialized. | ||
4150 | * | ||
4151 | * \since This hint is available since SDL 3.2.0. | ||
4152 | */ | ||
4153 | #define SDL_HINT_WINDOWS_USE_D3D9EX "SDL_WINDOWS_USE_D3D9EX" | ||
4154 | |||
4155 | /** | ||
4156 | * A variable controlling whether SDL will clear the window contents when the | ||
4157 | * WM_ERASEBKGND message is received. | ||
4158 | * | ||
4159 | * The variable can be set to the following values: | ||
4160 | * | ||
4161 | * - "0"/"never": Never clear the window. | ||
4162 | * - "1"/"initial": Clear the window when the first WM_ERASEBKGND event fires. | ||
4163 | * (default) | ||
4164 | * - "2"/"always": Clear the window on every WM_ERASEBKGND event. | ||
4165 | * | ||
4166 | * This hint should be set before creating a window. | ||
4167 | * | ||
4168 | * \since This hint is available since SDL 3.2.0. | ||
4169 | */ | ||
4170 | #define SDL_HINT_WINDOWS_ERASE_BACKGROUND_MODE "SDL_WINDOWS_ERASE_BACKGROUND_MODE" | ||
4171 | |||
4172 | /** | ||
4173 | * A variable controlling whether X11 windows are marked as override-redirect. | ||
4174 | * | ||
4175 | * If set, this _might_ increase framerate at the expense of the desktop not | ||
4176 | * working as expected. Override-redirect windows aren't noticed by the window | ||
4177 | * manager at all. | ||
4178 | * | ||
4179 | * You should probably only use this for fullscreen windows, and you probably | ||
4180 | * shouldn't even use it for that. But it's here if you want to try! | ||
4181 | * | ||
4182 | * The variable can be set to the following values: | ||
4183 | * | ||
4184 | * - "0": Do not mark the window as override-redirect. (default) | ||
4185 | * - "1": Mark the window as override-redirect. | ||
4186 | * | ||
4187 | * This hint should be set before creating a window. | ||
4188 | * | ||
4189 | * \since This hint is available since SDL 3.2.0. | ||
4190 | */ | ||
4191 | #define SDL_HINT_X11_FORCE_OVERRIDE_REDIRECT "SDL_X11_FORCE_OVERRIDE_REDIRECT" | ||
4192 | |||
4193 | /** | ||
4194 | * A variable specifying the type of an X11 window. | ||
4195 | * | ||
4196 | * During SDL_CreateWindow, SDL uses the _NET_WM_WINDOW_TYPE X11 property to | ||
4197 | * report to the window manager the type of window it wants to create. This | ||
4198 | * might be set to various things if SDL_WINDOW_TOOLTIP or | ||
4199 | * SDL_WINDOW_POPUP_MENU, etc, were specified. For "normal" windows that | ||
4200 | * haven't set a specific type, this hint can be used to specify a custom | ||
4201 | * type. For example, a dock window might set this to | ||
4202 | * "_NET_WM_WINDOW_TYPE_DOCK". | ||
4203 | * | ||
4204 | * This hint should be set before creating a window. | ||
4205 | * | ||
4206 | * \since This hint is available since SDL 3.2.0. | ||
4207 | */ | ||
4208 | #define SDL_HINT_X11_WINDOW_TYPE "SDL_X11_WINDOW_TYPE" | ||
4209 | |||
4210 | /** | ||
4211 | * Specify the XCB library to load for the X11 driver. | ||
4212 | * | ||
4213 | * The default is platform-specific, often "libX11-xcb.so.1". | ||
4214 | * | ||
4215 | * This hint should be set before initializing the video subsystem. | ||
4216 | * | ||
4217 | * \since This hint is available since SDL 3.2.0. | ||
4218 | */ | ||
4219 | #define SDL_HINT_X11_XCB_LIBRARY "SDL_X11_XCB_LIBRARY" | ||
4220 | |||
4221 | /** | ||
4222 | * A variable controlling whether XInput should be used for controller | ||
4223 | * handling. | ||
4224 | * | ||
4225 | * The variable can be set to the following values: | ||
4226 | * | ||
4227 | * - "0": XInput is not enabled. | ||
4228 | * - "1": XInput is enabled. (default) | ||
4229 | * | ||
4230 | * This hint should be set before SDL is initialized. | ||
4231 | * | ||
4232 | * \since This hint is available since SDL 3.2.0. | ||
4233 | */ | ||
4234 | #define SDL_HINT_XINPUT_ENABLED "SDL_XINPUT_ENABLED" | ||
4235 | |||
4236 | /** | ||
4237 | * A variable controlling response to SDL_assert failures. | ||
4238 | * | ||
4239 | * The variable can be set to the following case-sensitive values: | ||
4240 | * | ||
4241 | * - "abort": Program terminates immediately. | ||
4242 | * - "break": Program triggers a debugger breakpoint. | ||
4243 | * - "retry": Program reruns the SDL_assert's test again. | ||
4244 | * - "ignore": Program continues on, ignoring this assertion failure this | ||
4245 | * time. | ||
4246 | * - "always_ignore": Program continues on, ignoring this assertion failure | ||
4247 | * for the rest of the run. | ||
4248 | * | ||
4249 | * Note that SDL_SetAssertionHandler offers a programmatic means to deal with | ||
4250 | * assertion failures through a callback, and this hint is largely intended to | ||
4251 | * be used via environment variables by end users and automated tools. | ||
4252 | * | ||
4253 | * This hint should be set before an assertion failure is triggered and can be | ||
4254 | * changed at any time. | ||
4255 | * | ||
4256 | * \since This hint is available since SDL 3.2.0. | ||
4257 | */ | ||
4258 | #define SDL_HINT_ASSERT "SDL_ASSERT" | ||
4259 | |||
4260 | /** | ||
4261 | * A variable controlling whether pen events should generate synthetic mouse | ||
4262 | * events. | ||
4263 | * | ||
4264 | * The variable can be set to the following values: | ||
4265 | * | ||
4266 | * - "0": Pen events will not generate mouse events. | ||
4267 | * - "1": Pen events will generate mouse events. (default) | ||
4268 | * | ||
4269 | * This hint can be set anytime. | ||
4270 | * | ||
4271 | * \since This hint is available since SDL 3.2.0. | ||
4272 | */ | ||
4273 | #define SDL_HINT_PEN_MOUSE_EVENTS "SDL_PEN_MOUSE_EVENTS" | ||
4274 | |||
4275 | /** | ||
4276 | * A variable controlling whether pen events should generate synthetic touch | ||
4277 | * events. | ||
4278 | * | ||
4279 | * The variable can be set to the following values: | ||
4280 | * | ||
4281 | * - "0": Pen events will not generate touch events. | ||
4282 | * - "1": Pen events will generate touch events. (default) | ||
4283 | * | ||
4284 | * This hint can be set anytime. | ||
4285 | * | ||
4286 | * \since This hint is available since SDL 3.2.0. | ||
4287 | */ | ||
4288 | #define SDL_HINT_PEN_TOUCH_EVENTS "SDL_PEN_TOUCH_EVENTS" | ||
4289 | |||
4290 | |||
4291 | /** | ||
4292 | * An enumeration of hint priorities. | ||
4293 | * | ||
4294 | * \since This enum is available since SDL 3.2.0. | ||
4295 | */ | ||
4296 | typedef enum SDL_HintPriority | ||
4297 | { | ||
4298 | SDL_HINT_DEFAULT, | ||
4299 | SDL_HINT_NORMAL, | ||
4300 | SDL_HINT_OVERRIDE | ||
4301 | } SDL_HintPriority; | ||
4302 | |||
4303 | /** | ||
4304 | * Set a hint with a specific priority. | ||
4305 | * | ||
4306 | * The priority controls the behavior when setting a hint that already has a | ||
4307 | * value. Hints will replace existing hints of their priority and lower. | ||
4308 | * Environment variables are considered to have override priority. | ||
4309 | * | ||
4310 | * \param name the hint to set. | ||
4311 | * \param value the value of the hint variable. | ||
4312 | * \param priority the SDL_HintPriority level for the hint. | ||
4313 | * \returns true on success or false on failure; call SDL_GetError() for more | ||
4314 | * information. | ||
4315 | * | ||
4316 | * \threadsafety It is safe to call this function from any thread. | ||
4317 | * | ||
4318 | * \since This function is available since SDL 3.2.0. | ||
4319 | * | ||
4320 | * \sa SDL_GetHint | ||
4321 | * \sa SDL_ResetHint | ||
4322 | * \sa SDL_SetHint | ||
4323 | */ | ||
4324 | extern SDL_DECLSPEC bool SDLCALL SDL_SetHintWithPriority(const char *name, const char *value, SDL_HintPriority priority); | ||
4325 | |||
4326 | /** | ||
4327 | * Set a hint with normal priority. | ||
4328 | * | ||
4329 | * Hints will not be set if there is an existing override hint or environment | ||
4330 | * variable that takes precedence. You can use SDL_SetHintWithPriority() to | ||
4331 | * set the hint with override priority instead. | ||
4332 | * | ||
4333 | * \param name the hint to set. | ||
4334 | * \param value the value of the hint variable. | ||
4335 | * \returns true on success or false on failure; call SDL_GetError() for more | ||
4336 | * information. | ||
4337 | * | ||
4338 | * \threadsafety It is safe to call this function from any thread. | ||
4339 | * | ||
4340 | * \since This function is available since SDL 3.2.0. | ||
4341 | * | ||
4342 | * \sa SDL_GetHint | ||
4343 | * \sa SDL_ResetHint | ||
4344 | * \sa SDL_SetHintWithPriority | ||
4345 | */ | ||
4346 | extern SDL_DECLSPEC bool SDLCALL SDL_SetHint(const char *name, const char *value); | ||
4347 | |||
4348 | /** | ||
4349 | * Reset a hint to the default value. | ||
4350 | * | ||
4351 | * This will reset a hint to the value of the environment variable, or NULL if | ||
4352 | * the environment isn't set. Callbacks will be called normally with this | ||
4353 | * change. | ||
4354 | * | ||
4355 | * \param name the hint to set. | ||
4356 | * \returns true on success or false on failure; call SDL_GetError() for more | ||
4357 | * information. | ||
4358 | * | ||
4359 | * \threadsafety It is safe to call this function from any thread. | ||
4360 | * | ||
4361 | * \since This function is available since SDL 3.2.0. | ||
4362 | * | ||
4363 | * \sa SDL_SetHint | ||
4364 | * \sa SDL_ResetHints | ||
4365 | */ | ||
4366 | extern SDL_DECLSPEC bool SDLCALL SDL_ResetHint(const char *name); | ||
4367 | |||
4368 | /** | ||
4369 | * Reset all hints to the default values. | ||
4370 | * | ||
4371 | * This will reset all hints to the value of the associated environment | ||
4372 | * variable, or NULL if the environment isn't set. Callbacks will be called | ||
4373 | * normally with this change. | ||
4374 | * | ||
4375 | * \threadsafety It is safe to call this function from any thread. | ||
4376 | * | ||
4377 | * \since This function is available since SDL 3.2.0. | ||
4378 | * | ||
4379 | * \sa SDL_ResetHint | ||
4380 | */ | ||
4381 | extern SDL_DECLSPEC void SDLCALL SDL_ResetHints(void); | ||
4382 | |||
4383 | /** | ||
4384 | * Get the value of a hint. | ||
4385 | * | ||
4386 | * \param name the hint to query. | ||
4387 | * \returns the string value of a hint or NULL if the hint isn't set. | ||
4388 | * | ||
4389 | * \threadsafety It is safe to call this function from any thread, however the | ||
4390 | * return value only remains valid until the hint is changed; if | ||
4391 | * another thread might do so, the app should supply locks | ||
4392 | * and/or make a copy of the string. Note that using a hint | ||
4393 | * callback instead is always thread-safe, as SDL holds a lock | ||
4394 | * on the thread subsystem during the callback. | ||
4395 | * | ||
4396 | * \since This function is available since SDL 3.2.0. | ||
4397 | * | ||
4398 | * \sa SDL_SetHint | ||
4399 | * \sa SDL_SetHintWithPriority | ||
4400 | */ | ||
4401 | extern SDL_DECLSPEC const char * SDLCALL SDL_GetHint(const char *name); | ||
4402 | |||
4403 | /** | ||
4404 | * Get the boolean value of a hint variable. | ||
4405 | * | ||
4406 | * \param name the name of the hint to get the boolean value from. | ||
4407 | * \param default_value the value to return if the hint does not exist. | ||
4408 | * \returns the boolean value of a hint or the provided default value if the | ||
4409 | * hint does not exist. | ||
4410 | * | ||
4411 | * \threadsafety It is safe to call this function from any thread. | ||
4412 | * | ||
4413 | * \since This function is available since SDL 3.2.0. | ||
4414 | * | ||
4415 | * \sa SDL_GetHint | ||
4416 | * \sa SDL_SetHint | ||
4417 | */ | ||
4418 | extern SDL_DECLSPEC bool SDLCALL SDL_GetHintBoolean(const char *name, bool default_value); | ||
4419 | |||
4420 | /** | ||
4421 | * A callback used to send notifications of hint value changes. | ||
4422 | * | ||
4423 | * This is called an initial time during SDL_AddHintCallback with the hint's | ||
4424 | * current value, and then again each time the hint's value changes. | ||
4425 | * | ||
4426 | * \param userdata what was passed as `userdata` to SDL_AddHintCallback(). | ||
4427 | * \param name what was passed as `name` to SDL_AddHintCallback(). | ||
4428 | * \param oldValue the previous hint value. | ||
4429 | * \param newValue the new value hint is to be set to. | ||
4430 | * | ||
4431 | * \threadsafety This callback is fired from whatever thread is setting a new | ||
4432 | * hint value. SDL holds a lock on the hint subsystem when | ||
4433 | * calling this callback. | ||
4434 | * | ||
4435 | * \since This datatype is available since SDL 3.2.0. | ||
4436 | * | ||
4437 | * \sa SDL_AddHintCallback | ||
4438 | */ | ||
4439 | typedef void(SDLCALL *SDL_HintCallback)(void *userdata, const char *name, const char *oldValue, const char *newValue); | ||
4440 | |||
4441 | /** | ||
4442 | * Add a function to watch a particular hint. | ||
4443 | * | ||
4444 | * The callback function is called _during_ this function, to provide it an | ||
4445 | * initial value, and again each time the hint's value changes. | ||
4446 | * | ||
4447 | * \param name the hint to watch. | ||
4448 | * \param callback An SDL_HintCallback function that will be called when the | ||
4449 | * hint value changes. | ||
4450 | * \param userdata a pointer to pass to the callback function. | ||
4451 | * \returns true on success or false on failure; call SDL_GetError() for more | ||
4452 | * information. | ||
4453 | * | ||
4454 | * \threadsafety It is safe to call this function from any thread. | ||
4455 | * | ||
4456 | * \since This function is available since SDL 3.2.0. | ||
4457 | * | ||
4458 | * \sa SDL_RemoveHintCallback | ||
4459 | */ | ||
4460 | extern SDL_DECLSPEC bool SDLCALL SDL_AddHintCallback(const char *name, SDL_HintCallback callback, void *userdata); | ||
4461 | |||
4462 | /** | ||
4463 | * Remove a function watching a particular hint. | ||
4464 | * | ||
4465 | * \param name the hint being watched. | ||
4466 | * \param callback an SDL_HintCallback function that will be called when the | ||
4467 | * hint value changes. | ||
4468 | * \param userdata a pointer being passed to the callback function. | ||
4469 | * | ||
4470 | * \threadsafety It is safe to call this function from any thread. | ||
4471 | * | ||
4472 | * \since This function is available since SDL 3.2.0. | ||
4473 | * | ||
4474 | * \sa SDL_AddHintCallback | ||
4475 | */ | ||
4476 | extern SDL_DECLSPEC void SDLCALL SDL_RemoveHintCallback(const char *name, | ||
4477 | SDL_HintCallback callback, | ||
4478 | void *userdata); | ||
4479 | |||
4480 | /* Ends C function definitions when using C++ */ | ||
4481 | #ifdef __cplusplus | ||
4482 | } | ||
4483 | #endif | ||
4484 | #include <SDL3/SDL_close_code.h> | ||
4485 | |||
4486 | #endif /* SDL_hints_h_ */ | ||