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