Skip to main content

sdl_sys_bindgen/generated/
constants.rs

1//! Generated constants
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq)]
4pub enum PropertyType {
5    Pointer,
6    String,
7    Number,
8    Float,
9    Boolean,
10}
11
12#[derive(Debug, Clone, Copy)]
13pub struct Hint {
14    pub name: &'static str,
15    pub value: &'static str,
16    pub doc: &'static str,
17}
18
19#[derive(Debug, Clone, Copy)]
20pub struct Property {
21    pub name: &'static str,
22    pub value: &'static str,
23    pub ty: PropertyType,
24    pub doc: &'static str,
25}
26
27/**
28* Specify the behavior of Alt+Tab while the keyboard is grabbed.
29*
30* By default, SDL emulates Alt+Tab functionality while the keyboard is
31* grabbed and your window is full-screen. This prevents the user from getting
32* stuck in your application if you've enabled keyboard grab.
33*
34* The variable can be set to the following values:
35*
36* - "0": SDL will not handle Alt+Tab. Your application is responsible for
37*   handling Alt+Tab while the keyboard is grabbed.
38* - "1": SDL will minimize your window when Alt+Tab is pressed (default)
39*
40* This hint can be set anytime.
41*
42* \since This hint is available since SDL 3.2.0.
43*/
44pub const SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED: Hint = Hint {
45    name: "SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED",
46    value: "SDL_ALLOW_ALT_TAB_WHILE_GRABBED",
47    doc: "/**\n* Specify the behavior of Alt+Tab while the keyboard is grabbed.\n*\n* By default, SDL emulates Alt+Tab functionality while the keyboard is\n* grabbed and your window is full-screen. This prevents the user from getting\n* stuck in your application if you've enabled keyboard grab.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": SDL will not handle Alt+Tab. Your application is responsible for\n*   handling Alt+Tab while the keyboard is grabbed.\n* - \"1\": SDL will minimize your window when Alt+Tab is pressed (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
48};
49/**
50* A variable to control whether the SDL activity is allowed to be re-created.
51*
52* If this hint is true, the activity can be recreated on demand by the OS,
53* and Java static data and C++ static data remain with their current values.
54* If this hint is false, then SDL will call exit() when you return from your
55* main function and the application will be terminated and then started fresh
56* each time.
57*
58* The variable can be set to the following values:
59*
60* - "0": The application starts fresh at each launch. (default)
61* - "1": The application activity can be recreated by the OS.
62*
63* This hint can be set anytime.
64*
65* \since This hint is available since SDL 3.2.0.
66*/
67pub const SDL_HINT_ANDROID_ALLOW_RECREATE_ACTIVITY: Hint = Hint {
68    name: "SDL_HINT_ANDROID_ALLOW_RECREATE_ACTIVITY",
69    value: "SDL_ANDROID_ALLOW_RECREATE_ACTIVITY",
70    doc: "/**\n* A variable to control whether the SDL activity is allowed to be re-created.\n*\n* If this hint is true, the activity can be recreated on demand by the OS,\n* and Java static data and C++ static data remain with their current values.\n* If this hint is false, then SDL will call exit() when you return from your\n* main function and the application will be terminated and then started fresh\n* each time.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": The application starts fresh at each launch. (default)\n* - \"1\": The application activity can be recreated by the OS.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
71};
72/**
73* A variable to control whether the event loop will block itself when the app
74* is paused.
75*
76* The variable can be set to the following values:
77*
78* - "0": Non blocking.
79* - "1": Blocking. (default)
80*
81* This hint should be set before SDL is initialized.
82*
83* \since This hint is available since SDL 3.2.0.
84*/
85pub const SDL_HINT_ANDROID_BLOCK_ON_PAUSE: Hint = Hint {
86    name: "SDL_HINT_ANDROID_BLOCK_ON_PAUSE",
87    value: "SDL_ANDROID_BLOCK_ON_PAUSE",
88    doc: "/**\n* A variable to control whether the event loop will block itself when the app\n* is paused.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Non blocking.\n* - \"1\": Blocking. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
89};
90/**
91* A variable to control whether low latency audio should be enabled.
92*
93* Some devices have poor quality output when this is enabled, but this is
94* usually an improvement in audio latency.
95*
96* The variable can be set to the following values:
97*
98* - "0": Low latency audio is not enabled.
99* - "1": Low latency audio is enabled. (default)
100*
101* This hint should be set before SDL audio is initialized.
102*
103* \since This hint is available since SDL 3.2.0.
104*/
105pub const SDL_HINT_ANDROID_LOW_LATENCY_AUDIO: Hint = Hint {
106    name: "SDL_HINT_ANDROID_LOW_LATENCY_AUDIO",
107    value: "SDL_ANDROID_LOW_LATENCY_AUDIO",
108    doc: "/**\n* A variable to control whether low latency audio should be enabled.\n*\n* Some devices have poor quality output when this is enabled, but this is\n* usually an improvement in audio latency.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Low latency audio is not enabled.\n* - \"1\": Low latency audio is enabled. (default)\n*\n* This hint should be set before SDL audio is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
109};
110/**
111* A variable to control whether we trap the Android back button to handle it
112* manually.
113*
114* This is necessary for the right mouse button to work on some Android
115* devices, or to be able to trap the back button for use in your code
116* reliably. If this hint is true, the back button will show up as an
117* SDL_EVENT_KEY_DOWN / SDL_EVENT_KEY_UP pair with a keycode of
118* SDL_SCANCODE_AC_BACK.
119*
120* The variable can be set to the following values:
121*
122* - "0": Back button will be handled as usual for system. (default)
123* - "1": Back button will be trapped, allowing you to handle the key press
124*   manually. (This will also let right mouse click work on systems where the
125*   right mouse button functions as back.)
126*
127* This hint can be set anytime.
128*
129* \since This hint is available since SDL 3.2.0.
130*/
131pub const SDL_HINT_ANDROID_TRAP_BACK_BUTTON: Hint = Hint {
132    name: "SDL_HINT_ANDROID_TRAP_BACK_BUTTON",
133    value: "SDL_ANDROID_TRAP_BACK_BUTTON",
134    doc: "/**\n* A variable to control whether we trap the Android back button to handle it\n* manually.\n*\n* This is necessary for the right mouse button to work on some Android\n* devices, or to be able to trap the back button for use in your code\n* reliably. If this hint is true, the back button will show up as an\n* SDL_EVENT_KEY_DOWN / SDL_EVENT_KEY_UP pair with a keycode of\n* SDL_SCANCODE_AC_BACK.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Back button will be handled as usual for system. (default)\n* - \"1\": Back button will be trapped, allowing you to handle the key press\n*   manually. (This will also let right mouse click work on systems where the\n*   right mouse button functions as back.)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
135};
136/**
137* A variable setting the app ID string.
138*
139* This string is used by desktop compositors to identify and group windows
140* together, as well as match applications with associated desktop settings
141* and icons.
142*
143* This will override SDL_PROP_APP_METADATA_IDENTIFIER_STRING, if set by the
144* application.
145*
146* This hint should be set before SDL is initialized.
147*
148* \since This hint is available since SDL 3.2.0.
149*/
150pub const SDL_HINT_APP_ID: Hint = Hint {
151    name: "SDL_HINT_APP_ID",
152    value: "SDL_APP_ID",
153    doc: "/**\n* A variable setting the app ID string.\n*\n* This string is used by desktop compositors to identify and group windows\n* together, as well as match applications with associated desktop settings\n* and icons.\n*\n* This will override SDL_PROP_APP_METADATA_IDENTIFIER_STRING, if set by the\n* application.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
154};
155/**
156* A variable setting the application name.
157*
158* This hint lets you specify the application name sent to the OS when
159* required. For example, this will often appear in volume control applets for
160* audio streams, and in lists of applications which are inhibiting the
161* screensaver. You should use a string that describes your program ("My Game
162* 2: The Revenge")
163*
164* This will override SDL_PROP_APP_METADATA_NAME_STRING, if set by the
165* application.
166*
167* This hint should be set before SDL is initialized.
168*
169* \since This hint is available since SDL 3.2.0.
170*/
171pub const SDL_HINT_APP_NAME: Hint = Hint {
172    name: "SDL_HINT_APP_NAME",
173    value: "SDL_APP_NAME",
174    doc: "/**\n* A variable setting the application name.\n*\n* This hint lets you specify the application name sent to the OS when\n* required. For example, this will often appear in volume control applets for\n* audio streams, and in lists of applications which are inhibiting the\n* screensaver. You should use a string that describes your program (\"My Game\n* 2: The Revenge\")\n*\n* This will override SDL_PROP_APP_METADATA_NAME_STRING, if set by the\n* application.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
175};
176/**
177* A variable controlling whether controllers used with the Apple TV generate
178* UI events.
179*
180* When UI events are generated by controller input, the app will be
181* backgrounded when the Apple TV remote's menu button is pressed, and when
182* the pause or B buttons on gamepads are pressed.
183*
184* More information about properly making use of controllers for the Apple TV
185* can be found here:
186* https://developer.apple.com/tvos/human-interface-guidelines/remote-and-controllers/
187*
188* The variable can be set to the following values:
189*
190* - "0": Controller input does not generate UI events. (default)
191* - "1": Controller input generates UI events.
192*
193* This hint can be set anytime.
194*
195* \since This hint is available since SDL 3.2.0.
196*/
197pub const SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS: Hint = Hint {
198    name: "SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS",
199    value: "SDL_APPLE_TV_CONTROLLER_UI_EVENTS",
200    doc: "/**\n* A variable controlling whether controllers used with the Apple TV generate\n* UI events.\n*\n* When UI events are generated by controller input, the app will be\n* backgrounded when the Apple TV remote's menu button is pressed, and when\n* the pause or B buttons on gamepads are pressed.\n*\n* More information about properly making use of controllers for the Apple TV\n* can be found here:\n* https://developer.apple.com/tvos/human-interface-guidelines/remote-and-controllers/\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Controller input does not generate UI events. (default)\n* - \"1\": Controller input generates UI events.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
201};
202/**
203* A variable controlling whether the Apple TV remote's joystick axes will
204* automatically match the rotation of the remote.
205*
206* The variable can be set to the following values:
207*
208* - "0": Remote orientation does not affect joystick axes. (default)
209* - "1": Joystick axes are based on the orientation of the remote.
210*
211* This hint can be set anytime.
212*
213* \since This hint is available since SDL 3.2.0.
214*/
215pub const SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION: Hint = Hint {
216    name: "SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION",
217    value: "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION",
218    doc: "/**\n* A variable controlling whether the Apple TV remote's joystick axes will\n* automatically match the rotation of the remote.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Remote orientation does not affect joystick axes. (default)\n* - \"1\": Joystick axes are based on the orientation of the remote.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
219};
220/**
221* Specify the default ALSA audio device name.
222*
223* This variable is a specific audio device to open when the "default" audio
224* device is used.
225*
226* This hint will be ignored when opening the default playback device if
227* SDL_HINT_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE is set, or when opening the
228* default recording device if SDL_HINT_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE is
229* set.
230*
231* This hint should be set before an audio device is opened.
232*
233* \since This hint is available since SDL 3.2.0.
234*
235* \sa SDL_HINT_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE
236* \sa SDL_HINT_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE
237*/
238pub const SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE: Hint = Hint {
239    name: "SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE",
240    value: "SDL_AUDIO_ALSA_DEFAULT_DEVICE",
241    doc: "/**\n* Specify the default ALSA audio device name.\n*\n* This variable is a specific audio device to open when the \"default\" audio\n* device is used.\n*\n* This hint will be ignored when opening the default playback device if\n* SDL_HINT_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE is set, or when opening the\n* default recording device if SDL_HINT_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE is\n* set.\n*\n* This hint should be set before an audio device is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*\n* \\sa SDL_HINT_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE\n* \\sa SDL_HINT_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE\n*/\n",
242};
243/**
244* Specify the default ALSA audio playback device name.
245*
246* This variable is a specific audio device to open for playback, when the
247* "default" audio device is used.
248*
249* If this hint isn't set, SDL will check SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE
250* before choosing a reasonable default.
251*
252* This hint should be set before an audio device is opened.
253*
254* \since This hint is available since SDL 3.2.0.
255*
256* \sa SDL_HINT_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE
257* \sa SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE
258*/
259pub const SDL_HINT_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE: Hint = Hint {
260    name: "SDL_HINT_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE",
261    value: "SDL_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE",
262    doc: "/**\n* Specify the default ALSA audio playback device name.\n*\n* This variable is a specific audio device to open for playback, when the\n* \"default\" audio device is used.\n*\n* If this hint isn't set, SDL will check SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE\n* before choosing a reasonable default.\n*\n* This hint should be set before an audio device is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*\n* \\sa SDL_HINT_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE\n* \\sa SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE\n*/\n",
263};
264/**
265* Specify the default ALSA audio recording device name.
266*
267* This variable is a specific audio device to open for recording, when the
268* "default" audio device is used.
269*
270* If this hint isn't set, SDL will check SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE
271* before choosing a reasonable default.
272*
273* This hint should be set before an audio device is opened.
274*
275* \since This hint is available since SDL 3.2.0.
276*
277* \sa SDL_HINT_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE
278* \sa SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE
279*/
280pub const SDL_HINT_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE: Hint = Hint {
281    name: "SDL_HINT_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE",
282    value: "SDL_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE",
283    doc: "/**\n* Specify the default ALSA audio recording device name.\n*\n* This variable is a specific audio device to open for recording, when the\n* \"default\" audio device is used.\n*\n* If this hint isn't set, SDL will check SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE\n* before choosing a reasonable default.\n*\n* This hint should be set before an audio device is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*\n* \\sa SDL_HINT_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE\n* \\sa SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE\n*/\n",
284};
285/**
286* A variable controlling the audio category on iOS and macOS.
287*
288* The variable can be set to the following values:
289*
290* - "ambient": Use the AVAudioSessionCategoryAmbient audio category, will be
291*   muted by the phone mute switch (default)
292* - "playback": Use the AVAudioSessionCategoryPlayback category.
293*
294* For more information, see Apple's documentation:
295* https://developer.apple.com/library/content/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategoriesandModes/AudioSessionCategoriesandModes.html
296*
297* This hint should be set before an audio device is opened.
298*
299* \since This hint is available since SDL 3.2.0.
300*/
301pub const SDL_HINT_AUDIO_CATEGORY: Hint = Hint {
302    name: "SDL_HINT_AUDIO_CATEGORY",
303    value: "SDL_AUDIO_CATEGORY",
304    doc: "/**\n* A variable controlling the audio category on iOS and macOS.\n*\n* The variable can be set to the following values:\n*\n* - \"ambient\": Use the AVAudioSessionCategoryAmbient audio category, will be\n*   muted by the phone mute switch (default)\n* - \"playback\": Use the AVAudioSessionCategoryPlayback category.\n*\n* For more information, see Apple's documentation:\n* https://developer.apple.com/library/content/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategoriesandModes/AudioSessionCategoriesandModes.html\n*\n* This hint should be set before an audio device is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
305};
306/**
307* A variable controlling the default audio channel count.
308*
309* If the application doesn't specify the audio channel count when opening the
310* device, this hint can be used to specify a default channel count that will
311* be used. This defaults to "1" for recording and "2" for playback devices.
312*
313* This hint should be set before an audio device is opened.
314*
315* \since This hint is available since SDL 3.2.0.
316*/
317pub const SDL_HINT_AUDIO_CHANNELS: Hint = Hint {
318    name: "SDL_HINT_AUDIO_CHANNELS",
319    value: "SDL_AUDIO_CHANNELS",
320    doc: "/**\n* A variable controlling the default audio channel count.\n*\n* If the application doesn't specify the audio channel count when opening the\n* device, this hint can be used to specify a default channel count that will\n* be used. This defaults to \"1\" for recording and \"2\" for playback devices.\n*\n* This hint should be set before an audio device is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
321};
322/**
323* Specify an application icon name for an audio device.
324*
325* Some audio backends (such as Pulseaudio and Pipewire) allow you to set an
326* XDG icon name for your application. Among other things, this icon might
327* show up in a system control panel that lets the user adjust the volume on
328* specific audio streams instead of using one giant master volume slider.
329* Note that this is unrelated to the icon used by the windowing system, which
330* may be set with SDL_SetWindowIcon (or via desktop file on Wayland).
331*
332* Setting this to "" or leaving it unset will have SDL use a reasonable
333* default, "applications-games", which is likely to be installed. See
334* https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html
335* and
336* https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html
337* for the relevant XDG icon specs.
338*
339* This hint should be set before an audio device is opened.
340*
341* \since This hint is available since SDL 3.2.0.
342*/
343pub const SDL_HINT_AUDIO_DEVICE_APP_ICON_NAME: Hint = Hint {
344    name: "SDL_HINT_AUDIO_DEVICE_APP_ICON_NAME",
345    value: "SDL_AUDIO_DEVICE_APP_ICON_NAME",
346    doc: "/**\n* Specify an application icon name for an audio device.\n*\n* Some audio backends (such as Pulseaudio and Pipewire) allow you to set an\n* XDG icon name for your application. Among other things, this icon might\n* show up in a system control panel that lets the user adjust the volume on\n* specific audio streams instead of using one giant master volume slider.\n* Note that this is unrelated to the icon used by the windowing system, which\n* may be set with SDL_SetWindowIcon (or via desktop file on Wayland).\n*\n* Setting this to \"\" or leaving it unset will have SDL use a reasonable\n* default, \"applications-games\", which is likely to be installed. See\n* https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html\n* and\n* https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html\n* for the relevant XDG icon specs.\n*\n* This hint should be set before an audio device is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
347};
348/**
349* A variable controlling device buffer size.
350*
351* This hint is an integer > 0, that represents the size of the device's
352* buffer in sample frames (stereo audio data in 16-bit format is 4 bytes per
353* sample frame, for example).
354*
355* SDL3 generally decides this value on behalf of the app, but if for some
356* reason the app needs to dictate this (because they want either lower
357* latency or higher throughput AND ARE WILLING TO DEAL WITH what that might
358* require of the app), they can specify it.
359*
360* SDL will try to accommodate this value, but there is no promise you'll get
361* the buffer size requested. Many platforms won't honor this request at all,
362* or might adjust it.
363*
364* This hint should be set before an audio device is opened.
365*
366* \since This hint is available since SDL 3.2.0.
367*/
368pub const SDL_HINT_AUDIO_DEVICE_SAMPLE_FRAMES: Hint = Hint {
369    name: "SDL_HINT_AUDIO_DEVICE_SAMPLE_FRAMES",
370    value: "SDL_AUDIO_DEVICE_SAMPLE_FRAMES",
371    doc: "/**\n* A variable controlling device buffer size.\n*\n* This hint is an integer > 0, that represents the size of the device's\n* buffer in sample frames (stereo audio data in 16-bit format is 4 bytes per\n* sample frame, for example).\n*\n* SDL3 generally decides this value on behalf of the app, but if for some\n* reason the app needs to dictate this (because they want either lower\n* latency or higher throughput AND ARE WILLING TO DEAL WITH what that might\n* require of the app), they can specify it.\n*\n* SDL will try to accommodate this value, but there is no promise you'll get\n* the buffer size requested. Many platforms won't honor this request at all,\n* or might adjust it.\n*\n* This hint should be set before an audio device is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
372};
373/**
374* Specify an audio stream name for an audio device.
375*
376* Some audio backends (such as PulseAudio) allow you to describe your audio
377* stream. Among other things, this description might show up in a system
378* control panel that lets the user adjust the volume on specific audio
379* streams instead of using one giant master volume slider.
380*
381* This hints lets you transmit that information to the OS. The contents of
382* this hint are used while opening an audio device. You should use a string
383* that describes your what your program is playing ("audio stream" is
384* probably sufficient in many cases, but this could be useful for something
385* like "team chat" if you have a headset playing VoIP audio separately).
386*
387* Setting this to "" or leaving it unset will have SDL use a reasonable
388* default: "audio stream" or something similar.
389*
390* Note that while this talks about audio streams, this is an OS-level
391* concept, so it applies to a physical audio device in this case, and not an
392* SDL_AudioStream, nor an SDL logical audio device.
393*
394* This hint should be set before an audio device is opened.
395*
396* \since This hint is available since SDL 3.2.0.
397*/
398pub const SDL_HINT_AUDIO_DEVICE_STREAM_NAME: Hint = Hint {
399    name: "SDL_HINT_AUDIO_DEVICE_STREAM_NAME",
400    value: "SDL_AUDIO_DEVICE_STREAM_NAME",
401    doc: "/**\n* Specify an audio stream name for an audio device.\n*\n* Some audio backends (such as PulseAudio) allow you to describe your audio\n* stream. Among other things, this description might show up in a system\n* control panel that lets the user adjust the volume on specific audio\n* streams instead of using one giant master volume slider.\n*\n* This hints lets you transmit that information to the OS. The contents of\n* this hint are used while opening an audio device. You should use a string\n* that describes your what your program is playing (\"audio stream\" is\n* probably sufficient in many cases, but this could be useful for something\n* like \"team chat\" if you have a headset playing VoIP audio separately).\n*\n* Setting this to \"\" or leaving it unset will have SDL use a reasonable\n* default: \"audio stream\" or something similar.\n*\n* Note that while this talks about audio streams, this is an OS-level\n* concept, so it applies to a physical audio device in this case, and not an\n* SDL_AudioStream, nor an SDL logical audio device.\n*\n* This hint should be set before an audio device is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
402};
403/**
404* Specify an application role for an audio device.
405*
406* Some audio backends (such as Pipewire) allow you to describe the role of
407* your audio stream. Among other things, this description might show up in a
408* system control panel or software for displaying and manipulating media
409* playback/recording graphs.
410*
411* This hints lets you transmit that information to the OS. The contents of
412* this hint are used while opening an audio device. You should use a string
413* that describes your what your program is playing (Game, Music, Movie,
414* etc...).
415*
416* Setting this to "" or leaving it unset will have SDL use a reasonable
417* default: "Game" or something similar.
418*
419* Note that while this talks about audio streams, this is an OS-level
420* concept, so it applies to a physical audio device in this case, and not an
421* SDL_AudioStream, nor an SDL logical audio device.
422*
423* For Windows WASAPI audio, the following roles are supported, and map to
424* `AUDIO_STREAM_CATEGORY`:
425*
426* - "Other" (default)
427* - "Communications" - Real-time communications, such as VOIP or chat
428* - "Game" - Game audio
429* - "GameChat" - Game chat audio, similar to "Communications" except that
430*   this will not attenuate other audio streams
431* - "Movie" - Music or sound with dialog
432* - "Media" - Music or sound without dialog
433*
434* If your application applies its own echo cancellation, gain control, and
435* noise reduction it should also set SDL_HINT_AUDIO_DEVICE_RAW_STREAM.
436*
437* This hint should be set before an audio device is opened.
438*
439* \since This hint is available since SDL 3.2.0.
440*/
441pub const SDL_HINT_AUDIO_DEVICE_STREAM_ROLE: Hint = Hint {
442    name: "SDL_HINT_AUDIO_DEVICE_STREAM_ROLE",
443    value: "SDL_AUDIO_DEVICE_STREAM_ROLE",
444    doc: "/**\n* Specify an application role for an audio device.\n*\n* Some audio backends (such as Pipewire) allow you to describe the role of\n* your audio stream. Among other things, this description might show up in a\n* system control panel or software for displaying and manipulating media\n* playback/recording graphs.\n*\n* This hints lets you transmit that information to the OS. The contents of\n* this hint are used while opening an audio device. You should use a string\n* that describes your what your program is playing (Game, Music, Movie,\n* etc...).\n*\n* Setting this to \"\" or leaving it unset will have SDL use a reasonable\n* default: \"Game\" or something similar.\n*\n* Note that while this talks about audio streams, this is an OS-level\n* concept, so it applies to a physical audio device in this case, and not an\n* SDL_AudioStream, nor an SDL logical audio device.\n*\n* For Windows WASAPI audio, the following roles are supported, and map to\n* `AUDIO_STREAM_CATEGORY`:\n*\n* - \"Other\" (default)\n* - \"Communications\" - Real-time communications, such as VOIP or chat\n* - \"Game\" - Game audio\n* - \"GameChat\" - Game chat audio, similar to \"Communications\" except that\n*   this will not attenuate other audio streams\n* - \"Movie\" - Music or sound with dialog\n* - \"Media\" - Music or sound without dialog\n*\n* If your application applies its own echo cancellation, gain control, and\n* noise reduction it should also set SDL_HINT_AUDIO_DEVICE_RAW_STREAM.\n*\n* This hint should be set before an audio device is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
445};
446/**
447* Specify whether this audio device should do audio processing.
448*
449* Some operating systems perform echo cancellation, gain control, and noise
450* reduction as needed. If your application already handles these, you can set
451* this hint to prevent the OS from doing additional audio processing.
452*
453* This corresponds to the WASAPI audio option `AUDCLNT_STREAMOPTIONS_RAW`.
454*
455* The variable can be set to the following values:
456*
457* - "0": audio processing can be done by the OS. (default)
458* - "1": audio processing is done by the application.
459*
460* This hint should be set before an audio device is opened.
461*
462* \since This hint is available since SDL 3.4.0.
463*/
464pub const SDL_HINT_AUDIO_DEVICE_RAW_STREAM: Hint = Hint {
465    name: "SDL_HINT_AUDIO_DEVICE_RAW_STREAM",
466    value: "SDL_AUDIO_DEVICE_RAW_STREAM",
467    doc: "/**\n* Specify whether this audio device should do audio processing.\n*\n* Some operating systems perform echo cancellation, gain control, and noise\n* reduction as needed. If your application already handles these, you can set\n* this hint to prevent the OS from doing additional audio processing.\n*\n* This corresponds to the WASAPI audio option `AUDCLNT_STREAMOPTIONS_RAW`.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": audio processing can be done by the OS. (default)\n* - \"1\": audio processing is done by the application.\n*\n* This hint should be set before an audio device is opened.\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
468};
469/**
470* Specify the input file when recording audio using the disk audio driver.
471*
472* This defaults to "sdlaudio-in.raw"
473*
474* This hint should be set before an audio device is opened.
475*
476* \since This hint is available since SDL 3.2.0.
477*/
478pub const SDL_HINT_AUDIO_DISK_INPUT_FILE: Hint = Hint {
479    name: "SDL_HINT_AUDIO_DISK_INPUT_FILE",
480    value: "SDL_AUDIO_DISK_INPUT_FILE",
481    doc: "/**\n* Specify the input file when recording audio using the disk audio driver.\n*\n* This defaults to \"sdlaudio-in.raw\"\n*\n* This hint should be set before an audio device is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
482};
483/**
484* Specify the output file when playing audio using the disk audio driver.
485*
486* This defaults to "sdlaudio.raw"
487*
488* This hint should be set before an audio device is opened.
489*
490* \since This hint is available since SDL 3.2.0.
491*/
492pub const SDL_HINT_AUDIO_DISK_OUTPUT_FILE: Hint = Hint {
493    name: "SDL_HINT_AUDIO_DISK_OUTPUT_FILE",
494    value: "SDL_AUDIO_DISK_OUTPUT_FILE",
495    doc: "/**\n* Specify the output file when playing audio using the disk audio driver.\n*\n* This defaults to \"sdlaudio.raw\"\n*\n* This hint should be set before an audio device is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
496};
497/**
498* A variable controlling the audio rate when using the disk audio driver.
499*
500* The disk audio driver normally simulates real-time for the audio rate that
501* was specified, but you can use this variable to adjust this rate higher or
502* lower down to 0. The default value is "1.0".
503*
504* This hint should be set before an audio device is opened.
505*
506* \since This hint is available since SDL 3.2.0.
507*/
508pub const SDL_HINT_AUDIO_DISK_TIMESCALE: Hint = Hint {
509    name: "SDL_HINT_AUDIO_DISK_TIMESCALE",
510    value: "SDL_AUDIO_DISK_TIMESCALE",
511    doc: "/**\n* A variable controlling the audio rate when using the disk audio driver.\n*\n* The disk audio driver normally simulates real-time for the audio rate that\n* was specified, but you can use this variable to adjust this rate higher or\n* lower down to 0. The default value is \"1.0\".\n*\n* This hint should be set before an audio device is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
512};
513/**
514* A variable that specifies an audio backend to use.
515*
516* By default, SDL will try all available audio backends in a reasonable order
517* until it finds one that can work, but this hint allows the app or user to
518* force a specific driver, such as "pipewire" if, say, you are on PulseAudio
519* but want to try talking to the lower level instead.
520*
521* This hint should be set before SDL is initialized.
522*
523* \since This hint is available since SDL 3.2.0.
524*/
525pub const SDL_HINT_AUDIO_DRIVER: Hint = Hint {
526    name: "SDL_HINT_AUDIO_DRIVER",
527    value: "SDL_AUDIO_DRIVER",
528    doc: "/**\n* A variable that specifies an audio backend to use.\n*\n* By default, SDL will try all available audio backends in a reasonable order\n* until it finds one that can work, but this hint allows the app or user to\n* force a specific driver, such as \"pipewire\" if, say, you are on PulseAudio\n* but want to try talking to the lower level instead.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
529};
530/**
531* A variable controlling the audio rate when using the dummy audio driver.
532*
533* The dummy audio driver normally simulates real-time for the audio rate that
534* was specified, but you can use this variable to adjust this rate higher or
535* lower down to 0. The default value is "1.0".
536*
537* This hint should be set before an audio device is opened.
538*
539* \since This hint is available since SDL 3.2.0.
540*/
541pub const SDL_HINT_AUDIO_DUMMY_TIMESCALE: Hint = Hint {
542    name: "SDL_HINT_AUDIO_DUMMY_TIMESCALE",
543    value: "SDL_AUDIO_DUMMY_TIMESCALE",
544    doc: "/**\n* A variable controlling the audio rate when using the dummy audio driver.\n*\n* The dummy audio driver normally simulates real-time for the audio rate that\n* was specified, but you can use this variable to adjust this rate higher or\n* lower down to 0. The default value is \"1.0\".\n*\n* This hint should be set before an audio device is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
545};
546/**
547* A variable controlling the default audio format.
548*
549* If the application doesn't specify the audio format when opening the
550* device, this hint can be used to specify a default format that will be
551* used.
552*
553* The variable can be set to the following values:
554*
555* - "U8": Unsigned 8-bit audio
556* - "S8": Signed 8-bit audio
557* - "S16LE": Signed 16-bit little-endian audio
558* - "S16BE": Signed 16-bit big-endian audio
559* - "S16": Signed 16-bit native-endian audio (default)
560* - "S32LE": Signed 32-bit little-endian audio
561* - "S32BE": Signed 32-bit big-endian audio
562* - "S32": Signed 32-bit native-endian audio
563* - "F32LE": Floating point little-endian audio
564* - "F32BE": Floating point big-endian audio
565* - "F32": Floating point native-endian audio
566*
567* This hint should be set before an audio device is opened.
568*
569* \since This hint is available since SDL 3.2.0.
570*/
571pub const SDL_HINT_AUDIO_FORMAT: Hint = Hint {
572    name: "SDL_HINT_AUDIO_FORMAT",
573    value: "SDL_AUDIO_FORMAT",
574    doc: "/**\n* A variable controlling the default audio format.\n*\n* If the application doesn't specify the audio format when opening the\n* device, this hint can be used to specify a default format that will be\n* used.\n*\n* The variable can be set to the following values:\n*\n* - \"U8\": Unsigned 8-bit audio\n* - \"S8\": Signed 8-bit audio\n* - \"S16LE\": Signed 16-bit little-endian audio\n* - \"S16BE\": Signed 16-bit big-endian audio\n* - \"S16\": Signed 16-bit native-endian audio (default)\n* - \"S32LE\": Signed 32-bit little-endian audio\n* - \"S32BE\": Signed 32-bit big-endian audio\n* - \"S32\": Signed 32-bit native-endian audio\n* - \"F32LE\": Floating point little-endian audio\n* - \"F32BE\": Floating point big-endian audio\n* - \"F32\": Floating point native-endian audio\n*\n* This hint should be set before an audio device is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
575};
576/**
577* A variable controlling the default audio frequency.
578*
579* If the application doesn't specify the audio frequency when opening the
580* device, this hint can be used to specify a default frequency that will be
581* used. This defaults to "44100".
582*
583* This hint should be set before an audio device is opened.
584*
585* \since This hint is available since SDL 3.2.0.
586*/
587pub const SDL_HINT_AUDIO_FREQUENCY: Hint = Hint {
588    name: "SDL_HINT_AUDIO_FREQUENCY",
589    value: "SDL_AUDIO_FREQUENCY",
590    doc: "/**\n* A variable controlling the default audio frequency.\n*\n* If the application doesn't specify the audio frequency when opening the\n* device, this hint can be used to specify a default frequency that will be\n* used. This defaults to \"44100\".\n*\n* This hint should be set before an audio device is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
591};
592/**
593* A variable that causes SDL to not ignore audio "monitors".
594*
595* This is currently only used by the PulseAudio driver.
596*
597* By default, SDL ignores audio devices that aren't associated with physical
598* hardware. Changing this hint to "1" will expose anything SDL sees that
599* appears to be an audio source or sink. This will add "devices" to the list
600* that the user probably doesn't want or need, but it can be useful in
601* scenarios where you want to hook up SDL to some sort of virtual device,
602* etc.
603*
604* The variable can be set to the following values:
605*
606* - "0": Audio monitor devices will be ignored. (default)
607* - "1": Audio monitor devices will show up in the device list.
608*
609* This hint should be set before SDL is initialized.
610*
611* \since This hint is available since SDL 3.2.0.
612*/
613pub const SDL_HINT_AUDIO_INCLUDE_MONITORS: Hint = Hint {
614    name: "SDL_HINT_AUDIO_INCLUDE_MONITORS",
615    value: "SDL_AUDIO_INCLUDE_MONITORS",
616    doc: "/**\n* A variable that causes SDL to not ignore audio \"monitors\".\n*\n* This is currently only used by the PulseAudio driver.\n*\n* By default, SDL ignores audio devices that aren't associated with physical\n* hardware. Changing this hint to \"1\" will expose anything SDL sees that\n* appears to be an audio source or sink. This will add \"devices\" to the list\n* that the user probably doesn't want or need, but it can be useful in\n* scenarios where you want to hook up SDL to some sort of virtual device,\n* etc.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Audio monitor devices will be ignored. (default)\n* - \"1\": Audio monitor devices will show up in the device list.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
617};
618/**
619* A variable controlling whether SDL updates joystick state when getting
620* input events.
621*
622* The variable can be set to the following values:
623*
624* - "0": You'll call SDL_UpdateJoysticks() manually.
625* - "1": SDL will automatically call SDL_UpdateJoysticks(). (default)
626*
627* This hint can be set anytime.
628*
629* \since This hint is available since SDL 3.2.0.
630*/
631pub const SDL_HINT_AUTO_UPDATE_JOYSTICKS: Hint = Hint {
632    name: "SDL_HINT_AUTO_UPDATE_JOYSTICKS",
633    value: "SDL_AUTO_UPDATE_JOYSTICKS",
634    doc: "/**\n* A variable controlling whether SDL updates joystick state when getting\n* input events.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": You'll call SDL_UpdateJoysticks() manually.\n* - \"1\": SDL will automatically call SDL_UpdateJoysticks(). (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
635};
636/**
637* A variable controlling whether SDL updates sensor state when getting input
638* events.
639*
640* The variable can be set to the following values:
641*
642* - "0": You'll call SDL_UpdateSensors() manually.
643* - "1": SDL will automatically call SDL_UpdateSensors(). (default)
644*
645* This hint can be set anytime.
646*
647* \since This hint is available since SDL 3.2.0.
648*/
649pub const SDL_HINT_AUTO_UPDATE_SENSORS: Hint = Hint {
650    name: "SDL_HINT_AUTO_UPDATE_SENSORS",
651    value: "SDL_AUTO_UPDATE_SENSORS",
652    doc: "/**\n* A variable controlling whether SDL updates sensor state when getting input\n* events.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": You'll call SDL_UpdateSensors() manually.\n* - \"1\": SDL will automatically call SDL_UpdateSensors(). (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
653};
654/**
655* Prevent SDL from using version 4 of the bitmap header when saving BMPs.
656*
657* The bitmap header version 4 is required for proper alpha channel support
658* and SDL will use it when required. Should this not be desired, this hint
659* can force the use of the 40 byte header version which is supported
660* everywhere.
661*
662* The variable can be set to the following values:
663*
664* - "0": Surfaces with a colorkey or an alpha channel are saved to a 32-bit
665*   BMP file with an alpha mask. SDL will use the bitmap header version 4 and
666*   set the alpha mask accordingly. (default)
667* - "1": Surfaces with a colorkey or an alpha channel are saved to a 32-bit
668*   BMP file without an alpha mask. The alpha channel data will be in the
669*   file, but applications are going to ignore it.
670*
671* This hint can be set anytime.
672*
673* \since This hint is available since SDL 3.2.0.
674*/
675pub const SDL_HINT_BMP_SAVE_LEGACY_FORMAT: Hint = Hint {
676    name: "SDL_HINT_BMP_SAVE_LEGACY_FORMAT",
677    value: "SDL_BMP_SAVE_LEGACY_FORMAT",
678    doc: "/**\n* Prevent SDL from using version 4 of the bitmap header when saving BMPs.\n*\n* The bitmap header version 4 is required for proper alpha channel support\n* and SDL will use it when required. Should this not be desired, this hint\n* can force the use of the 40 byte header version which is supported\n* everywhere.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Surfaces with a colorkey or an alpha channel are saved to a 32-bit\n*   BMP file with an alpha mask. SDL will use the bitmap header version 4 and\n*   set the alpha mask accordingly. (default)\n* - \"1\": Surfaces with a colorkey or an alpha channel are saved to a 32-bit\n*   BMP file without an alpha mask. The alpha channel data will be in the\n*   file, but applications are going to ignore it.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
679};
680/**
681* A variable that decides what camera backend to use.
682*
683* By default, SDL will try all available camera backends in a reasonable
684* order until it finds one that can work, but this hint allows the app or
685* user to force a specific target, such as "directshow" if, say, you are on
686* Windows Media Foundations but want to try DirectShow instead.
687*
688* The default value is unset, in which case SDL will try to figure out the
689* best camera backend on your behalf. This hint needs to be set before
690* SDL_Init() is called to be useful.
691*
692* \since This hint is available since SDL 3.2.0.
693*/
694pub const SDL_HINT_CAMERA_DRIVER: Hint = Hint {
695    name: "SDL_HINT_CAMERA_DRIVER",
696    value: "SDL_CAMERA_DRIVER",
697    doc: "/**\n* A variable that decides what camera backend to use.\n*\n* By default, SDL will try all available camera backends in a reasonable\n* order until it finds one that can work, but this hint allows the app or\n* user to force a specific target, such as \"directshow\" if, say, you are on\n* Windows Media Foundations but want to try DirectShow instead.\n*\n* The default value is unset, in which case SDL will try to figure out the\n* best camera backend on your behalf. This hint needs to be set before\n* SDL_Init() is called to be useful.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
698};
699/**
700* A variable that limits what CPU features are available.
701*
702* By default, SDL marks all features the current CPU supports as available.
703* This hint allows the enabled features to be limited to a subset.
704*
705* When the hint is unset, or empty, SDL will enable all detected CPU
706* features.
707*
708* The variable can be set to a comma separated list containing the following
709* items:
710*
711* - "all"
712* - "altivec"
713* - "sse"
714* - "sse2"
715* - "sse3"
716* - "sse41"
717* - "sse42"
718* - "avx"
719* - "avx2"
720* - "avx512f"
721* - "arm-simd"
722* - "neon"
723* - "lsx"
724* - "lasx"
725*
726* The items can be prefixed by '+'/'-' to add/remove features.
727*
728* \since This hint is available since SDL 3.2.0.
729*/
730pub const SDL_HINT_CPU_FEATURE_MASK: Hint = Hint {
731    name: "SDL_HINT_CPU_FEATURE_MASK",
732    value: "SDL_CPU_FEATURE_MASK",
733    doc: "/**\n* A variable that limits what CPU features are available.\n*\n* By default, SDL marks all features the current CPU supports as available.\n* This hint allows the enabled features to be limited to a subset.\n*\n* When the hint is unset, or empty, SDL will enable all detected CPU\n* features.\n*\n* The variable can be set to a comma separated list containing the following\n* items:\n*\n* - \"all\"\n* - \"altivec\"\n* - \"sse\"\n* - \"sse2\"\n* - \"sse3\"\n* - \"sse41\"\n* - \"sse42\"\n* - \"avx\"\n* - \"avx2\"\n* - \"avx512f\"\n* - \"arm-simd\"\n* - \"neon\"\n* - \"lsx\"\n* - \"lasx\"\n*\n* The items can be prefixed by '+'/'-' to add/remove features.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
734};
735/**
736* A variable controlling whether DirectInput should be used for controllers.
737*
738* The variable can be set to the following values:
739*
740* - "0": Disable DirectInput detection.
741* - "1": Enable DirectInput detection. (default)
742*
743* This hint should be set before SDL is initialized.
744*
745* \since This hint is available since SDL 3.2.0.
746*/
747pub const SDL_HINT_JOYSTICK_DIRECTINPUT: Hint = Hint {
748    name: "SDL_HINT_JOYSTICK_DIRECTINPUT",
749    value: "SDL_JOYSTICK_DIRECTINPUT",
750    doc: "/**\n* A variable controlling whether DirectInput should be used for controllers.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Disable DirectInput detection.\n* - \"1\": Enable DirectInput detection. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
751};
752/**
753* A variable that specifies a dialog backend to use.
754*
755* By default, SDL will try all available dialog backends in a reasonable
756* order until it finds one that can work, but this hint allows the app or
757* user to force a specific target.
758*
759* If the specified target does not exist or is not available, the
760* dialog-related function calls will fail.
761*
762* This hint currently only applies to platforms using the generic "Unix"
763* dialog implementation, but may be extended to more platforms in the future.
764* Note that some Unix and Unix-like platforms have their own implementation,
765* such as macOS and Haiku.
766*
767* The variable can be set to the following values:
768*
769* - NULL: Select automatically (default, all platforms)
770* - "portal": Use XDG Portals through DBus (Unix only)
771* - "zenity": Use the Zenity program (Unix only)
772*
773* More options may be added in the future.
774*
775* This hint can be set anytime.
776*
777* \since This hint is available since SDL 3.2.0.
778*/
779pub const SDL_HINT_FILE_DIALOG_DRIVER: Hint = Hint {
780    name: "SDL_HINT_FILE_DIALOG_DRIVER",
781    value: "SDL_FILE_DIALOG_DRIVER",
782    doc: "/**\n* A variable that specifies a dialog backend to use.\n*\n* By default, SDL will try all available dialog backends in a reasonable\n* order until it finds one that can work, but this hint allows the app or\n* user to force a specific target.\n*\n* If the specified target does not exist or is not available, the\n* dialog-related function calls will fail.\n*\n* This hint currently only applies to platforms using the generic \"Unix\"\n* dialog implementation, but may be extended to more platforms in the future.\n* Note that some Unix and Unix-like platforms have their own implementation,\n* such as macOS and Haiku.\n*\n* The variable can be set to the following values:\n*\n* - NULL: Select automatically (default, all platforms)\n* - \"portal\": Use XDG Portals through DBus (Unix only)\n* - \"zenity\": Use the Zenity program (Unix only)\n*\n* More options may be added in the future.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
783};
784/**
785* Override for SDL_GetDisplayUsableBounds().
786*
787* If set, this hint will override the expected results for
788* SDL_GetDisplayUsableBounds() for display index 0. Generally you don't want
789* to do this, but this allows an embedded system to request that some of the
790* screen be reserved for other uses when paired with a well-behaved
791* application.
792*
793* The contents of this hint must be 4 comma-separated integers, the first is
794* the bounds x, then y, width and height, in that order.
795*
796* This hint can be set anytime.
797*
798* \since This hint is available since SDL 3.2.0.
799*/
800pub const SDL_HINT_DISPLAY_USABLE_BOUNDS: Hint = Hint {
801    name: "SDL_HINT_DISPLAY_USABLE_BOUNDS",
802    value: "SDL_DISPLAY_USABLE_BOUNDS",
803    doc: "/**\n* Override for SDL_GetDisplayUsableBounds().\n*\n* If set, this hint will override the expected results for\n* SDL_GetDisplayUsableBounds() for display index 0. Generally you don't want\n* to do this, but this allows an embedded system to request that some of the\n* screen be reserved for other uses when paired with a well-behaved\n* application.\n*\n* The contents of this hint must be 4 comma-separated integers, the first is\n* the bounds x, then y, width and height, in that order.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
804};
805/**
806* Set the level of checking for invalid parameters passed to SDL functions.
807*
808* The variable can be set to the following values:
809*
810* - "1": Enable fast parameter error checking, e.g. quick NULL checks, etc.
811* - "2": Enable full parameter error checking, e.g. validating objects are
812*   the correct type, etc. (default)
813*
814* This hint can be set anytime.
815*
816* \since This hint is available since SDL 3.4.0.
817*/
818pub const SDL_HINT_INVALID_PARAM_CHECKS: Hint = Hint {
819    name: "SDL_HINT_INVALID_PARAM_CHECKS",
820    value: "SDL_INVALID_PARAM_CHECKS",
821    doc: "/**\n* Set the level of checking for invalid parameters passed to SDL functions.\n*\n* The variable can be set to the following values:\n*\n* - \"1\": Enable fast parameter error checking, e.g. quick NULL checks, etc.\n* - \"2\": Enable full parameter error checking, e.g. validating objects are\n*   the correct type, etc. (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
822};
823/**
824* Disable giving back control to the browser automatically when running with
825* asyncify.
826*
827* With -s ASYNCIFY, SDL calls emscripten_sleep during operations such as
828* refreshing the screen or polling events.
829*
830* This hint only applies to the emscripten platform.
831*
832* The variable can be set to the following values:
833*
834* - "0": Disable emscripten_sleep calls (if you give back browser control
835*   manually or use asyncify for other purposes).
836* - "1": Enable emscripten_sleep calls. (default)
837*
838* This hint can be set anytime.
839*
840* \since This hint is available since SDL 3.2.0.
841*/
842pub const SDL_HINT_EMSCRIPTEN_ASYNCIFY: Hint = Hint {
843    name: "SDL_HINT_EMSCRIPTEN_ASYNCIFY",
844    value: "SDL_EMSCRIPTEN_ASYNCIFY",
845    doc: "/**\n* Disable giving back control to the browser automatically when running with\n* asyncify.\n*\n* With -s ASYNCIFY, SDL calls emscripten_sleep during operations such as\n* refreshing the screen or polling events.\n*\n* This hint only applies to the emscripten platform.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Disable emscripten_sleep calls (if you give back browser control\n*   manually or use asyncify for other purposes).\n* - \"1\": Enable emscripten_sleep calls. (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
846};
847/**
848* Specify the CSS selector used for the "default" window/canvas.
849*
850* This hint only applies to the emscripten platform.
851*
852* This hint should be set before creating a window.
853*
854* \since This hint is available since SDL 3.2.0.
855*/
856pub const SDL_HINT_EMSCRIPTEN_CANVAS_SELECTOR: Hint = Hint {
857    name: "SDL_HINT_EMSCRIPTEN_CANVAS_SELECTOR",
858    value: "SDL_EMSCRIPTEN_CANVAS_SELECTOR",
859    doc: "/**\n* Specify the CSS selector used for the \"default\" window/canvas.\n*\n* This hint only applies to the emscripten platform.\n*\n* This hint should be set before creating a window.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
860};
861/**
862* Override the binding element for keyboard inputs for Emscripten builds.
863*
864* This hint only applies to the emscripten platform.
865*
866* The variable can be one of:
867*
868* - "#window": the javascript window object
869* - "#document": the javascript document object
870* - "#screen": the javascript window.screen object
871* - "#canvas": the WebGL canvas element
872* - "#none": Don't bind anything at all
873* - any other string without a leading # sign applies to the element on the
874*   page with that ID.
875*
876* This hint should be set before creating a window.
877*
878* \since This hint is available since SDL 3.2.0.
879*/
880pub const SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT: Hint = Hint {
881    name: "SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT",
882    value: "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT",
883    doc: "/**\n* Override the binding element for keyboard inputs for Emscripten builds.\n*\n* This hint only applies to the emscripten platform.\n*\n* The variable can be one of:\n*\n* - \"#window\": the javascript window object\n* - \"#document\": the javascript document object\n* - \"#screen\": the javascript window.screen object\n* - \"#canvas\": the WebGL canvas element\n* - \"#none\": Don't bind anything at all\n* - any other string without a leading # sign applies to the element on the\n*   page with that ID.\n*\n* This hint should be set before creating a window.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
884};
885/**
886* A variable that controls whether the on-screen keyboard should be shown
887* when text input is active.
888*
889* The variable can be set to the following values:
890*
891* - "auto": The on-screen keyboard will be shown if there is no physical
892*   keyboard attached. (default)
893* - "0": Do not show the on-screen keyboard.
894* - "1": Show the on-screen keyboard, if available.
895*
896* This hint must be set before SDL_StartTextInput() is called
897*
898* \since This hint is available since SDL 3.2.0.
899*/
900pub const SDL_HINT_ENABLE_SCREEN_KEYBOARD: Hint = Hint {
901    name: "SDL_HINT_ENABLE_SCREEN_KEYBOARD",
902    value: "SDL_ENABLE_SCREEN_KEYBOARD",
903    doc: "/**\n* A variable that controls whether the on-screen keyboard should be shown\n* when text input is active.\n*\n* The variable can be set to the following values:\n*\n* - \"auto\": The on-screen keyboard will be shown if there is no physical\n*   keyboard attached. (default)\n* - \"0\": Do not show the on-screen keyboard.\n* - \"1\": Show the on-screen keyboard, if available.\n*\n* This hint must be set before SDL_StartTextInput() is called\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
904};
905/**
906* A variable containing a list of evdev devices to use if udev is not
907* available.
908*
909* The list of devices is in the form:
910*
911* deviceclass:path[,deviceclass:path[,...]]
912*
913* where device class is an integer representing the SDL_UDEV_deviceclass and
914* path is the full path to the event device.
915*
916* This hint should be set before SDL is initialized.
917*
918* \since This hint is available since SDL 3.2.0.
919*/
920pub const SDL_HINT_EVDEV_DEVICES: Hint = Hint {
921    name: "SDL_HINT_EVDEV_DEVICES",
922    value: "SDL_EVDEV_DEVICES",
923    doc: "/**\n* A variable containing a list of evdev devices to use if udev is not\n* available.\n*\n* The list of devices is in the form:\n*\n* deviceclass:path[,deviceclass:path[,...]]\n*\n* where device class is an integer representing the SDL_UDEV_deviceclass and\n* path is the full path to the event device.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
924};
925/**
926* A variable controlling verbosity of the logging of SDL events pushed onto
927* the internal queue.
928*
929* The variable can be set to the following values, from least to most
930* verbose:
931*
932* - "0": Don't log any events. (default)
933* - "1": Log most events (other than the really spammy ones).
934* - "2": Include mouse and finger motion events.
935*
936* This is generally meant to be used to debug SDL itself, but can be useful
937* for application developers that need better visibility into what is going
938* on in the event queue. Logged events are sent through SDL_Log(), which
939* means by default they appear on stdout on most platforms or maybe
940* OutputDebugString() on Windows, and can be funneled by the app with
941* SDL_SetLogOutputFunction(), etc.
942*
943* This hint can be set anytime.
944*
945* \since This hint is available since SDL 3.2.0.
946*/
947pub const SDL_HINT_EVENT_LOGGING: Hint = Hint {
948    name: "SDL_HINT_EVENT_LOGGING",
949    value: "SDL_EVENT_LOGGING",
950    doc: "/**\n* A variable controlling verbosity of the logging of SDL events pushed onto\n* the internal queue.\n*\n* The variable can be set to the following values, from least to most\n* verbose:\n*\n* - \"0\": Don't log any events. (default)\n* - \"1\": Log most events (other than the really spammy ones).\n* - \"2\": Include mouse and finger motion events.\n*\n* This is generally meant to be used to debug SDL itself, but can be useful\n* for application developers that need better visibility into what is going\n* on in the event queue. Logged events are sent through SDL_Log(), which\n* means by default they appear on stdout on most platforms or maybe\n* OutputDebugString() on Windows, and can be funneled by the app with\n* SDL_SetLogOutputFunction(), etc.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
951};
952/**
953* A variable controlling whether raising the window should be done more
954* forcefully.
955*
956* The variable can be set to the following values:
957*
958* - "0": Honor the OS policy for raising windows. (default)
959* - "1": Force the window to be raised, overriding any OS policy.
960*
961* At present, this is only an issue under MS Windows, which makes it nearly
962* impossible to programmatically move a window to the foreground, for
963* "security" reasons. See http://stackoverflow.com/a/34414846 for a
964* discussion.
965*
966* This hint can be set anytime.
967*
968* \since This hint is available since SDL 3.2.0.
969*/
970pub const SDL_HINT_FORCE_RAISEWINDOW: Hint = Hint {
971    name: "SDL_HINT_FORCE_RAISEWINDOW",
972    value: "SDL_FORCE_RAISEWINDOW",
973    doc: "/**\n* A variable controlling whether raising the window should be done more\n* forcefully.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Honor the OS policy for raising windows. (default)\n* - \"1\": Force the window to be raised, overriding any OS policy.\n*\n* At present, this is only an issue under MS Windows, which makes it nearly\n* impossible to programmatically move a window to the foreground, for\n* \"security\" reasons. See http://stackoverflow.com/a/34414846 for a\n* discussion.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
974};
975/**
976* A variable controlling how 3D acceleration is used to accelerate the SDL
977* screen surface.
978*
979* SDL can try to accelerate the SDL screen surface by using streaming
980* textures with a 3D rendering engine. This variable controls whether and how
981* this is done.
982*
983* The variable can be set to the following values:
984*
985* - "0": Disable 3D acceleration
986* - "1": Enable 3D acceleration, using the default renderer. (default)
987* - "X": Enable 3D acceleration, using X where X is one of the valid
988*   rendering drivers. (e.g. "direct3d", "opengl", etc.)
989*
990* This hint should be set before calling SDL_GetWindowSurface()
991*
992* \since This hint is available since SDL 3.2.0.
993*/
994pub const SDL_HINT_FRAMEBUFFER_ACCELERATION: Hint = Hint {
995    name: "SDL_HINT_FRAMEBUFFER_ACCELERATION",
996    value: "SDL_FRAMEBUFFER_ACCELERATION",
997    doc: "/**\n* A variable controlling how 3D acceleration is used to accelerate the SDL\n* screen surface.\n*\n* SDL can try to accelerate the SDL screen surface by using streaming\n* textures with a 3D rendering engine. This variable controls whether and how\n* this is done.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Disable 3D acceleration\n* - \"1\": Enable 3D acceleration, using the default renderer. (default)\n* - \"X\": Enable 3D acceleration, using X where X is one of the valid\n*   rendering drivers. (e.g. \"direct3d\", \"opengl\", etc.)\n*\n* This hint should be set before calling SDL_GetWindowSurface()\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
998};
999/**
1000* A variable that lets you manually hint extra gamecontroller db entries.
1001*
1002* The variable should be newline delimited rows of gamecontroller config
1003* data, see SDL_gamepad.h
1004*
1005* You can update mappings after SDL is initialized with
1006* SDL_GetGamepadMappingForGUID() and SDL_AddGamepadMapping()
1007*
1008* This hint should be set before SDL is initialized.
1009*
1010* \since This hint is available since SDL 3.2.0.
1011*/
1012pub const SDL_HINT_GAMECONTROLLERCONFIG: Hint = Hint {
1013    name: "SDL_HINT_GAMECONTROLLERCONFIG",
1014    value: "SDL_GAMECONTROLLERCONFIG",
1015    doc: "/**\n* A variable that lets you manually hint extra gamecontroller db entries.\n*\n* The variable should be newline delimited rows of gamecontroller config\n* data, see SDL_gamepad.h\n*\n* You can update mappings after SDL is initialized with\n* SDL_GetGamepadMappingForGUID() and SDL_AddGamepadMapping()\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1016};
1017/**
1018* A variable that lets you provide a file with extra gamecontroller db
1019* entries.
1020*
1021* The file should contain lines of gamecontroller config data, see
1022* SDL_gamepad.h
1023*
1024* You can update mappings after SDL is initialized with
1025* SDL_GetGamepadMappingForGUID() and SDL_AddGamepadMapping()
1026*
1027* This hint should be set before SDL is initialized.
1028*
1029* \since This hint is available since SDL 3.2.0.
1030*/
1031pub const SDL_HINT_GAMECONTROLLERCONFIG_FILE: Hint = Hint {
1032    name: "SDL_HINT_GAMECONTROLLERCONFIG_FILE",
1033    value: "SDL_GAMECONTROLLERCONFIG_FILE",
1034    doc: "/**\n* A variable that lets you provide a file with extra gamecontroller db\n* entries.\n*\n* The file should contain lines of gamecontroller config data, see\n* SDL_gamepad.h\n*\n* You can update mappings after SDL is initialized with\n* SDL_GetGamepadMappingForGUID() and SDL_AddGamepadMapping()\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1035};
1036/**
1037* A variable that overrides the automatic controller type detection.
1038*
1039* The variable should be comma separated entries, in the form: VID/PID=type
1040*
1041* The VID and PID should be hexadecimal with exactly 4 digits, e.g. 0x00fd
1042*
1043* This hint affects what low level protocol is used with the HIDAPI driver.
1044*
1045* The variable can be set to the following values:
1046*
1047* - "Xbox360"
1048* - "XboxOne"
1049* - "PS3"
1050* - "PS4"
1051* - "PS5"
1052* - "SwitchPro"
1053*
1054* This hint should be set before SDL is initialized.
1055*
1056* \since This hint is available since SDL 3.2.0.
1057*/
1058pub const SDL_HINT_GAMECONTROLLERTYPE: Hint = Hint {
1059    name: "SDL_HINT_GAMECONTROLLERTYPE",
1060    value: "SDL_GAMECONTROLLERTYPE",
1061    doc: "/**\n* A variable that overrides the automatic controller type detection.\n*\n* The variable should be comma separated entries, in the form: VID/PID=type\n*\n* The VID and PID should be hexadecimal with exactly 4 digits, e.g. 0x00fd\n*\n* This hint affects what low level protocol is used with the HIDAPI driver.\n*\n* The variable can be set to the following values:\n*\n* - \"Xbox360\"\n* - \"XboxOne\"\n* - \"PS3\"\n* - \"PS4\"\n* - \"PS5\"\n* - \"SwitchPro\"\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1062};
1063/**
1064* A variable containing a list of devices to skip when scanning for game
1065* controllers.
1066*
1067* The format of the string is a comma separated list of USB VID/PID pairs in
1068* hexadecimal form, e.g.
1069*
1070* 0xAAAA/0xBBBB,0xCCCC/0xDDDD
1071*
1072* The variable can also take the form of "@file", in which case the named
1073* file will be loaded and interpreted as the value of the variable.
1074*
1075* This hint can be set anytime.
1076*
1077* \since This hint is available since SDL 3.2.0.
1078*/
1079pub const SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES: Hint = Hint {
1080    name: "SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES",
1081    value: "SDL_GAMECONTROLLER_IGNORE_DEVICES",
1082    doc: "/**\n* A variable containing a list of devices to skip when scanning for game\n* controllers.\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* 0xAAAA/0xBBBB,0xCCCC/0xDDDD\n*\n* The variable can also take the form of \"@file\", in which case the named\n* file will be loaded and interpreted as the value of the variable.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1083};
1084/**
1085* If set, all devices will be skipped when scanning for game controllers
1086* except for the ones listed in this variable.
1087*
1088* The format of the string is a comma separated list of USB VID/PID pairs in
1089* hexadecimal form, e.g.
1090*
1091* 0xAAAA/0xBBBB,0xCCCC/0xDDDD
1092*
1093* The variable can also take the form of "@file", in which case the named
1094* file will be loaded and interpreted as the value of the variable.
1095*
1096* This hint can be set anytime.
1097*
1098* \since This hint is available since SDL 3.2.0.
1099*/
1100pub const SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT: Hint = Hint {
1101    name: "SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT",
1102    value: "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT",
1103    doc: "/**\n* If set, all devices will be skipped when scanning for game controllers\n* except for the ones listed in this variable.\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* 0xAAAA/0xBBBB,0xCCCC/0xDDDD\n*\n* The variable can also take the form of \"@file\", in which case the named\n* file will be loaded and interpreted as the value of the variable.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1104};
1105/**
1106* A variable that controls whether the device's built-in accelerometer and
1107* gyro should be used as sensors for gamepads.
1108*
1109* The variable can be set to the following values:
1110*
1111* - "0": Sensor fusion is disabled
1112* - "1": Sensor fusion is enabled for all controllers that lack sensors
1113*
1114* Or the variable can be a comma separated list of USB VID/PID pairs in
1115* hexadecimal form, e.g.
1116*
1117* 0xAAAA/0xBBBB,0xCCCC/0xDDDD
1118*
1119* The variable can also take the form of "@file", in which case the named
1120* file will be loaded and interpreted as the value of the variable.
1121*
1122* This hint should be set before a gamepad is opened.
1123*
1124* \since This hint is available since SDL 3.2.0.
1125*/
1126pub const SDL_HINT_GAMECONTROLLER_SENSOR_FUSION: Hint = Hint {
1127    name: "SDL_HINT_GAMECONTROLLER_SENSOR_FUSION",
1128    value: "SDL_GAMECONTROLLER_SENSOR_FUSION",
1129    doc: "/**\n* A variable that controls whether the device's built-in accelerometer and\n* gyro should be used as sensors for gamepads.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Sensor fusion is disabled\n* - \"1\": Sensor fusion is enabled for all controllers that lack sensors\n*\n* Or the variable can be a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* 0xAAAA/0xBBBB,0xCCCC/0xDDDD\n*\n* The variable can also take the form of \"@file\", in which case the named\n* file will be loaded and interpreted as the value of the variable.\n*\n* This hint should be set before a gamepad is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1130};
1131/**
1132* This variable sets the default text of the TextInput window on GDK
1133* platforms.
1134*
1135* This hint is available only if SDL_GDK_TEXTINPUT defined.
1136*
1137* This hint should be set before calling SDL_StartTextInput()
1138*
1139* \since This hint is available since SDL 3.2.0.
1140*/
1141pub const SDL_HINT_GDK_TEXTINPUT_DEFAULT_TEXT: Hint = Hint {
1142    name: "SDL_HINT_GDK_TEXTINPUT_DEFAULT_TEXT",
1143    value: "SDL_GDK_TEXTINPUT_DEFAULT_TEXT",
1144    doc: "/**\n* This variable sets the default text of the TextInput window on GDK\n* platforms.\n*\n* This hint is available only if SDL_GDK_TEXTINPUT defined.\n*\n* This hint should be set before calling SDL_StartTextInput()\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1145};
1146/**
1147* This variable sets the description of the TextInput window on GDK
1148* platforms.
1149*
1150* This hint is available only if SDL_GDK_TEXTINPUT defined.
1151*
1152* This hint should be set before calling SDL_StartTextInput()
1153*
1154* \since This hint is available since SDL 3.2.0.
1155*/
1156pub const SDL_HINT_GDK_TEXTINPUT_DESCRIPTION: Hint = Hint {
1157    name: "SDL_HINT_GDK_TEXTINPUT_DESCRIPTION",
1158    value: "SDL_GDK_TEXTINPUT_DESCRIPTION",
1159    doc: "/**\n* This variable sets the description of the TextInput window on GDK\n* platforms.\n*\n* This hint is available only if SDL_GDK_TEXTINPUT defined.\n*\n* This hint should be set before calling SDL_StartTextInput()\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1160};
1161/**
1162* This variable sets the maximum input length of the TextInput window on GDK
1163* platforms.
1164*
1165* The value must be a stringified integer, for example "10" to allow for up
1166* to 10 characters of text input.
1167*
1168* This hint is available only if SDL_GDK_TEXTINPUT defined.
1169*
1170* This hint should be set before calling SDL_StartTextInput()
1171*
1172* \since This hint is available since SDL 3.2.0.
1173*/
1174pub const SDL_HINT_GDK_TEXTINPUT_MAX_LENGTH: Hint = Hint {
1175    name: "SDL_HINT_GDK_TEXTINPUT_MAX_LENGTH",
1176    value: "SDL_GDK_TEXTINPUT_MAX_LENGTH",
1177    doc: "/**\n* This variable sets the maximum input length of the TextInput window on GDK\n* platforms.\n*\n* The value must be a stringified integer, for example \"10\" to allow for up\n* to 10 characters of text input.\n*\n* This hint is available only if SDL_GDK_TEXTINPUT defined.\n*\n* This hint should be set before calling SDL_StartTextInput()\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1178};
1179/**
1180* This variable sets the input scope of the TextInput window on GDK
1181* platforms.
1182*
1183* Set this hint to change the XGameUiTextEntryInputScope value that will be
1184* passed to the window creation function. The value must be a stringified
1185* integer, for example "0" for XGameUiTextEntryInputScope::Default.
1186*
1187* This hint is available only if SDL_GDK_TEXTINPUT defined.
1188*
1189* This hint should be set before calling SDL_StartTextInput()
1190*
1191* \since This hint is available since SDL 3.2.0.
1192*/
1193pub const SDL_HINT_GDK_TEXTINPUT_SCOPE: Hint = Hint {
1194    name: "SDL_HINT_GDK_TEXTINPUT_SCOPE",
1195    value: "SDL_GDK_TEXTINPUT_SCOPE",
1196    doc: "/**\n* This variable sets the input scope of the TextInput window on GDK\n* platforms.\n*\n* Set this hint to change the XGameUiTextEntryInputScope value that will be\n* passed to the window creation function. The value must be a stringified\n* integer, for example \"0\" for XGameUiTextEntryInputScope::Default.\n*\n* This hint is available only if SDL_GDK_TEXTINPUT defined.\n*\n* This hint should be set before calling SDL_StartTextInput()\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1197};
1198/**
1199* This variable sets the title of the TextInput window on GDK platforms.
1200*
1201* This hint is available only if SDL_GDK_TEXTINPUT defined.
1202*
1203* This hint should be set before calling SDL_StartTextInput()
1204*
1205* \since This hint is available since SDL 3.2.0.
1206*/
1207pub const SDL_HINT_GDK_TEXTINPUT_TITLE: Hint = Hint {
1208    name: "SDL_HINT_GDK_TEXTINPUT_TITLE",
1209    value: "SDL_GDK_TEXTINPUT_TITLE",
1210    doc: "/**\n* This variable sets the title of the TextInput window on GDK platforms.\n*\n* This hint is available only if SDL_GDK_TEXTINPUT defined.\n*\n* This hint should be set before calling SDL_StartTextInput()\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1211};
1212/**
1213* A variable to control whether HIDAPI uses libusb for device access.
1214*
1215* By default libusb will only be used for a few devices that require direct
1216* USB access, and this can be controlled with
1217* SDL_HINT_HIDAPI_LIBUSB_WHITELIST.
1218*
1219* The variable can be set to the following values:
1220*
1221* - "0": HIDAPI will not use libusb for device access.
1222* - "1": HIDAPI will use libusb for device access if available. (default)
1223*
1224* This hint should be set before SDL is initialized.
1225*
1226* \since This hint is available since SDL 3.2.0.
1227*/
1228pub const SDL_HINT_HIDAPI_LIBUSB: Hint = Hint {
1229    name: "SDL_HINT_HIDAPI_LIBUSB",
1230    value: "SDL_HIDAPI_LIBUSB",
1231    doc: "/**\n* A variable to control whether HIDAPI uses libusb for device access.\n*\n* By default libusb will only be used for a few devices that require direct\n* USB access, and this can be controlled with\n* SDL_HINT_HIDAPI_LIBUSB_WHITELIST.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI will not use libusb for device access.\n* - \"1\": HIDAPI will use libusb for device access if available. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1232};
1233/**
1234* A variable to control whether HIDAPI uses libusb for GameCube adapters.
1235*
1236* The variable can be set to the following values:
1237*
1238* - "0": HIDAPI will not use libusb for GameCube adapters.
1239* - "1": HIDAPI will use libusb for GameCube adapters if available. (default)
1240*
1241* This hint should be set before SDL is initialized.
1242*
1243* \since This hint is available since SDL 3.4.0.
1244*/
1245pub const SDL_HINT_HIDAPI_LIBUSB_GAMECUBE: Hint = Hint {
1246    name: "SDL_HINT_HIDAPI_LIBUSB_GAMECUBE",
1247    value: "SDL_HIDAPI_LIBUSB_GAMECUBE",
1248    doc: "/**\n* A variable to control whether HIDAPI uses libusb for GameCube adapters.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI will not use libusb for GameCube adapters.\n* - \"1\": HIDAPI will use libusb for GameCube adapters if available. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
1249};
1250/**
1251* A variable to control whether HIDAPI uses libusb only for whitelisted
1252* devices.
1253*
1254* By default libusb will only be used for a few devices that require direct
1255* USB access.
1256*
1257* The variable can be set to the following values:
1258*
1259* - "0": HIDAPI will use libusb for all device access.
1260* - "1": HIDAPI will use libusb only for whitelisted devices. (default)
1261*
1262* This hint should be set before SDL is initialized.
1263*
1264* \since This hint is available since SDL 3.2.0.
1265*/
1266pub const SDL_HINT_HIDAPI_LIBUSB_WHITELIST: Hint = Hint {
1267    name: "SDL_HINT_HIDAPI_LIBUSB_WHITELIST",
1268    value: "SDL_HIDAPI_LIBUSB_WHITELIST",
1269    doc: "/**\n* A variable to control whether HIDAPI uses libusb only for whitelisted\n* devices.\n*\n* By default libusb will only be used for a few devices that require direct\n* USB access.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI will use libusb for all device access.\n* - \"1\": HIDAPI will use libusb only for whitelisted devices. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1270};
1271/**
1272* A variable to control whether HIDAPI uses udev for device detection.
1273*
1274* The variable can be set to the following values:
1275*
1276* - "0": HIDAPI will poll for device changes.
1277* - "1": HIDAPI will use udev for device detection. (default)
1278*
1279* This hint should be set before SDL is initialized.
1280*
1281* \since This hint is available since SDL 3.2.0.
1282*/
1283pub const SDL_HINT_HIDAPI_UDEV: Hint = Hint {
1284    name: "SDL_HINT_HIDAPI_UDEV",
1285    value: "SDL_HIDAPI_UDEV",
1286    doc: "/**\n* A variable to control whether HIDAPI uses udev for device detection.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI will poll for device changes.\n* - \"1\": HIDAPI will use udev for device detection. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1287};
1288/**
1289* A variable that specifies a GPU backend to use.
1290*
1291* By default, SDL will try all available GPU backends in a reasonable order
1292* until it finds one that can work, but this hint allows the app or user to
1293* force a specific target, such as "direct3d12" if, say, your hardware
1294* supports Vulkan but you want to try using D3D12 instead.
1295*
1296* This hint should be set before any GPU functions are called.
1297*
1298* \since This hint is available since SDL 3.2.0.
1299*/
1300pub const SDL_HINT_GPU_DRIVER: Hint = Hint {
1301    name: "SDL_HINT_GPU_DRIVER",
1302    value: "SDL_GPU_DRIVER",
1303    doc: "/**\n* A variable that specifies a GPU backend to use.\n*\n* By default, SDL will try all available GPU backends in a reasonable order\n* until it finds one that can work, but this hint allows the app or user to\n* force a specific target, such as \"direct3d12\" if, say, your hardware\n* supports Vulkan but you want to try using D3D12 instead.\n*\n* This hint should be set before any GPU functions are called.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1304};
1305/**
1306* A variable that specifies the library name to use when loading the OpenXR
1307* loader.
1308*
1309* By default, SDL will try the system default name, but on some platforms
1310* like Windows, debug builds of the OpenXR loader have a different name, and
1311* are not always directly compatible with release applications. Setting this
1312* hint allows you to compensate for this difference in your app when
1313* applicable.
1314*
1315* This hint should be set before the OpenXR loader is loaded. For example,
1316* creating an OpenXR GPU device will load the OpenXR loader.
1317*/
1318pub const SDL_HINT_OPENXR_LIBRARY: Hint = Hint {
1319    name: "SDL_HINT_OPENXR_LIBRARY",
1320    value: "SDL_OPENXR_LIBRARY",
1321    doc: "/**\n* A variable that specifies the library name to use when loading the OpenXR\n* loader.\n*\n* By default, SDL will try the system default name, but on some platforms\n* like Windows, debug builds of the OpenXR loader have a different name, and\n* are not always directly compatible with release applications. Setting this\n* hint allows you to compensate for this difference in your app when\n* applicable.\n*\n* This hint should be set before the OpenXR loader is loaded. For example,\n* creating an OpenXR GPU device will load the OpenXR loader.\n*/\n",
1322};
1323/**
1324* A variable to control whether SDL_hid_enumerate() enumerates all HID
1325* devices or only controllers.
1326*
1327* The variable can be set to the following values:
1328*
1329* - "0": SDL_hid_enumerate() will enumerate all HID devices.
1330* - "1": SDL_hid_enumerate() will only enumerate controllers. (default)
1331*
1332* By default SDL will only enumerate controllers, to reduce risk of hanging
1333* or crashing on devices with bad drivers and avoiding macOS keyboard capture
1334* permission prompts.
1335*
1336* This hint can be set anytime.
1337*
1338* \since This hint is available since SDL 3.2.0.
1339*/
1340pub const SDL_HINT_HIDAPI_ENUMERATE_ONLY_CONTROLLERS: Hint = Hint {
1341    name: "SDL_HINT_HIDAPI_ENUMERATE_ONLY_CONTROLLERS",
1342    value: "SDL_HIDAPI_ENUMERATE_ONLY_CONTROLLERS",
1343    doc: "/**\n* A variable to control whether SDL_hid_enumerate() enumerates all HID\n* devices or only controllers.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": SDL_hid_enumerate() will enumerate all HID devices.\n* - \"1\": SDL_hid_enumerate() will only enumerate controllers. (default)\n*\n* By default SDL will only enumerate controllers, to reduce risk of hanging\n* or crashing on devices with bad drivers and avoiding macOS keyboard capture\n* permission prompts.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1344};
1345/**
1346* A variable containing a list of devices to ignore in SDL_hid_enumerate().
1347*
1348* The format of the string is a comma separated list of USB VID/PID pairs in
1349* hexadecimal form, e.g.
1350*
1351* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`
1352*
1353* For example, to ignore the Shanwan DS3 controller and any Valve controller,
1354* you might use the string "0x2563/0x0523,0x28de/0x0000"
1355*
1356* This hint can be set anytime.
1357*
1358* \since This hint is available since SDL 3.2.0.
1359*/
1360pub const SDL_HINT_HIDAPI_IGNORE_DEVICES: Hint = Hint {
1361    name: "SDL_HINT_HIDAPI_IGNORE_DEVICES",
1362    value: "SDL_HIDAPI_IGNORE_DEVICES",
1363    doc: "/**\n* A variable containing a list of devices to ignore in SDL_hid_enumerate().\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`\n*\n* For example, to ignore the Shanwan DS3 controller and any Valve controller,\n* you might use the string \"0x2563/0x0523,0x28de/0x0000\"\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1364};
1365/**
1366* A variable describing what IME UI elements the application can display.
1367*
1368* By default IME UI is handled using native components by the OS where
1369* possible, however this can interfere with or not be visible when exclusive
1370* fullscreen mode is used.
1371*
1372* The variable can be set to a comma separated list containing the following
1373* items:
1374*
1375* - "none" or "0": The application can't render any IME elements, and native
1376*   UI should be used. (default)
1377* - "composition": The application handles SDL_EVENT_TEXT_EDITING events and
1378*   can render the composition text.
1379* - "candidates": The application handles SDL_EVENT_TEXT_EDITING_CANDIDATES
1380*   and can render the candidate list.
1381*
1382* This hint should be set before SDL is initialized.
1383*
1384* \since This hint is available since SDL 3.2.0.
1385*/
1386pub const SDL_HINT_IME_IMPLEMENTED_UI: Hint = Hint {
1387    name: "SDL_HINT_IME_IMPLEMENTED_UI",
1388    value: "SDL_IME_IMPLEMENTED_UI",
1389    doc: "/**\n* A variable describing what IME UI elements the application can display.\n*\n* By default IME UI is handled using native components by the OS where\n* possible, however this can interfere with or not be visible when exclusive\n* fullscreen mode is used.\n*\n* The variable can be set to a comma separated list containing the following\n* items:\n*\n* - \"none\" or \"0\": The application can't render any IME elements, and native\n*   UI should be used. (default)\n* - \"composition\": The application handles SDL_EVENT_TEXT_EDITING events and\n*   can render the composition text.\n* - \"candidates\": The application handles SDL_EVENT_TEXT_EDITING_CANDIDATES\n*   and can render the candidate list.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1390};
1391/**
1392* A variable controlling whether the home indicator bar on iPhone X and later
1393* should be hidden.
1394*
1395* The variable can be set to the following values:
1396*
1397* - "0": The indicator bar is not hidden. (default for windowed applications)
1398* - "1": The indicator bar is hidden and is shown when the screen is touched
1399*   (useful for movie playback applications).
1400* - "2": The indicator bar is dim and the first swipe makes it visible and
1401*   the second swipe performs the "home" action. (default for fullscreen
1402*   applications)
1403*
1404* This hint can be set anytime.
1405*
1406* \since This hint is available since SDL 3.2.0.
1407*/
1408pub const SDL_HINT_IOS_HIDE_HOME_INDICATOR: Hint = Hint {
1409    name: "SDL_HINT_IOS_HIDE_HOME_INDICATOR",
1410    value: "SDL_IOS_HIDE_HOME_INDICATOR",
1411    doc: "/**\n* A variable controlling whether the home indicator bar on iPhone X and later\n* should be hidden.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": The indicator bar is not hidden. (default for windowed applications)\n* - \"1\": The indicator bar is hidden and is shown when the screen is touched\n*   (useful for movie playback applications).\n* - \"2\": The indicator bar is dim and the first swipe makes it visible and\n*   the second swipe performs the \"home\" action. (default for fullscreen\n*   applications)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1412};
1413/**
1414* A variable that lets you enable joystick (and gamecontroller) events even
1415* when your app is in the background.
1416*
1417* The variable can be set to the following values:
1418*
1419* - "0": Disable joystick & gamecontroller input events when the application
1420*   is in the background. (default)
1421* - "1": Enable joystick & gamecontroller input events when the application
1422*   is in the background.
1423*
1424* This hint can be set anytime.
1425*
1426* \since This hint is available since SDL 3.2.0.
1427*/
1428pub const SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS: Hint = Hint {
1429    name: "SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS",
1430    value: "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS",
1431    doc: "/**\n* A variable that lets you enable joystick (and gamecontroller) events even\n* when your app is in the background.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Disable joystick & gamecontroller input events when the application\n*   is in the background. (default)\n* - \"1\": Enable joystick & gamecontroller input events when the application\n*   is in the background.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1432};
1433/**
1434* A variable containing a list of arcade stick style controllers.
1435*
1436* The format of the string is a comma separated list of USB VID/PID pairs in
1437* hexadecimal form, e.g.
1438*
1439* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`
1440*
1441* The variable can also take the form of "@file", in which case the named
1442* file will be loaded and interpreted as the value of the variable.
1443*
1444* This hint can be set anytime.
1445*
1446* \since This hint is available since SDL 3.2.0.
1447*/
1448pub const SDL_HINT_JOYSTICK_ARCADESTICK_DEVICES: Hint = Hint {
1449    name: "SDL_HINT_JOYSTICK_ARCADESTICK_DEVICES",
1450    value: "SDL_JOYSTICK_ARCADESTICK_DEVICES",
1451    doc: "/**\n* A variable containing a list of arcade stick style controllers.\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`\n*\n* The variable can also take the form of \"@file\", in which case the named\n* file will be loaded and interpreted as the value of the variable.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1452};
1453/**
1454* A variable containing a list of devices that are not arcade stick style
1455* controllers.
1456*
1457* This will override SDL_HINT_JOYSTICK_ARCADESTICK_DEVICES and the built in
1458* device list.
1459*
1460* The format of the string is a comma separated list of USB VID/PID pairs in
1461* hexadecimal form, e.g.
1462*
1463* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`
1464*
1465* The variable can also take the form of "@file", in which case the named
1466* file will be loaded and interpreted as the value of the variable.
1467*
1468* This hint can be set anytime.
1469*
1470* \since This hint is available since SDL 3.2.0.
1471*/
1472pub const SDL_HINT_JOYSTICK_ARCADESTICK_DEVICES_EXCLUDED: Hint = Hint {
1473    name: "SDL_HINT_JOYSTICK_ARCADESTICK_DEVICES_EXCLUDED",
1474    value: "SDL_JOYSTICK_ARCADESTICK_DEVICES_EXCLUDED",
1475    doc: "/**\n* A variable containing a list of devices that are not arcade stick style\n* controllers.\n*\n* This will override SDL_HINT_JOYSTICK_ARCADESTICK_DEVICES and the built in\n* device list.\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`\n*\n* The variable can also take the form of \"@file\", in which case the named\n* file will be loaded and interpreted as the value of the variable.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1476};
1477/**
1478* A variable containing a list of devices that should not be considered
1479* joysticks.
1480*
1481* The format of the string is a comma separated list of USB VID/PID pairs in
1482* hexadecimal form, e.g.
1483*
1484* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`
1485*
1486* The variable can also take the form of "@file", in which case the named
1487* file will be loaded and interpreted as the value of the variable.
1488*
1489* This hint can be set anytime.
1490*
1491* \since This hint is available since SDL 3.2.0.
1492*/
1493pub const SDL_HINT_JOYSTICK_BLACKLIST_DEVICES: Hint = Hint {
1494    name: "SDL_HINT_JOYSTICK_BLACKLIST_DEVICES",
1495    value: "SDL_JOYSTICK_BLACKLIST_DEVICES",
1496    doc: "/**\n* A variable containing a list of devices that should not be considered\n* joysticks.\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`\n*\n* The variable can also take the form of \"@file\", in which case the named\n* file will be loaded and interpreted as the value of the variable.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1497};
1498/**
1499* A variable containing a list of devices that should be considered
1500* joysticks.
1501*
1502* This will override SDL_HINT_JOYSTICK_BLACKLIST_DEVICES and the built in
1503* device list.
1504*
1505* The format of the string is a comma separated list of USB VID/PID pairs in
1506* hexadecimal form, e.g.
1507*
1508* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`
1509*
1510* The variable can also take the form of "@file", in which case the named
1511* file will be loaded and interpreted as the value of the variable.
1512*
1513* This hint can be set anytime.
1514*
1515* \since This hint is available since SDL 3.2.0.
1516*/
1517pub const SDL_HINT_JOYSTICK_BLACKLIST_DEVICES_EXCLUDED: Hint = Hint {
1518    name: "SDL_HINT_JOYSTICK_BLACKLIST_DEVICES_EXCLUDED",
1519    value: "SDL_JOYSTICK_BLACKLIST_DEVICES_EXCLUDED",
1520    doc: "/**\n* A variable containing a list of devices that should be considered\n* joysticks.\n*\n* This will override SDL_HINT_JOYSTICK_BLACKLIST_DEVICES and the built in\n* device list.\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`\n*\n* The variable can also take the form of \"@file\", in which case the named\n* file will be loaded and interpreted as the value of the variable.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1521};
1522/**
1523* A variable containing a comma separated list of devices to open as
1524* joysticks.
1525*
1526* This variable is currently only used by the Linux joystick driver.
1527*
1528* \since This hint is available since SDL 3.2.0.
1529*/
1530pub const SDL_HINT_JOYSTICK_DEVICE: Hint = Hint {
1531    name: "SDL_HINT_JOYSTICK_DEVICE",
1532    value: "SDL_JOYSTICK_DEVICE",
1533    doc: "/**\n* A variable containing a comma separated list of devices to open as\n* joysticks.\n*\n* This variable is currently only used by the Linux joystick driver.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1534};
1535/**
1536* A variable containing a list of drum style controllers.
1537*
1538* The format of the string is a comma separated list of USB VID/PID pairs in
1539* hexadecimal form, e.g.
1540*
1541* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`
1542*
1543* The variable can also take the form of "@file", in which case the named
1544* file will be loaded and interpreted as the value of the variable.
1545*
1546* This hint can be set anytime.
1547*
1548* \since This hint is available since SDL 3.4.4.
1549*/
1550pub const SDL_HINT_JOYSTICK_DRUM_DEVICES: Hint = Hint {
1551    name: "SDL_HINT_JOYSTICK_DRUM_DEVICES",
1552    value: "SDL_JOYSTICK_DRUM_DEVICES",
1553    doc: "/**\n* A variable containing a list of drum style controllers.\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`\n*\n* The variable can also take the form of \"@file\", in which case the named\n* file will be loaded and interpreted as the value of the variable.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.4.4.\n*/\n",
1554};
1555/**
1556* A variable controlling whether enhanced reports should be used for
1557* controllers when using the HIDAPI driver.
1558*
1559* Enhanced reports allow rumble and effects on Bluetooth PlayStation
1560* controllers and gyro on Nintendo Switch controllers, but break Windows
1561* DirectInput for other applications that don't use SDL.
1562*
1563* Once enhanced reports are enabled, they can't be disabled on PlayStation
1564* controllers without power cycling the controller.
1565*
1566* The variable can be set to the following values:
1567*
1568* - "0": enhanced reports are not enabled.
1569* - "1": enhanced reports are enabled. (default)
1570* - "auto": enhanced features are advertised to the application, but SDL
1571*   doesn't change the controller report mode unless the application uses
1572*   them.
1573*
1574* This hint can be enabled anytime.
1575*
1576* \since This hint is available since SDL 3.2.0.
1577*/
1578pub const SDL_HINT_JOYSTICK_ENHANCED_REPORTS: Hint = Hint {
1579    name: "SDL_HINT_JOYSTICK_ENHANCED_REPORTS",
1580    value: "SDL_JOYSTICK_ENHANCED_REPORTS",
1581    doc: "/**\n* A variable controlling whether enhanced reports should be used for\n* controllers when using the HIDAPI driver.\n*\n* Enhanced reports allow rumble and effects on Bluetooth PlayStation\n* controllers and gyro on Nintendo Switch controllers, but break Windows\n* DirectInput for other applications that don't use SDL.\n*\n* Once enhanced reports are enabled, they can't be disabled on PlayStation\n* controllers without power cycling the controller.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": enhanced reports are not enabled.\n* - \"1\": enhanced reports are enabled. (default)\n* - \"auto\": enhanced features are advertised to the application, but SDL\n*   doesn't change the controller report mode unless the application uses\n*   them.\n*\n* This hint can be enabled anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1582};
1583/**
1584* A variable containing a list of flightstick style controllers.
1585*
1586* The format of the string is a comma separated list of USB VID/PID pairs in
1587* hexadecimal form, e.g.
1588*
1589* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`
1590*
1591* The variable can also take the form of @file, in which case the named file
1592* will be loaded and interpreted as the value of the variable.
1593*
1594* This hint can be set anytime.
1595*
1596* \since This hint is available since SDL 3.2.0.
1597*/
1598pub const SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES: Hint = Hint {
1599    name: "SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES",
1600    value: "SDL_JOYSTICK_FLIGHTSTICK_DEVICES",
1601    doc: "/**\n* A variable containing a list of flightstick style controllers.\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`\n*\n* The variable can also take the form of @file, in which case the named file\n* will be loaded and interpreted as the value of the variable.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1602};
1603/**
1604* A variable containing a list of devices that are not flightstick style
1605* controllers.
1606*
1607* This will override SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES and the built in
1608* device list.
1609*
1610* The format of the string is a comma separated list of USB VID/PID pairs in
1611* hexadecimal form, e.g.
1612*
1613* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`
1614*
1615* The variable can also take the form of "@file", in which case the named
1616* file will be loaded and interpreted as the value of the variable.
1617*
1618* This hint can be set anytime.
1619*
1620* \since This hint is available since SDL 3.2.0.
1621*/
1622pub const SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED: Hint = Hint {
1623    name: "SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED",
1624    value: "SDL_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED",
1625    doc: "/**\n* A variable containing a list of devices that are not flightstick style\n* controllers.\n*\n* This will override SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES and the built in\n* device list.\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`\n*\n* The variable can also take the form of \"@file\", in which case the named\n* file will be loaded and interpreted as the value of the variable.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1626};
1627/**
1628* A variable controlling whether GameInput should be used for controller
1629* handling on Windows.
1630*
1631* The variable can be set to the following values:
1632*
1633* - "0": GameInput is not used.
1634* - "1": GameInput is used.
1635*
1636* The default is "1" on GDK platforms, and "0" otherwise.
1637*
1638* This hint should be set before SDL is initialized.
1639*
1640* \since This hint is available since SDL 3.2.0.
1641*/
1642pub const SDL_HINT_JOYSTICK_GAMEINPUT: Hint = Hint {
1643    name: "SDL_HINT_JOYSTICK_GAMEINPUT",
1644    value: "SDL_JOYSTICK_GAMEINPUT",
1645    doc: "/**\n* A variable controlling whether GameInput should be used for controller\n* handling on Windows.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": GameInput is not used.\n* - \"1\": GameInput is used.\n*\n* The default is \"1\" on GDK platforms, and \"0\" otherwise.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1646};
1647/**
1648* A variable containing a list of devices known to have a GameCube form
1649* factor.
1650*
1651* The format of the string is a comma separated list of USB VID/PID pairs in
1652* hexadecimal form, e.g.
1653*
1654* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`
1655*
1656* The variable can also take the form of "@file", in which case the named
1657* file will be loaded and interpreted as the value of the variable.
1658*
1659* This hint can be set anytime.
1660*
1661* \since This hint is available since SDL 3.2.0.
1662*/
1663pub const SDL_HINT_JOYSTICK_GAMECUBE_DEVICES: Hint = Hint {
1664    name: "SDL_HINT_JOYSTICK_GAMECUBE_DEVICES",
1665    value: "SDL_JOYSTICK_GAMECUBE_DEVICES",
1666    doc: "/**\n* A variable containing a list of devices known to have a GameCube form\n* factor.\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`\n*\n* The variable can also take the form of \"@file\", in which case the named\n* file will be loaded and interpreted as the value of the variable.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1667};
1668/**
1669* A variable containing a list of devices known not to have a GameCube form
1670* factor.
1671*
1672* This will override SDL_HINT_JOYSTICK_GAMECUBE_DEVICES and the built in
1673* device list.
1674*
1675* The format of the string is a comma separated list of USB VID/PID pairs in
1676* hexadecimal form, e.g.
1677*
1678* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`
1679*
1680* The variable can also take the form of "@file", in which case the named
1681* file will be loaded and interpreted as the value of the variable.
1682*
1683* This hint can be set anytime.
1684*
1685* \since This hint is available since SDL 3.2.0.
1686*/
1687pub const SDL_HINT_JOYSTICK_GAMECUBE_DEVICES_EXCLUDED: Hint = Hint {
1688    name: "SDL_HINT_JOYSTICK_GAMECUBE_DEVICES_EXCLUDED",
1689    value: "SDL_JOYSTICK_GAMECUBE_DEVICES_EXCLUDED",
1690    doc: "/**\n* A variable containing a list of devices known not to have a GameCube form\n* factor.\n*\n* This will override SDL_HINT_JOYSTICK_GAMECUBE_DEVICES and the built in\n* device list.\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`\n*\n* The variable can also take the form of \"@file\", in which case the named\n* file will be loaded and interpreted as the value of the variable.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1691};
1692/**
1693* A variable containing a list of guitar style controllers.
1694*
1695* The format of the string is a comma separated list of USB VID/PID pairs in
1696* hexadecimal form, e.g.
1697*
1698* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`
1699*
1700* The variable can also take the form of "@file", in which case the named
1701* file will be loaded and interpreted as the value of the variable.
1702*
1703* This hint can be set anytime.
1704*
1705* \since This hint is available since SDL 3.4.4.
1706*/
1707pub const SDL_HINT_JOYSTICK_GUITAR_DEVICES: Hint = Hint {
1708    name: "SDL_HINT_JOYSTICK_GUITAR_DEVICES",
1709    value: "SDL_JOYSTICK_GUITAR_DEVICES",
1710    doc: "/**\n* A variable containing a list of guitar style controllers.\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`\n*\n* The variable can also take the form of \"@file\", in which case the named\n* file will be loaded and interpreted as the value of the variable.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.4.4.\n*/\n",
1711};
1712/**
1713* A variable controlling whether the HIDAPI joystick drivers should be used.
1714*
1715* The variable can be set to the following values:
1716*
1717* - "0": HIDAPI drivers are not used.
1718* - "1": HIDAPI drivers are used. (default)
1719*
1720* This variable is the default for all drivers, but can be overridden by the
1721* hints for specific drivers below.
1722*
1723* This hint should be set before initializing joysticks and gamepads.
1724*
1725* \since This hint is available since SDL 3.2.0.
1726*/
1727pub const SDL_HINT_JOYSTICK_HIDAPI: Hint = Hint {
1728    name: "SDL_HINT_JOYSTICK_HIDAPI",
1729    value: "SDL_JOYSTICK_HIDAPI",
1730    doc: "/**\n* A variable controlling whether the HIDAPI joystick drivers should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI drivers are not used.\n* - \"1\": HIDAPI drivers are used. (default)\n*\n* This variable is the default for all drivers, but can be overridden by the\n* hints for specific drivers below.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1731};
1732/**
1733* A variable controlling whether Nintendo Switch Joy-Con controllers will be
1734* combined into a single Pro-like controller when using the HIDAPI driver.
1735*
1736* The variable can be set to the following values:
1737*
1738* - "0": Left and right Joy-Con controllers will not be combined and each
1739*   will be a mini-gamepad.
1740* - "1": Left and right Joy-Con controllers will be combined into a single
1741*   controller. (default)
1742*
1743* This hint should be set before initializing joysticks and gamepads.
1744*
1745* \since This hint is available since SDL 3.2.0.
1746*/
1747pub const SDL_HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS: Hint = Hint {
1748    name: "SDL_HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS",
1749    value: "SDL_JOYSTICK_HIDAPI_COMBINE_JOY_CONS",
1750    doc: "/**\n* A variable controlling whether Nintendo Switch Joy-Con controllers will be\n* combined into a single Pro-like controller when using the HIDAPI driver.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Left and right Joy-Con controllers will not be combined and each\n*   will be a mini-gamepad.\n* - \"1\": Left and right Joy-Con controllers will be combined into a single\n*   controller. (default)\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1751};
1752/**
1753* A variable controlling whether the HIDAPI driver for Nintendo GameCube
1754* controllers should be used.
1755*
1756* The variable can be set to the following values:
1757*
1758* - "0": HIDAPI driver is not used.
1759* - "1": HIDAPI driver is used.
1760*
1761* The default is the value of SDL_HINT_JOYSTICK_HIDAPI
1762*
1763* This hint should be set before initializing joysticks and gamepads.
1764*
1765* \since This hint is available since SDL 3.2.0.
1766*/
1767pub const SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE: Hint = Hint {
1768    name: "SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE",
1769    value: "SDL_JOYSTICK_HIDAPI_GAMECUBE",
1770    doc: "/**\n* A variable controlling whether the HIDAPI driver for Nintendo GameCube\n* controllers should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1771};
1772/**
1773* A variable controlling whether rumble is used to implement the GameCube
1774* controller's 3 rumble modes, Stop(0), Rumble(1), and StopHard(2).
1775*
1776* This is useful for applications that need full compatibility for things
1777* like ADSR envelopes. - Stop is implemented by setting low_frequency_rumble
1778* to 0 and high_frequency_rumble >0 - Rumble is both at any arbitrary value -
1779* StopHard is implemented by setting both low_frequency_rumble and
1780* high_frequency_rumble to 0
1781*
1782* The variable can be set to the following values:
1783*
1784* - "0": Normal rumble behavior is behavior is used. (default)
1785* - "1": Proper GameCube controller rumble behavior is used.
1786*
1787* This hint can be set anytime.
1788*
1789* \since This hint is available since SDL 3.2.0.
1790*/
1791pub const SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE_RUMBLE_BRAKE: Hint = Hint {
1792    name: "SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE_RUMBLE_BRAKE",
1793    value: "SDL_JOYSTICK_HIDAPI_GAMECUBE_RUMBLE_BRAKE",
1794    doc: "/**\n* A variable controlling whether rumble is used to implement the GameCube\n* controller's 3 rumble modes, Stop(0), Rumble(1), and StopHard(2).\n*\n* This is useful for applications that need full compatibility for things\n* like ADSR envelopes. - Stop is implemented by setting low_frequency_rumble\n* to 0 and high_frequency_rumble >0 - Rumble is both at any arbitrary value -\n* StopHard is implemented by setting both low_frequency_rumble and\n* high_frequency_rumble to 0\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Normal rumble behavior is behavior is used. (default)\n* - \"1\": Proper GameCube controller rumble behavior is used.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1795};
1796/**
1797* A variable controlling whether the HIDAPI driver for Nintendo Switch
1798* Joy-Cons should be used.
1799*
1800* The variable can be set to the following values:
1801*
1802* - "0": HIDAPI driver is not used.
1803* - "1": HIDAPI driver is used.
1804*
1805* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.
1806*
1807* This hint should be set before initializing joysticks and gamepads.
1808*
1809* \since This hint is available since SDL 3.2.0.
1810*/
1811pub const SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS: Hint = Hint {
1812    name: "SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS",
1813    value: "SDL_JOYSTICK_HIDAPI_JOY_CONS",
1814    doc: "/**\n* A variable controlling whether the HIDAPI driver for Nintendo Switch\n* Joy-Cons should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1815};
1816/**
1817* A variable controlling whether the Home button LED should be turned on when
1818* a Nintendo Switch Joy-Con controller is opened.
1819*
1820* The variable can be set to the following values:
1821*
1822* - "0": home button LED is turned off
1823* - "1": home button LED is turned on
1824*
1825* By default the Home button LED state is not changed. This hint can also be
1826* set to a floating point value between 0.0 and 1.0 which controls the
1827* brightness of the Home button LED.
1828*
1829* This hint can be set anytime.
1830*
1831* \since This hint is available since SDL 3.2.0.
1832*/
1833pub const SDL_HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LED: Hint = Hint {
1834    name: "SDL_HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LED",
1835    value: "SDL_JOYSTICK_HIDAPI_JOYCON_HOME_LED",
1836    doc: "/**\n* A variable controlling whether the Home button LED should be turned on when\n* a Nintendo Switch Joy-Con controller is opened.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": home button LED is turned off\n* - \"1\": home button LED is turned on\n*\n* By default the Home button LED state is not changed. This hint can also be\n* set to a floating point value between 0.0 and 1.0 which controls the\n* brightness of the Home button LED.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1837};
1838/**
1839* A variable controlling whether the HIDAPI driver for Amazon Luna
1840* controllers connected via Bluetooth should be used.
1841*
1842* The variable can be set to the following values:
1843*
1844* - "0": HIDAPI driver is not used.
1845* - "1": HIDAPI driver is used.
1846*
1847* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.
1848*
1849* This hint should be set before initializing joysticks and gamepads.
1850*
1851* \since This hint is available since SDL 3.2.0.
1852*/
1853pub const SDL_HINT_JOYSTICK_HIDAPI_LUNA: Hint = Hint {
1854    name: "SDL_HINT_JOYSTICK_HIDAPI_LUNA",
1855    value: "SDL_JOYSTICK_HIDAPI_LUNA",
1856    doc: "/**\n* A variable controlling whether the HIDAPI driver for Amazon Luna\n* controllers connected via Bluetooth should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1857};
1858/**
1859* A variable controlling whether the HIDAPI driver for Nintendo Online
1860* classic controllers should be used.
1861*
1862* The variable can be set to the following values:
1863*
1864* - "0": HIDAPI driver is not used.
1865* - "1": HIDAPI driver is used.
1866*
1867* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.
1868*
1869* This hint should be set before initializing joysticks and gamepads.
1870*
1871* \since This hint is available since SDL 3.2.0.
1872*/
1873pub const SDL_HINT_JOYSTICK_HIDAPI_NINTENDO_CLASSIC: Hint = Hint {
1874    name: "SDL_HINT_JOYSTICK_HIDAPI_NINTENDO_CLASSIC",
1875    value: "SDL_JOYSTICK_HIDAPI_NINTENDO_CLASSIC",
1876    doc: "/**\n* A variable controlling whether the HIDAPI driver for Nintendo Online\n* classic controllers should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1877};
1878/**
1879* A variable controlling whether the HIDAPI driver for PS3 controllers should
1880* be used.
1881*
1882* The variable can be set to the following values:
1883*
1884* - "0": HIDAPI driver is not used.
1885* - "1": HIDAPI driver is used.
1886*
1887* The default is the value of SDL_HINT_JOYSTICK_HIDAPI on macOS, and "0" on
1888* other platforms.
1889*
1890* For official Sony driver (sixaxis.sys) use
1891* SDL_HINT_JOYSTICK_HIDAPI_PS3_SIXAXIS_DRIVER. See
1892* https://github.com/ViGEm/DsHidMini for an alternative driver on Windows.
1893*
1894* This hint should be set before initializing joysticks and gamepads.
1895*
1896* \since This hint is available since SDL 3.2.0.
1897*/
1898pub const SDL_HINT_JOYSTICK_HIDAPI_PS3: Hint = Hint {
1899    name: "SDL_HINT_JOYSTICK_HIDAPI_PS3",
1900    value: "SDL_JOYSTICK_HIDAPI_PS3",
1901    doc: "/**\n* A variable controlling whether the HIDAPI driver for PS3 controllers should\n* be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI on macOS, and \"0\" on\n* other platforms.\n*\n* For official Sony driver (sixaxis.sys) use\n* SDL_HINT_JOYSTICK_HIDAPI_PS3_SIXAXIS_DRIVER. See\n* https://github.com/ViGEm/DsHidMini for an alternative driver on Windows.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1902};
1903/**
1904* A variable controlling whether the Sony driver (sixaxis.sys) for PS3
1905* controllers (Sixaxis/DualShock 3) should be used.
1906*
1907* The variable can be set to the following values:
1908*
1909* - "0": Sony driver (sixaxis.sys) is not used.
1910* - "1": Sony driver (sixaxis.sys) is used.
1911*
1912* The default value is 0.
1913*
1914* This hint should be set before initializing joysticks and gamepads.
1915*
1916* \since This hint is available since SDL 3.2.0.
1917*/
1918pub const SDL_HINT_JOYSTICK_HIDAPI_PS3_SIXAXIS_DRIVER: Hint = Hint {
1919    name: "SDL_HINT_JOYSTICK_HIDAPI_PS3_SIXAXIS_DRIVER",
1920    value: "SDL_JOYSTICK_HIDAPI_PS3_SIXAXIS_DRIVER",
1921    doc: "/**\n* A variable controlling whether the Sony driver (sixaxis.sys) for PS3\n* controllers (Sixaxis/DualShock 3) should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Sony driver (sixaxis.sys) is not used.\n* - \"1\": Sony driver (sixaxis.sys) is used.\n*\n* The default value is 0.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1922};
1923/**
1924* A variable controlling whether the HIDAPI driver for PS4 controllers should
1925* be used.
1926*
1927* The variable can be set to the following values:
1928*
1929* - "0": HIDAPI driver is not used.
1930* - "1": HIDAPI driver is used.
1931*
1932* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.
1933*
1934* This hint should be set before initializing joysticks and gamepads.
1935*
1936* \since This hint is available since SDL 3.2.0.
1937*/
1938pub const SDL_HINT_JOYSTICK_HIDAPI_PS4: Hint = Hint {
1939    name: "SDL_HINT_JOYSTICK_HIDAPI_PS4",
1940    value: "SDL_JOYSTICK_HIDAPI_PS4",
1941    doc: "/**\n* A variable controlling whether the HIDAPI driver for PS4 controllers should\n* be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1942};
1943/**
1944* A variable controlling the update rate of the PS4 controller over Bluetooth
1945* when using the HIDAPI driver.
1946*
1947* This defaults to 4 ms, to match the behavior over USB, and to be more
1948* friendly to other Bluetooth devices and older Bluetooth hardware on the
1949* computer. It can be set to "1" (1000Hz), "2" (500Hz) and "4" (250Hz)
1950*
1951* This hint can be set anytime, but only takes effect when extended input
1952* reports are enabled.
1953*
1954* \since This hint is available since SDL 3.2.0.
1955*/
1956pub const SDL_HINT_JOYSTICK_HIDAPI_PS4_REPORT_INTERVAL: Hint = Hint {
1957    name: "SDL_HINT_JOYSTICK_HIDAPI_PS4_REPORT_INTERVAL",
1958    value: "SDL_JOYSTICK_HIDAPI_PS4_REPORT_INTERVAL",
1959    doc: "/**\n* A variable controlling the update rate of the PS4 controller over Bluetooth\n* when using the HIDAPI driver.\n*\n* This defaults to 4 ms, to match the behavior over USB, and to be more\n* friendly to other Bluetooth devices and older Bluetooth hardware on the\n* computer. It can be set to \"1\" (1000Hz), \"2\" (500Hz) and \"4\" (250Hz)\n*\n* This hint can be set anytime, but only takes effect when extended input\n* reports are enabled.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1960};
1961/**
1962* A variable controlling whether the HIDAPI driver for PS5 controllers should
1963* be used.
1964*
1965* The variable can be set to the following values:
1966*
1967* - "0": HIDAPI driver is not used.
1968* - "1": HIDAPI driver is used.
1969*
1970* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.
1971*
1972* This hint should be set before initializing joysticks and gamepads.
1973*
1974* \since This hint is available since SDL 3.2.0.
1975*/
1976pub const SDL_HINT_JOYSTICK_HIDAPI_PS5: Hint = Hint {
1977    name: "SDL_HINT_JOYSTICK_HIDAPI_PS5",
1978    value: "SDL_JOYSTICK_HIDAPI_PS5",
1979    doc: "/**\n* A variable controlling whether the HIDAPI driver for PS5 controllers should\n* be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1980};
1981/**
1982* A variable controlling whether the player LEDs should be lit to indicate
1983* which player is associated with a PS5 controller.
1984*
1985* The variable can be set to the following values:
1986*
1987* - "0": player LEDs are not enabled.
1988* - "1": player LEDs are enabled. (default)
1989*
1990* \since This hint is available since SDL 3.2.0.
1991*/
1992pub const SDL_HINT_JOYSTICK_HIDAPI_PS5_PLAYER_LED: Hint = Hint {
1993    name: "SDL_HINT_JOYSTICK_HIDAPI_PS5_PLAYER_LED",
1994    value: "SDL_JOYSTICK_HIDAPI_PS5_PLAYER_LED",
1995    doc: "/**\n* A variable controlling whether the player LEDs should be lit to indicate\n* which player is associated with a PS5 controller.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": player LEDs are not enabled.\n* - \"1\": player LEDs are enabled. (default)\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
1996};
1997/**
1998* A variable controlling whether the HIDAPI driver for NVIDIA SHIELD
1999* controllers should be used.
2000*
2001* The variable can be set to the following values:
2002*
2003* - "0": HIDAPI driver is not used.
2004* - "1": HIDAPI driver is used.
2005*
2006* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.
2007*
2008* This hint should be set before initializing joysticks and gamepads.
2009*
2010* \since This hint is available since SDL 3.2.0.
2011*/
2012pub const SDL_HINT_JOYSTICK_HIDAPI_SHIELD: Hint = Hint {
2013    name: "SDL_HINT_JOYSTICK_HIDAPI_SHIELD",
2014    value: "SDL_JOYSTICK_HIDAPI_SHIELD",
2015    doc: "/**\n* A variable controlling whether the HIDAPI driver for NVIDIA SHIELD\n* controllers should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2016};
2017/**
2018* A variable controlling whether the HIDAPI driver for Google Stadia
2019* controllers should be used.
2020*
2021* The variable can be set to the following values:
2022*
2023* - "0": HIDAPI driver is not used.
2024* - "1": HIDAPI driver is used.
2025*
2026* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.
2027*
2028* \since This hint is available since SDL 3.2.0.
2029*/
2030pub const SDL_HINT_JOYSTICK_HIDAPI_STADIA: Hint = Hint {
2031    name: "SDL_HINT_JOYSTICK_HIDAPI_STADIA",
2032    value: "SDL_JOYSTICK_HIDAPI_STADIA",
2033    doc: "/**\n* A variable controlling whether the HIDAPI driver for Google Stadia\n* controllers should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2034};
2035/**
2036* A variable controlling whether the HIDAPI driver for Bluetooth Steam
2037* Controllers should be used.
2038*
2039* The variable can be set to the following values:
2040*
2041* - "0": HIDAPI driver is not used. (default)
2042* - "1": HIDAPI driver is used for Steam Controllers, which requires
2043*   Bluetooth access and may prompt the user for permission on iOS and
2044*   Android.
2045*
2046* This hint should be set before initializing joysticks and gamepads.
2047*
2048* \since This hint is available since SDL 3.2.0.
2049*/
2050pub const SDL_HINT_JOYSTICK_HIDAPI_STEAM: Hint = Hint {
2051    name: "SDL_HINT_JOYSTICK_HIDAPI_STEAM",
2052    value: "SDL_JOYSTICK_HIDAPI_STEAM",
2053    doc: "/**\n* A variable controlling whether the HIDAPI driver for Bluetooth Steam\n* Controllers should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used. (default)\n* - \"1\": HIDAPI driver is used for Steam Controllers, which requires\n*   Bluetooth access and may prompt the user for permission on iOS and\n*   Android.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2054};
2055/**
2056* A variable controlling whether the Steam button LED should be turned on
2057* when a Steam controller is opened.
2058*
2059* The variable can be set to the following values:
2060*
2061* - "0": Steam button LED is turned off.
2062* - "1": Steam button LED is turned on.
2063*
2064* By default the Steam button LED state is not changed. This hint can also be
2065* set to a floating point value between 0.0 and 1.0 which controls the
2066* brightness of the Steam button LED.
2067*
2068* This hint can be set anytime.
2069*
2070* \since This hint is available since SDL 3.2.0.
2071*/
2072pub const SDL_HINT_JOYSTICK_HIDAPI_STEAM_HOME_LED: Hint = Hint {
2073    name: "SDL_HINT_JOYSTICK_HIDAPI_STEAM_HOME_LED",
2074    value: "SDL_JOYSTICK_HIDAPI_STEAM_HOME_LED",
2075    doc: "/**\n* A variable controlling whether the Steam button LED should be turned on\n* when a Steam controller is opened.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Steam button LED is turned off.\n* - \"1\": Steam button LED is turned on.\n*\n* By default the Steam button LED state is not changed. This hint can also be\n* set to a floating point value between 0.0 and 1.0 which controls the\n* brightness of the Steam button LED.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2076};
2077/**
2078* A variable controlling whether the HIDAPI driver for the Steam Deck builtin
2079* controller should be used.
2080*
2081* The variable can be set to the following values:
2082*
2083* - "0": HIDAPI driver is not used.
2084* - "1": HIDAPI driver is used.
2085*
2086* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.
2087*
2088* This hint should be set before initializing joysticks and gamepads.
2089*
2090* \since This hint is available since SDL 3.2.0.
2091*/
2092pub const SDL_HINT_JOYSTICK_HIDAPI_STEAMDECK: Hint = Hint {
2093    name: "SDL_HINT_JOYSTICK_HIDAPI_STEAMDECK",
2094    value: "SDL_JOYSTICK_HIDAPI_STEAMDECK",
2095    doc: "/**\n* A variable controlling whether the HIDAPI driver for the Steam Deck builtin\n* controller should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2096};
2097/**
2098* A variable controlling whether the HIDAPI driver for HORI licensed Steam
2099* controllers should be used.
2100*
2101* The variable can be set to the following values:
2102*
2103* - "0": HIDAPI driver is not used.
2104* - "1": HIDAPI driver is used.
2105*
2106* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.
2107*
2108* This hint should be set before initializing joysticks and gamepads.
2109*
2110* \since This hint is available since SDL 3.2.0.
2111*/
2112pub const SDL_HINT_JOYSTICK_HIDAPI_STEAM_HORI: Hint = Hint {
2113    name: "SDL_HINT_JOYSTICK_HIDAPI_STEAM_HORI",
2114    value: "SDL_JOYSTICK_HIDAPI_STEAM_HORI",
2115    doc: "/**\n* A variable controlling whether the HIDAPI driver for HORI licensed Steam\n* controllers should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2116};
2117/**
2118* A variable controlling whether the HIDAPI driver for some Logitech wheels
2119* should be used.
2120*
2121* The variable can be set to the following values:
2122*
2123* - "0": HIDAPI driver is not used.
2124* - "1": HIDAPI driver is used.
2125*
2126* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.
2127*
2128* This hint should be set before initializing joysticks and gamepads.
2129*
2130* \since This hint is available since SDL 3.4.0.
2131*/
2132pub const SDL_HINT_JOYSTICK_HIDAPI_LG4FF: Hint = Hint {
2133    name: "SDL_HINT_JOYSTICK_HIDAPI_LG4FF",
2134    value: "SDL_JOYSTICK_HIDAPI_LG4FF",
2135    doc: "/**\n* A variable controlling whether the HIDAPI driver for some Logitech wheels\n* should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
2136};
2137/**
2138* A variable controlling whether the HIDAPI driver for 8BitDo controllers
2139* should be used.
2140*
2141* The variable can be set to the following values:
2142*
2143* - "0": HIDAPI driver is not used.
2144* - "1": HIDAPI driver is used.
2145*
2146* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.
2147*
2148* This hint should be set before initializing joysticks and gamepads.
2149*
2150* \since This hint is available since SDL 3.4.0.
2151*/
2152pub const SDL_HINT_JOYSTICK_HIDAPI_8BITDO: Hint = Hint {
2153    name: "SDL_HINT_JOYSTICK_HIDAPI_8BITDO",
2154    value: "SDL_JOYSTICK_HIDAPI_8BITDO",
2155    doc: "/**\n* A variable controlling whether the HIDAPI driver for 8BitDo controllers\n* should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
2156};
2157/**
2158* A variable controlling whether the HIDAPI driver for SInput controllers
2159* should be used.
2160*
2161* More info - https://github.com/HandHeldLegend/SInput-HID
2162*
2163* The variable can be set to the following values:
2164*
2165* - "0": HIDAPI driver is not used.
2166* - "1": HIDAPI driver is used.
2167*
2168* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.
2169*
2170* This hint should be set before initializing joysticks and gamepads.
2171*
2172* \since This hint is available since SDL 3.4.0.
2173*/
2174pub const SDL_HINT_JOYSTICK_HIDAPI_SINPUT: Hint = Hint {
2175    name: "SDL_HINT_JOYSTICK_HIDAPI_SINPUT",
2176    value: "SDL_JOYSTICK_HIDAPI_SINPUT",
2177    doc: "/**\n* A variable controlling whether the HIDAPI driver for SInput controllers\n* should be used.\n*\n* More info - https://github.com/HandHeldLegend/SInput-HID\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
2178};
2179/**
2180* A variable controlling whether the HIDAPI driver for ZUIKI controllers
2181* should be used.
2182*
2183* The variable can be set to the following values:
2184*
2185* - "0": HIDAPI driver is not used.
2186* - "1": HIDAPI driver is used.
2187*
2188* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.
2189*
2190* This hint should be set before initializing joysticks and gamepads.
2191*
2192* \since This hint is available since SDL 3.4.0.
2193*/
2194pub const SDL_HINT_JOYSTICK_HIDAPI_ZUIKI: Hint = Hint {
2195    name: "SDL_HINT_JOYSTICK_HIDAPI_ZUIKI",
2196    value: "SDL_JOYSTICK_HIDAPI_ZUIKI",
2197    doc: "/**\n* A variable controlling whether the HIDAPI driver for ZUIKI controllers\n* should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
2198};
2199/**
2200* A variable controlling whether the HIDAPI driver for Flydigi controllers
2201* should be used.
2202*
2203* The variable can be set to the following values:
2204*
2205* - "0": HIDAPI driver is not used.
2206* - "1": HIDAPI driver is used.
2207*
2208* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.
2209*
2210* This hint should be set before initializing joysticks and gamepads.
2211*
2212* \since This hint is available since SDL 3.4.0.
2213*/
2214pub const SDL_HINT_JOYSTICK_HIDAPI_FLYDIGI: Hint = Hint {
2215    name: "SDL_HINT_JOYSTICK_HIDAPI_FLYDIGI",
2216    value: "SDL_JOYSTICK_HIDAPI_FLYDIGI",
2217    doc: "/**\n* A variable controlling whether the HIDAPI driver for Flydigi controllers\n* should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
2218};
2219/**
2220* A variable controlling whether the HIDAPI driver for GameSir controllers
2221* should be used.
2222*
2223* The variable can be set to the following values:
2224*
2225* - "0": HIDAPI driver is not used.
2226* - "1": HIDAPI driver is used.
2227*
2228* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.
2229*
2230* This hint should be set before initializing joysticks and gamepads.
2231*
2232* \since This hint is available since SDL 3.5.0.
2233*/
2234pub const SDL_HINT_JOYSTICK_HIDAPI_GAMESIR: Hint = Hint {
2235    name: "SDL_HINT_JOYSTICK_HIDAPI_GAMESIR",
2236    value: "SDL_JOYSTICK_HIDAPI_GAMESIR",
2237    doc: "/**\n* A variable controlling whether the HIDAPI driver for GameSir controllers\n* should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.5.0.\n*/\n",
2238};
2239/**
2240* A variable controlling whether the HIDAPI driver for Nintendo Switch
2241* controllers should be used.
2242*
2243* The variable can be set to the following values:
2244*
2245* - "0": HIDAPI driver is not used.
2246* - "1": HIDAPI driver is used.
2247*
2248* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.
2249*
2250* This hint should be set before initializing joysticks and gamepads.
2251*
2252* \since This hint is available since SDL 3.2.0.
2253*/
2254pub const SDL_HINT_JOYSTICK_HIDAPI_SWITCH: Hint = Hint {
2255    name: "SDL_HINT_JOYSTICK_HIDAPI_SWITCH",
2256    value: "SDL_JOYSTICK_HIDAPI_SWITCH",
2257    doc: "/**\n* A variable controlling whether the HIDAPI driver for Nintendo Switch\n* controllers should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2258};
2259/**
2260* A variable controlling whether the Home button LED should be turned on when
2261* a Nintendo Switch Pro controller is opened.
2262*
2263* The variable can be set to the following values:
2264*
2265* - "0": Home button LED is turned off.
2266* - "1": Home button LED is turned on.
2267*
2268* By default the Home button LED state is not changed. This hint can also be
2269* set to a floating point value between 0.0 and 1.0 which controls the
2270* brightness of the Home button LED.
2271*
2272* This hint can be set anytime.
2273*
2274* \since This hint is available since SDL 3.2.0.
2275*/
2276pub const SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED: Hint = Hint {
2277    name: "SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED",
2278    value: "SDL_JOYSTICK_HIDAPI_SWITCH_HOME_LED",
2279    doc: "/**\n* A variable controlling whether the Home button LED should be turned on when\n* a Nintendo Switch Pro controller is opened.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Home button LED is turned off.\n* - \"1\": Home button LED is turned on.\n*\n* By default the Home button LED state is not changed. This hint can also be\n* set to a floating point value between 0.0 and 1.0 which controls the\n* brightness of the Home button LED.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2280};
2281/**
2282* A variable controlling whether the player LEDs should be lit to indicate
2283* which player is associated with a Nintendo Switch controller.
2284*
2285* The variable can be set to the following values:
2286*
2287* - "0": Player LEDs are not enabled.
2288* - "1": Player LEDs are enabled. (default)
2289*
2290* This hint can be set anytime.
2291*
2292* \since This hint is available since SDL 3.2.0.
2293*/
2294pub const SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED: Hint = Hint {
2295    name: "SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED",
2296    value: "SDL_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED",
2297    doc: "/**\n* A variable controlling whether the player LEDs should be lit to indicate\n* which player is associated with a Nintendo Switch controller.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Player LEDs are not enabled.\n* - \"1\": Player LEDs are enabled. (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2298};
2299/**
2300* A variable controlling whether the HIDAPI driver for Nintendo Switch 2
2301* controllers should be used.
2302*
2303* The variable can be set to the following values:
2304*
2305* - "0": HIDAPI driver is not used.
2306* - "1": HIDAPI driver is used.
2307*
2308* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.
2309*
2310* This hint should be set before initializing joysticks and gamepads.
2311*
2312* \since This hint is available since SDL 3.4.0.
2313*/
2314pub const SDL_HINT_JOYSTICK_HIDAPI_SWITCH2: Hint = Hint {
2315    name: "SDL_HINT_JOYSTICK_HIDAPI_SWITCH2",
2316    value: "SDL_JOYSTICK_HIDAPI_SWITCH2",
2317    doc: "/**\n* A variable controlling whether the HIDAPI driver for Nintendo Switch 2\n* controllers should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
2318};
2319/**
2320* A variable controlling whether Nintendo Switch Joy-Con controllers will be
2321* in vertical mode when using the HIDAPI driver.
2322*
2323* The variable can be set to the following values:
2324*
2325* - "0": Left and right Joy-Con controllers will not be in vertical mode.
2326*   (default)
2327* - "1": Left and right Joy-Con controllers will be in vertical mode.
2328*
2329* This hint should be set before opening a Joy-Con controller.
2330*
2331* \since This hint is available since SDL 3.2.0.
2332*/
2333pub const SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS: Hint = Hint {
2334    name: "SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS",
2335    value: "SDL_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS",
2336    doc: "/**\n* A variable controlling whether Nintendo Switch Joy-Con controllers will be\n* in vertical mode when using the HIDAPI driver.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Left and right Joy-Con controllers will not be in vertical mode.\n*   (default)\n* - \"1\": Left and right Joy-Con controllers will be in vertical mode.\n*\n* This hint should be set before opening a Joy-Con controller.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2337};
2338/**
2339* A variable controlling whether the HIDAPI driver for Nintendo Wii and Wii U
2340* controllers should be used.
2341*
2342* The variable can be set to the following values:
2343*
2344* - "0": HIDAPI driver is not used.
2345* - "1": HIDAPI driver is used.
2346*
2347* This driver doesn't work with the dolphinbar, so the default is false for
2348* now.
2349*
2350* This hint should be set before initializing joysticks and gamepads.
2351*
2352* \since This hint is available since SDL 3.2.0.
2353*/
2354pub const SDL_HINT_JOYSTICK_HIDAPI_WII: Hint = Hint {
2355    name: "SDL_HINT_JOYSTICK_HIDAPI_WII",
2356    value: "SDL_JOYSTICK_HIDAPI_WII",
2357    doc: "/**\n* A variable controlling whether the HIDAPI driver for Nintendo Wii and Wii U\n* controllers should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* This driver doesn't work with the dolphinbar, so the default is false for\n* now.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2358};
2359/**
2360* A variable controlling whether the player LEDs should be lit to indicate
2361* which player is associated with a Wii controller.
2362*
2363* The variable can be set to the following values:
2364*
2365* - "0": Player LEDs are not enabled.
2366* - "1": Player LEDs are enabled. (default)
2367*
2368* This hint can be set anytime.
2369*
2370* \since This hint is available since SDL 3.2.0.
2371*/
2372pub const SDL_HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED: Hint = Hint {
2373    name: "SDL_HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED",
2374    value: "SDL_JOYSTICK_HIDAPI_WII_PLAYER_LED",
2375    doc: "/**\n* A variable controlling whether the player LEDs should be lit to indicate\n* which player is associated with a Wii controller.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Player LEDs are not enabled.\n* - \"1\": Player LEDs are enabled. (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2376};
2377/**
2378* A variable controlling whether the HIDAPI driver for XBox controllers
2379* should be used.
2380*
2381* The variable can be set to the following values:
2382*
2383* - "0": HIDAPI driver is not used.
2384* - "1": HIDAPI driver is used.
2385*
2386* The default is "0" on Windows, otherwise the value of
2387* SDL_HINT_JOYSTICK_HIDAPI
2388*
2389* This hint should be set before initializing joysticks and gamepads.
2390*
2391* \since This hint is available since SDL 3.2.0.
2392*/
2393pub const SDL_HINT_JOYSTICK_HIDAPI_XBOX: Hint = Hint {
2394    name: "SDL_HINT_JOYSTICK_HIDAPI_XBOX",
2395    value: "SDL_JOYSTICK_HIDAPI_XBOX",
2396    doc: "/**\n* A variable controlling whether the HIDAPI driver for XBox controllers\n* should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is \"0\" on Windows, otherwise the value of\n* SDL_HINT_JOYSTICK_HIDAPI\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2397};
2398/**
2399* A variable controlling whether the HIDAPI driver for XBox 360 controllers
2400* should be used.
2401*
2402* The variable can be set to the following values:
2403*
2404* - "0": HIDAPI driver is not used.
2405* - "1": HIDAPI driver is used.
2406*
2407* The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX
2408*
2409* This hint should be set before initializing joysticks and gamepads.
2410*
2411* \since This hint is available since SDL 3.2.0.
2412*/
2413pub const SDL_HINT_JOYSTICK_HIDAPI_XBOX_360: Hint = Hint {
2414    name: "SDL_HINT_JOYSTICK_HIDAPI_XBOX_360",
2415    value: "SDL_JOYSTICK_HIDAPI_XBOX_360",
2416    doc: "/**\n* A variable controlling whether the HIDAPI driver for XBox 360 controllers\n* should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2417};
2418/**
2419* A variable controlling whether the player LEDs should be lit to indicate
2420* which player is associated with an Xbox 360 controller.
2421*
2422* The variable can be set to the following values:
2423*
2424* - "0": Player LEDs are not enabled.
2425* - "1": Player LEDs are enabled. (default)
2426*
2427* This hint can be set anytime.
2428*
2429* \since This hint is available since SDL 3.2.0.
2430*/
2431pub const SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED: Hint = Hint {
2432    name: "SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED",
2433    value: "SDL_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED",
2434    doc: "/**\n* A variable controlling whether the player LEDs should be lit to indicate\n* which player is associated with an Xbox 360 controller.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Player LEDs are not enabled.\n* - \"1\": Player LEDs are enabled. (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2435};
2436/**
2437* A variable controlling whether the HIDAPI driver for XBox 360 wireless
2438* controllers should be used.
2439*
2440* The variable can be set to the following values:
2441*
2442* - "0": HIDAPI driver is not used.
2443* - "1": HIDAPI driver is used.
2444*
2445* The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX_360
2446*
2447* This hint should be set before initializing joysticks and gamepads.
2448*
2449* \since This hint is available since SDL 3.2.0.
2450*/
2451pub const SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_WIRELESS: Hint = Hint {
2452    name: "SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_WIRELESS",
2453    value: "SDL_JOYSTICK_HIDAPI_XBOX_360_WIRELESS",
2454    doc: "/**\n* A variable controlling whether the HIDAPI driver for XBox 360 wireless\n* controllers should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX_360\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2455};
2456/**
2457* A variable controlling whether the HIDAPI driver for XBox One controllers
2458* should be used.
2459*
2460* The variable can be set to the following values:
2461*
2462* - "0": HIDAPI driver is not used.
2463* - "1": HIDAPI driver is used.
2464*
2465* The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX.
2466*
2467* This hint should be set before initializing joysticks and gamepads.
2468*
2469* \since This hint is available since SDL 3.2.0.
2470*/
2471pub const SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE: Hint = Hint {
2472    name: "SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE",
2473    value: "SDL_JOYSTICK_HIDAPI_XBOX_ONE",
2474    doc: "/**\n* A variable controlling whether the HIDAPI driver for XBox One controllers\n* should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2475};
2476/**
2477* A variable controlling whether the Home button LED should be turned on when
2478* an Xbox One controller is opened.
2479*
2480* The variable can be set to the following values:
2481*
2482* - "0": Home button LED is turned off.
2483* - "1": Home button LED is turned on.
2484*
2485* By default the Home button LED state is not changed. This hint can also be
2486* set to a floating point value between 0.0 and 1.0 which controls the
2487* brightness of the Home button LED. The default brightness is 0.4.
2488*
2489* This hint can be set anytime.
2490*
2491* \since This hint is available since SDL 3.2.0.
2492*/
2493pub const SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED: Hint = Hint {
2494    name: "SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED",
2495    value: "SDL_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED",
2496    doc: "/**\n* A variable controlling whether the Home button LED should be turned on when\n* an Xbox One controller is opened.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Home button LED is turned off.\n* - \"1\": Home button LED is turned on.\n*\n* By default the Home button LED state is not changed. This hint can also be\n* set to a floating point value between 0.0 and 1.0 which controls the\n* brightness of the Home button LED. The default brightness is 0.4.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2497};
2498/**
2499* A variable controlling whether the new HIDAPI driver for wired Xbox One
2500* (GIP) controllers should be used.
2501*
2502* The variable can be set to the following values:
2503*
2504* - "0": HIDAPI driver is not used.
2505* - "1": HIDAPI driver is used.
2506*
2507* The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE.
2508*
2509* This hint should be set before initializing joysticks and gamepads.
2510*
2511* \since This hint is available since SDL 3.4.0.
2512*/
2513pub const SDL_HINT_JOYSTICK_HIDAPI_GIP: Hint = Hint {
2514    name: "SDL_HINT_JOYSTICK_HIDAPI_GIP",
2515    value: "SDL_JOYSTICK_HIDAPI_GIP",
2516    doc: "/**\n* A variable controlling whether the new HIDAPI driver for wired Xbox One\n* (GIP) controllers should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": HIDAPI driver is not used.\n* - \"1\": HIDAPI driver is used.\n*\n* The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
2517};
2518/**
2519* A variable controlling whether the new HIDAPI driver for wired Xbox One
2520* (GIP) controllers should reset the controller if it can't get the metadata
2521* from the controller.
2522*
2523* The variable can be set to the following values:
2524*
2525* - "0": Assume this is a generic controller.
2526* - "1": Reset the controller to get metadata.
2527*
2528* By default the controller is not reset.
2529*
2530* This hint should be set before initializing joysticks and gamepads.
2531*
2532* \since This hint is available since SDL 3.4.0.
2533*/
2534pub const SDL_HINT_JOYSTICK_HIDAPI_GIP_RESET_FOR_METADATA: Hint = Hint {
2535    name: "SDL_HINT_JOYSTICK_HIDAPI_GIP_RESET_FOR_METADATA",
2536    value: "SDL_JOYSTICK_HIDAPI_GIP_RESET_FOR_METADATA",
2537    doc: "/**\n* A variable controlling whether the new HIDAPI driver for wired Xbox One\n* (GIP) controllers should reset the controller if it can't get the metadata\n* from the controller.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Assume this is a generic controller.\n* - \"1\": Reset the controller to get metadata.\n*\n* By default the controller is not reset.\n*\n* This hint should be set before initializing joysticks and gamepads.\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
2538};
2539/**
2540* A variable controlling whether IOKit should be used for controller
2541* handling.
2542*
2543* The variable can be set to the following values:
2544*
2545* - "0": IOKit is not used.
2546* - "1": IOKit is used. (default)
2547*
2548* This hint should be set before SDL is initialized.
2549*
2550* \since This hint is available since SDL 3.2.0.
2551*/
2552pub const SDL_HINT_JOYSTICK_IOKIT: Hint = Hint {
2553    name: "SDL_HINT_JOYSTICK_IOKIT",
2554    value: "SDL_JOYSTICK_IOKIT",
2555    doc: "/**\n* A variable controlling whether IOKit should be used for controller\n* handling.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": IOKit is not used.\n* - \"1\": IOKit is used. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2556};
2557/**
2558* A variable controlling whether to use the classic /dev/input/js* joystick
2559* interface or the newer /dev/input/event* joystick interface on Linux.
2560*
2561* The variable can be set to the following values:
2562*
2563* - "0": Use /dev/input/event* (default)
2564* - "1": Use /dev/input/js*
2565*
2566* This hint should be set before SDL is initialized.
2567*
2568* \since This hint is available since SDL 3.2.0.
2569*/
2570pub const SDL_HINT_JOYSTICK_LINUX_CLASSIC: Hint = Hint {
2571    name: "SDL_HINT_JOYSTICK_LINUX_CLASSIC",
2572    value: "SDL_JOYSTICK_LINUX_CLASSIC",
2573    doc: "/**\n* A variable controlling whether to use the classic /dev/input/js* joystick\n* interface or the newer /dev/input/event* joystick interface on Linux.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Use /dev/input/event* (default)\n* - \"1\": Use /dev/input/js*\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2574};
2575/**
2576* A variable controlling whether joysticks on Linux adhere to their
2577* HID-defined deadzones or return unfiltered values.
2578*
2579* The variable can be set to the following values:
2580*
2581* - "0": Return unfiltered joystick axis values. (default)
2582* - "1": Return axis values with deadzones taken into account.
2583*
2584* This hint should be set before a controller is opened.
2585*
2586* \since This hint is available since SDL 3.2.0.
2587*/
2588pub const SDL_HINT_JOYSTICK_LINUX_DEADZONES: Hint = Hint {
2589    name: "SDL_HINT_JOYSTICK_LINUX_DEADZONES",
2590    value: "SDL_JOYSTICK_LINUX_DEADZONES",
2591    doc: "/**\n* A variable controlling whether joysticks on Linux adhere to their\n* HID-defined deadzones or return unfiltered values.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Return unfiltered joystick axis values. (default)\n* - \"1\": Return axis values with deadzones taken into account.\n*\n* This hint should be set before a controller is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2592};
2593/**
2594* A variable controlling whether joysticks on Linux will always treat 'hat'
2595* axis inputs (ABS_HAT0X - ABS_HAT3Y) as 8-way digital hats without checking
2596* whether they may be analog.
2597*
2598* The variable can be set to the following values:
2599*
2600* - "0": Only map hat axis inputs to digital hat outputs if the input axes
2601*   appear to actually be digital. (default)
2602* - "1": Always handle the input axes numbered ABS_HAT0X to ABS_HAT3Y as
2603*   digital hats.
2604*
2605* This hint should be set before a controller is opened.
2606*
2607* \since This hint is available since SDL 3.2.0.
2608*/
2609pub const SDL_HINT_JOYSTICK_LINUX_DIGITAL_HATS: Hint = Hint {
2610    name: "SDL_HINT_JOYSTICK_LINUX_DIGITAL_HATS",
2611    value: "SDL_JOYSTICK_LINUX_DIGITAL_HATS",
2612    doc: "/**\n* A variable controlling whether joysticks on Linux will always treat 'hat'\n* axis inputs (ABS_HAT0X - ABS_HAT3Y) as 8-way digital hats without checking\n* whether they may be analog.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Only map hat axis inputs to digital hat outputs if the input axes\n*   appear to actually be digital. (default)\n* - \"1\": Always handle the input axes numbered ABS_HAT0X to ABS_HAT3Y as\n*   digital hats.\n*\n* This hint should be set before a controller is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2613};
2614/**
2615* A variable controlling whether digital hats on Linux will apply deadzones
2616* to their underlying input axes or use unfiltered values.
2617*
2618* The variable can be set to the following values:
2619*
2620* - "0": Return digital hat values based on unfiltered input axis values.
2621* - "1": Return digital hat values with deadzones on the input axes taken
2622*   into account. (default)
2623*
2624* This hint should be set before a controller is opened.
2625*
2626* \since This hint is available since SDL 3.2.0.
2627*/
2628pub const SDL_HINT_JOYSTICK_LINUX_HAT_DEADZONES: Hint = Hint {
2629    name: "SDL_HINT_JOYSTICK_LINUX_HAT_DEADZONES",
2630    value: "SDL_JOYSTICK_LINUX_HAT_DEADZONES",
2631    doc: "/**\n* A variable controlling whether digital hats on Linux will apply deadzones\n* to their underlying input axes or use unfiltered values.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Return digital hat values based on unfiltered input axis values.\n* - \"1\": Return digital hat values with deadzones on the input axes taken\n*   into account. (default)\n*\n* This hint should be set before a controller is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2632};
2633/**
2634* A variable controlling whether GCController should be used for controller
2635* handling.
2636*
2637* The variable can be set to the following values:
2638*
2639* - "0": GCController is not used.
2640* - "1": GCController is used. (default)
2641*
2642* This hint should be set before SDL is initialized.
2643*
2644* \since This hint is available since SDL 3.2.0.
2645*/
2646pub const SDL_HINT_JOYSTICK_MFI: Hint = Hint {
2647    name: "SDL_HINT_JOYSTICK_MFI",
2648    value: "SDL_JOYSTICK_MFI",
2649    doc: "/**\n* A variable controlling whether GCController should be used for controller\n* handling.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": GCController is not used.\n* - \"1\": GCController is used. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2650};
2651/**
2652* A variable controlling whether the RAWINPUT joystick drivers should be used
2653* for better handling XInput-capable devices.
2654*
2655* The variable can be set to the following values:
2656*
2657* - "0": RAWINPUT drivers are not used. (default)
2658* - "1": RAWINPUT drivers are used.
2659*
2660* This hint should be set before SDL is initialized.
2661*
2662* \since This hint is available since SDL 3.2.0.
2663*/
2664pub const SDL_HINT_JOYSTICK_RAWINPUT: Hint = Hint {
2665    name: "SDL_HINT_JOYSTICK_RAWINPUT",
2666    value: "SDL_JOYSTICK_RAWINPUT",
2667    doc: "/**\n* A variable controlling whether the RAWINPUT joystick drivers should be used\n* for better handling XInput-capable devices.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": RAWINPUT drivers are not used. (default)\n* - \"1\": RAWINPUT drivers are used.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2668};
2669/**
2670* A variable controlling whether the RAWINPUT driver should pull correlated
2671* data from XInput.
2672*
2673* The variable can be set to the following values:
2674*
2675* - "0": RAWINPUT driver will only use data from raw input APIs.
2676* - "1": RAWINPUT driver will also pull data from XInput and
2677*   Windows.Gaming.Input, providing better trigger axes, guide button
2678*   presses, and rumble support for Xbox controllers. (default)
2679*
2680* This hint should be set before a gamepad is opened.
2681*
2682* \since This hint is available since SDL 3.2.0.
2683*/
2684pub const SDL_HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT: Hint = Hint {
2685    name: "SDL_HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT",
2686    value: "SDL_JOYSTICK_RAWINPUT_CORRELATE_XINPUT",
2687    doc: "/**\n* A variable controlling whether the RAWINPUT driver should pull correlated\n* data from XInput.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": RAWINPUT driver will only use data from raw input APIs.\n* - \"1\": RAWINPUT driver will also pull data from XInput and\n*   Windows.Gaming.Input, providing better trigger axes, guide button\n*   presses, and rumble support for Xbox controllers. (default)\n*\n* This hint should be set before a gamepad is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2688};
2689/**
2690* A variable controlling whether the ROG Chakram mice should show up as
2691* joysticks.
2692*
2693* The variable can be set to the following values:
2694*
2695* - "0": ROG Chakram mice do not show up as joysticks. (default)
2696* - "1": ROG Chakram mice show up as joysticks.
2697*
2698* This hint should be set before SDL is initialized.
2699*
2700* \since This hint is available since SDL 3.2.0.
2701*/
2702pub const SDL_HINT_JOYSTICK_ROG_CHAKRAM: Hint = Hint {
2703    name: "SDL_HINT_JOYSTICK_ROG_CHAKRAM",
2704    value: "SDL_JOYSTICK_ROG_CHAKRAM",
2705    doc: "/**\n* A variable controlling whether the ROG Chakram mice should show up as\n* joysticks.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": ROG Chakram mice do not show up as joysticks. (default)\n* - \"1\": ROG Chakram mice show up as joysticks.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2706};
2707/**
2708* A variable controlling whether a separate thread should be used for
2709* handling joystick detection and raw input messages on Windows.
2710*
2711* The variable can be set to the following values:
2712*
2713* - "0": A separate thread is not used.
2714* - "1": A separate thread is used for handling raw input messages. (default)
2715*
2716* This hint should be set before SDL is initialized.
2717*
2718* \since This hint is available since SDL 3.2.0.
2719*/
2720pub const SDL_HINT_JOYSTICK_THREAD: Hint = Hint {
2721    name: "SDL_HINT_JOYSTICK_THREAD",
2722    value: "SDL_JOYSTICK_THREAD",
2723    doc: "/**\n* A variable controlling whether a separate thread should be used for\n* handling joystick detection and raw input messages on Windows.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": A separate thread is not used.\n* - \"1\": A separate thread is used for handling raw input messages. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2724};
2725/**
2726* A variable containing a list of throttle style controllers.
2727*
2728* The format of the string is a comma separated list of USB VID/PID pairs in
2729* hexadecimal form, e.g.
2730*
2731* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`
2732*
2733* The variable can also take the form of "@file", in which case the named
2734* file will be loaded and interpreted as the value of the variable.
2735*
2736* This hint can be set anytime.
2737*
2738* \since This hint is available since SDL 3.2.0.
2739*/
2740pub const SDL_HINT_JOYSTICK_THROTTLE_DEVICES: Hint = Hint {
2741    name: "SDL_HINT_JOYSTICK_THROTTLE_DEVICES",
2742    value: "SDL_JOYSTICK_THROTTLE_DEVICES",
2743    doc: "/**\n* A variable containing a list of throttle style controllers.\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`\n*\n* The variable can also take the form of \"@file\", in which case the named\n* file will be loaded and interpreted as the value of the variable.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2744};
2745/**
2746* A variable containing a list of devices that are not throttle style
2747* controllers.
2748*
2749* This will override SDL_HINT_JOYSTICK_THROTTLE_DEVICES and the built in
2750* device list.
2751*
2752* The format of the string is a comma separated list of USB VID/PID pairs in
2753* hexadecimal form, e.g.
2754*
2755* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`
2756*
2757* The variable can also take the form of "@file", in which case the named
2758* file will be loaded and interpreted as the value of the variable.
2759*
2760* This hint can be set anytime.
2761*
2762* \since This hint is available since SDL 3.2.0.
2763*/
2764pub const SDL_HINT_JOYSTICK_THROTTLE_DEVICES_EXCLUDED: Hint = Hint {
2765    name: "SDL_HINT_JOYSTICK_THROTTLE_DEVICES_EXCLUDED",
2766    value: "SDL_JOYSTICK_THROTTLE_DEVICES_EXCLUDED",
2767    doc: "/**\n* A variable containing a list of devices that are not throttle style\n* controllers.\n*\n* This will override SDL_HINT_JOYSTICK_THROTTLE_DEVICES and the built in\n* device list.\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`\n*\n* The variable can also take the form of \"@file\", in which case the named\n* file will be loaded and interpreted as the value of the variable.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2768};
2769/**
2770* A variable controlling whether Windows.Gaming.Input should be used for
2771* controller handling.
2772*
2773* The variable can be set to the following values:
2774*
2775* - "0": WGI is not used. (default)
2776* - "1": WGI is used.
2777*
2778* This hint should be set before SDL is initialized.
2779*
2780* \since This hint is available since SDL 3.2.0.
2781*/
2782pub const SDL_HINT_JOYSTICK_WGI: Hint = Hint {
2783    name: "SDL_HINT_JOYSTICK_WGI",
2784    value: "SDL_JOYSTICK_WGI",
2785    doc: "/**\n* A variable controlling whether Windows.Gaming.Input should be used for\n* controller handling.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": WGI is not used. (default)\n* - \"1\": WGI is used.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2786};
2787/**
2788* A variable containing a list of wheel style controllers.
2789*
2790* The format of the string is a comma separated list of USB VID/PID pairs in
2791* hexadecimal form, e.g.
2792*
2793* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`
2794*
2795* The variable can also take the form of "@file", in which case the named
2796* file will be loaded and interpreted as the value of the variable.
2797*
2798* This hint can be set anytime.
2799*
2800* \since This hint is available since SDL 3.2.0.
2801*/
2802pub const SDL_HINT_JOYSTICK_WHEEL_DEVICES: Hint = Hint {
2803    name: "SDL_HINT_JOYSTICK_WHEEL_DEVICES",
2804    value: "SDL_JOYSTICK_WHEEL_DEVICES",
2805    doc: "/**\n* A variable containing a list of wheel style controllers.\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`\n*\n* The variable can also take the form of \"@file\", in which case the named\n* file will be loaded and interpreted as the value of the variable.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2806};
2807/**
2808* A variable containing a list of devices that are not wheel style
2809* controllers.
2810*
2811* This will override SDL_HINT_JOYSTICK_WHEEL_DEVICES and the built in device
2812* list.
2813*
2814* The format of the string is a comma separated list of USB VID/PID pairs in
2815* hexadecimal form, e.g.
2816*
2817* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`
2818*
2819* The variable can also take the form of "@file", in which case the named
2820* file will be loaded and interpreted as the value of the variable.
2821*
2822* This hint can be set anytime.
2823*
2824* \since This hint is available since SDL 3.2.0.
2825*/
2826pub const SDL_HINT_JOYSTICK_WHEEL_DEVICES_EXCLUDED: Hint = Hint {
2827    name: "SDL_HINT_JOYSTICK_WHEEL_DEVICES_EXCLUDED",
2828    value: "SDL_JOYSTICK_WHEEL_DEVICES_EXCLUDED",
2829    doc: "/**\n* A variable containing a list of devices that are not wheel style\n* controllers.\n*\n* This will override SDL_HINT_JOYSTICK_WHEEL_DEVICES and the built in device\n* list.\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`\n*\n* The variable can also take the form of \"@file\", in which case the named\n* file will be loaded and interpreted as the value of the variable.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2830};
2831/**
2832* A variable containing a list of devices known to have all axes centered at
2833* zero.
2834*
2835* The format of the string is a comma separated list of USB VID/PID pairs in
2836* hexadecimal form, e.g.
2837*
2838* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`
2839*
2840* The variable can also take the form of "@file", in which case the named
2841* file will be loaded and interpreted as the value of the variable.
2842*
2843* This hint should be set before a controller is opened.
2844*
2845* \since This hint is available since SDL 3.2.0.
2846*/
2847pub const SDL_HINT_JOYSTICK_ZERO_CENTERED_DEVICES: Hint = Hint {
2848    name: "SDL_HINT_JOYSTICK_ZERO_CENTERED_DEVICES",
2849    value: "SDL_JOYSTICK_ZERO_CENTERED_DEVICES",
2850    doc: "/**\n* A variable containing a list of devices known to have all axes centered at\n* zero.\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`\n*\n* The variable can also take the form of \"@file\", in which case the named\n* file will be loaded and interpreted as the value of the variable.\n*\n* This hint should be set before a controller is opened.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2851};
2852/**
2853* A variable containing a list of devices and their desired number of haptic
2854* (force feedback) enabled axis.
2855*
2856* The format of the string is a comma separated list of USB VID/PID pairs in
2857* hexadecimal form plus the number of desired axes, e.g.
2858*
2859* `0xAAAA/0xBBBB/1,0xCCCC/0xDDDD/3`
2860*
2861* This hint supports a "wildcard" device that will set the number of haptic
2862* axes on all initialized haptic devices which were not defined explicitly in
2863* this hint.
2864*
2865* `0xFFFF/0xFFFF/1`
2866*
2867* This hint should be set before a controller is opened. The number of haptic
2868* axes won't exceed the number of real axes found on the device.
2869*
2870* \since This hint is available since SDL 3.2.5.
2871*/
2872pub const SDL_HINT_JOYSTICK_HAPTIC_AXES: Hint = Hint {
2873    name: "SDL_HINT_JOYSTICK_HAPTIC_AXES",
2874    value: "SDL_JOYSTICK_HAPTIC_AXES",
2875    doc: "/**\n* A variable containing a list of devices and their desired number of haptic\n* (force feedback) enabled axis.\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form plus the number of desired axes, e.g.\n*\n* `0xAAAA/0xBBBB/1,0xCCCC/0xDDDD/3`\n*\n* This hint supports a \"wildcard\" device that will set the number of haptic\n* axes on all initialized haptic devices which were not defined explicitly in\n* this hint.\n*\n* `0xFFFF/0xFFFF/1`\n*\n* This hint should be set before a controller is opened. The number of haptic\n* axes won't exceed the number of real axes found on the device.\n*\n* \\since This hint is available since SDL 3.2.5.\n*/\n",
2876};
2877/**
2878* A variable that controls keycode representation in keyboard events.
2879*
2880* This variable is a comma separated set of options for translating keycodes
2881* in events:
2882*
2883* - "none": Keycode options are cleared, this overrides other options.
2884* - "hide_numpad": The numpad keysyms will be translated into their
2885*   non-numpad versions based on the current NumLock state. For example,
2886*   SDLK_KP_4 would become SDLK_4 if SDL_KMOD_NUM is set in the event
2887*   modifiers, and SDLK_LEFT if it is unset.
2888* - "french_numbers": The number row on French keyboards is inverted, so
2889*   pressing the 1 key would yield the keycode SDLK_1, or '1', instead of
2890*   SDLK_AMPERSAND, or '&'
2891* - "latin_letters": For keyboards using non-Latin letters, such as Russian
2892*   or Thai, the letter keys generate keycodes as though it had an English
2893*   QWERTY layout. e.g. pressing the key associated with SDL_SCANCODE_A on a
2894*   Russian keyboard would yield 'a' instead of a Cyrillic letter.
2895*
2896* The default value for this hint is "french_numbers,latin_letters"
2897*
2898* Some platforms like Emscripten only provide modified keycodes and the
2899* options are not used.
2900*
2901* These options do not affect the return value of SDL_GetKeyFromScancode() or
2902* SDL_GetScancodeFromKey(), they just apply to the keycode included in key
2903* events.
2904*
2905* This hint can be set anytime.
2906*
2907* \since This hint is available since SDL 3.2.0.
2908*/
2909pub const SDL_HINT_KEYCODE_OPTIONS: Hint = Hint {
2910    name: "SDL_HINT_KEYCODE_OPTIONS",
2911    value: "SDL_KEYCODE_OPTIONS",
2912    doc: "/**\n* A variable that controls keycode representation in keyboard events.\n*\n* This variable is a comma separated set of options for translating keycodes\n* in events:\n*\n* - \"none\": Keycode options are cleared, this overrides other options.\n* - \"hide_numpad\": The numpad keysyms will be translated into their\n*   non-numpad versions based on the current NumLock state. For example,\n*   SDLK_KP_4 would become SDLK_4 if SDL_KMOD_NUM is set in the event\n*   modifiers, and SDLK_LEFT if it is unset.\n* - \"french_numbers\": The number row on French keyboards is inverted, so\n*   pressing the 1 key would yield the keycode SDLK_1, or '1', instead of\n*   SDLK_AMPERSAND, or '&'\n* - \"latin_letters\": For keyboards using non-Latin letters, such as Russian\n*   or Thai, the letter keys generate keycodes as though it had an English\n*   QWERTY layout. e.g. pressing the key associated with SDL_SCANCODE_A on a\n*   Russian keyboard would yield 'a' instead of a Cyrillic letter.\n*\n* The default value for this hint is \"french_numbers,latin_letters\"\n*\n* Some platforms like Emscripten only provide modified keycodes and the\n* options are not used.\n*\n* These options do not affect the return value of SDL_GetKeyFromScancode() or\n* SDL_GetScancodeFromKey(), they just apply to the keycode included in key\n* events.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2913};
2914/**
2915* A variable that controls what KMSDRM device to use.
2916*
2917* SDL might open something like "/dev/dri/cardNN" to access KMSDRM
2918* functionality, where "NN" is a device index number. SDL makes a guess at
2919* the best index to use (usually zero), but the app or user can set this hint
2920* to a number between 0 and 99 to force selection.
2921*
2922* This hint should be set before SDL is initialized.
2923*
2924* \since This hint is available since SDL 3.2.0.
2925*/
2926pub const SDL_HINT_KMSDRM_DEVICE_INDEX: Hint = Hint {
2927    name: "SDL_HINT_KMSDRM_DEVICE_INDEX",
2928    value: "SDL_KMSDRM_DEVICE_INDEX",
2929    doc: "/**\n* A variable that controls what KMSDRM device to use.\n*\n* SDL might open something like \"/dev/dri/cardNN\" to access KMSDRM\n* functionality, where \"NN\" is a device index number. SDL makes a guess at\n* the best index to use (usually zero), but the app or user can set this hint\n* to a number between 0 and 99 to force selection.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2930};
2931/**
2932* A variable that controls whether SDL requires DRM master access in order to
2933* initialize the KMSDRM video backend.
2934*
2935* The DRM subsystem has a concept of a "DRM master" which is a DRM client
2936* that has the ability to set planes, set cursor, etc. When SDL is DRM
2937* master, it can draw to the screen using the SDL rendering APIs. Without DRM
2938* master, SDL is still able to process input and query attributes of attached
2939* displays, but it cannot change display state or draw to the screen
2940* directly.
2941*
2942* In some cases, it can be useful to have the KMSDRM backend even if it
2943* cannot be used for rendering. An app may want to use SDL for input
2944* processing while using another rendering API (such as an MMAL overlay on
2945* Raspberry Pi) or using its own code to render to DRM overlays that SDL
2946* doesn't support.
2947*
2948* The variable can be set to the following values:
2949*
2950* - "0": SDL will allow usage of the KMSDRM backend without DRM master.
2951* - "1": SDL Will require DRM master to use the KMSDRM backend. (default)
2952*
2953* This hint should be set before SDL is initialized.
2954*
2955* \since This hint is available since SDL 3.2.0.
2956*/
2957pub const SDL_HINT_KMSDRM_REQUIRE_DRM_MASTER: Hint = Hint {
2958    name: "SDL_HINT_KMSDRM_REQUIRE_DRM_MASTER",
2959    value: "SDL_KMSDRM_REQUIRE_DRM_MASTER",
2960    doc: "/**\n* A variable that controls whether SDL requires DRM master access in order to\n* initialize the KMSDRM video backend.\n*\n* The DRM subsystem has a concept of a \"DRM master\" which is a DRM client\n* that has the ability to set planes, set cursor, etc. When SDL is DRM\n* master, it can draw to the screen using the SDL rendering APIs. Without DRM\n* master, SDL is still able to process input and query attributes of attached\n* displays, but it cannot change display state or draw to the screen\n* directly.\n*\n* In some cases, it can be useful to have the KMSDRM backend even if it\n* cannot be used for rendering. An app may want to use SDL for input\n* processing while using another rendering API (such as an MMAL overlay on\n* Raspberry Pi) or using its own code to render to DRM overlays that SDL\n* doesn't support.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": SDL will allow usage of the KMSDRM backend without DRM master.\n* - \"1\": SDL Will require DRM master to use the KMSDRM backend. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
2961};
2962/**
2963* A variable that controls whether KMSDRM will use "atomic" functionality.
2964*
2965* The KMSDRM backend can use atomic commits, if both DRM_CLIENT_CAP_ATOMIC
2966* and DRM_CLIENT_CAP_UNIVERSAL_PLANES is supported by the system. As of SDL
2967* 3.4.0, it will favor this functionality, but in case this doesn't work well
2968* on a given system or other surprises, this hint can be used to disable it.
2969*
2970* This hint can not enable the functionality if it isn't available.
2971*
2972* The variable can be set to the following values:
2973*
2974* - "0": SDL will not use the KMSDRM "atomic" functionality.
2975* - "1": SDL will allow usage of the KMSDRM "atomic" functionality. (default)
2976*
2977* This hint should be set before SDL is initialized.
2978*
2979* \since This hint is available since SDL 3.4.0.
2980*/
2981pub const SDL_HINT_KMSDRM_ATOMIC: Hint = Hint {
2982    name: "SDL_HINT_KMSDRM_ATOMIC",
2983    value: "SDL_KMSDRM_ATOMIC",
2984    doc: "/**\n* A variable that controls whether KMSDRM will use \"atomic\" functionality.\n*\n* The KMSDRM backend can use atomic commits, if both DRM_CLIENT_CAP_ATOMIC\n* and DRM_CLIENT_CAP_UNIVERSAL_PLANES is supported by the system. As of SDL\n* 3.4.0, it will favor this functionality, but in case this doesn't work well\n* on a given system or other surprises, this hint can be used to disable it.\n*\n* This hint can not enable the functionality if it isn't available.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": SDL will not use the KMSDRM \"atomic\" functionality.\n* - \"1\": SDL will allow usage of the KMSDRM \"atomic\" functionality. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
2985};
2986/**
2987* A variable controlling the default SDL log levels.
2988*
2989* This variable is a comma separated set of category=level tokens that define
2990* the default logging levels for SDL applications.
2991*
2992* The category can be a numeric category, one of "app", "error", "assert",
2993* "system", "audio", "video", "render", "input", "test", or `*` for any
2994* unspecified category.
2995*
2996* The level can be a numeric level, one of "verbose", "debug", "info",
2997* "warn", "error", "critical", or "quiet" to disable that category.
2998*
2999* You can omit the category if you want to set the logging level for all
3000* categories.
3001*
3002* If this hint isn't set, the default log levels are equivalent to:
3003*
3004* `app=info,assert=warn,test=verbose,*=error`
3005*
3006* If the `DEBUG_INVOCATION` environment variable is set to "1", the default
3007* log levels are equivalent to:
3008*
3009* `assert=warn,test=verbose,*=debug`
3010*
3011* This hint can be set anytime.
3012*
3013* \since This hint is available since SDL 3.2.0.
3014*/
3015pub const SDL_HINT_LOGGING: Hint = Hint {
3016    name: "SDL_HINT_LOGGING",
3017    value: "SDL_LOGGING",
3018    doc: "/**\n* A variable controlling the default SDL log levels.\n*\n* This variable is a comma separated set of category=level tokens that define\n* the default logging levels for SDL applications.\n*\n* The category can be a numeric category, one of \"app\", \"error\", \"assert\",\n* \"system\", \"audio\", \"video\", \"render\", \"input\", \"test\", or `*` for any\n* unspecified category.\n*\n* The level can be a numeric level, one of \"verbose\", \"debug\", \"info\",\n* \"warn\", \"error\", \"critical\", or \"quiet\" to disable that category.\n*\n* You can omit the category if you want to set the logging level for all\n* categories.\n*\n* If this hint isn't set, the default log levels are equivalent to:\n*\n* `app=info,assert=warn,test=verbose,*=error`\n*\n* If the `DEBUG_INVOCATION` environment variable is set to \"1\", the default\n* log levels are equivalent to:\n*\n* `assert=warn,test=verbose,*=debug`\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3019};
3020/**
3021* A variable controlling whether to force the application to become the
3022* foreground process when launched on macOS.
3023*
3024* The variable can be set to the following values:
3025*
3026* - "0": The application is brought to the foreground when launched.
3027*   (default)
3028* - "1": The application may remain in the background when launched.
3029*
3030* This hint needs to be set before SDL_Init().
3031*
3032* \since This hint is available since SDL 3.2.0.
3033*/
3034pub const SDL_HINT_MAC_BACKGROUND_APP: Hint = Hint {
3035    name: "SDL_HINT_MAC_BACKGROUND_APP",
3036    value: "SDL_MAC_BACKGROUND_APP",
3037    doc: "/**\n* A variable controlling whether to force the application to become the\n* foreground process when launched on macOS.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": The application is brought to the foreground when launched.\n*   (default)\n* - \"1\": The application may remain in the background when launched.\n*\n* This hint needs to be set before SDL_Init().\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3038};
3039/**
3040* A variable that determines whether Ctrl+Click should generate a right-click
3041* event on macOS.
3042*
3043* The variable can be set to the following values:
3044*
3045* - "0": Ctrl+Click does not generate a right mouse button click event.
3046*   (default)
3047* - "1": Ctrl+Click generated a right mouse button click event.
3048*
3049* This hint can be set anytime.
3050*
3051* \since This hint is available since SDL 3.2.0.
3052*/
3053pub const SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK: Hint = Hint {
3054    name: "SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK",
3055    value: "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK",
3056    doc: "/**\n* A variable that determines whether Ctrl+Click should generate a right-click\n* event on macOS.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Ctrl+Click does not generate a right mouse button click event.\n*   (default)\n* - \"1\": Ctrl+Click generated a right mouse button click event.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3057};
3058/**
3059* A variable controlling whether dispatching OpenGL context updates should
3060* block the dispatching thread until the main thread finishes processing on
3061* macOS.
3062*
3063* The variable can be set to the following values:
3064*
3065* - "0": Dispatching OpenGL context updates will block the dispatching thread
3066*   until the main thread finishes processing. (default)
3067* - "1": Dispatching OpenGL context updates will allow the dispatching thread
3068*   to continue execution.
3069*
3070* Generally you want the default, but if you have OpenGL code in a background
3071* thread on a Mac, and the main thread hangs because it's waiting for that
3072* background thread, but that background thread is also hanging because it's
3073* waiting for the main thread to do an update, this might fix your issue.
3074*
3075* This hint can be set anytime.
3076*
3077* \since This hint is available since SDL 3.2.0.
3078*/
3079pub const SDL_HINT_MAC_OPENGL_ASYNC_DISPATCH: Hint = Hint {
3080    name: "SDL_HINT_MAC_OPENGL_ASYNC_DISPATCH",
3081    value: "SDL_MAC_OPENGL_ASYNC_DISPATCH",
3082    doc: "/**\n* A variable controlling whether dispatching OpenGL context updates should\n* block the dispatching thread until the main thread finishes processing on\n* macOS.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Dispatching OpenGL context updates will block the dispatching thread\n*   until the main thread finishes processing. (default)\n* - \"1\": Dispatching OpenGL context updates will allow the dispatching thread\n*   to continue execution.\n*\n* Generally you want the default, but if you have OpenGL code in a background\n* thread on a Mac, and the main thread hangs because it's waiting for that\n* background thread, but that background thread is also hanging because it's\n* waiting for the main thread to do an update, this might fix your issue.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3083};
3084/**
3085* A variable controlling whether the Option key on macOS should be remapped
3086* to act as the Alt key.
3087*
3088* The variable can be set to the following values:
3089*
3090* - "none": The Option key is not remapped to Alt. (default)
3091* - "only_left": Only the left Option key is remapped to Alt.
3092* - "only_right": Only the right Option key is remapped to Alt.
3093* - "both": Both Option keys are remapped to Alt.
3094*
3095* This will prevent the triggering of key compositions that rely on the
3096* Option key, but will still send the Alt modifier for keyboard events. In
3097* the case that both Alt and Option are pressed, the Option key will be
3098* ignored. This is particularly useful for applications like terminal
3099* emulators and graphical user interfaces (GUIs) that rely on Alt key
3100* functionality for shortcuts or navigation. This does not apply to
3101* SDL_GetKeyFromScancode and only has an effect if IME is enabled.
3102*
3103* This hint can be set anytime.
3104*
3105* \since This hint is available since SDL 3.2.0.
3106*/
3107pub const SDL_HINT_MAC_OPTION_AS_ALT: Hint = Hint {
3108    name: "SDL_HINT_MAC_OPTION_AS_ALT",
3109    value: "SDL_MAC_OPTION_AS_ALT",
3110    doc: "/**\n* A variable controlling whether the Option key on macOS should be remapped\n* to act as the Alt key.\n*\n* The variable can be set to the following values:\n*\n* - \"none\": The Option key is not remapped to Alt. (default)\n* - \"only_left\": Only the left Option key is remapped to Alt.\n* - \"only_right\": Only the right Option key is remapped to Alt.\n* - \"both\": Both Option keys are remapped to Alt.\n*\n* This will prevent the triggering of key compositions that rely on the\n* Option key, but will still send the Alt modifier for keyboard events. In\n* the case that both Alt and Option are pressed, the Option key will be\n* ignored. This is particularly useful for applications like terminal\n* emulators and graphical user interfaces (GUIs) that rely on Alt key\n* functionality for shortcuts or navigation. This does not apply to\n* SDL_GetKeyFromScancode and only has an effect if IME is enabled.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3111};
3112/**
3113* A variable controlling whether SDL_EVENT_MOUSE_WHEEL event values will have
3114* momentum on macOS.
3115*
3116* The variable can be set to the following values:
3117*
3118* - "0": The mouse wheel events will have no momentum. (default)
3119* - "1": The mouse wheel events will have momentum.
3120*
3121* This hint needs to be set before SDL_Init().
3122*
3123* \since This hint is available since SDL 3.2.0.
3124*/
3125pub const SDL_HINT_MAC_SCROLL_MOMENTUM: Hint = Hint {
3126    name: "SDL_HINT_MAC_SCROLL_MOMENTUM",
3127    value: "SDL_MAC_SCROLL_MOMENTUM",
3128    doc: "/**\n* A variable controlling whether SDL_EVENT_MOUSE_WHEEL event values will have\n* momentum on macOS.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": The mouse wheel events will have no momentum. (default)\n* - \"1\": The mouse wheel events will have momentum.\n*\n* This hint needs to be set before SDL_Init().\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3129};
3130/**
3131* A variable controlling whether holding down a key will repeat the pressed
3132* key or open the accents menu on macOS.
3133*
3134* The variable can be set to the following values:
3135*
3136* - "0": Holding a key will repeat the pressed key.
3137* - "1": Holding a key will open the accents menu for that key. (default)
3138*
3139* This hint needs to be set before SDL_Init().
3140*
3141* \since This hint is available since SDL 3.4.0.
3142*/
3143pub const SDL_HINT_MAC_PRESS_AND_HOLD: Hint = Hint {
3144    name: "SDL_HINT_MAC_PRESS_AND_HOLD",
3145    value: "SDL_MAC_PRESS_AND_HOLD",
3146    doc: "/**\n* A variable controlling whether holding down a key will repeat the pressed\n* key or open the accents menu on macOS.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Holding a key will repeat the pressed key.\n* - \"1\": Holding a key will open the accents menu for that key. (default)\n*\n* This hint needs to be set before SDL_Init().\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
3147};
3148/**
3149* Request SDL_AppIterate() be called at a specific rate.
3150*
3151* If this is set to a number, it represents Hz, so "60" means try to iterate
3152* 60 times per second. "0" means to iterate as fast as possible. Negative
3153* values are illegal, but reserved, in case they are useful in a future
3154* revision of SDL.
3155*
3156* There are other strings that have special meaning. If set to "waitevent",
3157* SDL_AppIterate will not be called until new event(s) have arrived (and been
3158* processed by SDL_AppEvent). This can be useful for apps that are completely
3159* idle except in response to input.
3160*
3161* On some platforms, or if you are using SDL_main instead of SDL_AppIterate,
3162* this hint is ignored. When the hint can be used, it is allowed to be
3163* changed at any time.
3164*
3165* This defaults to 0, and specifying NULL for the hint's value will restore
3166* the default.
3167*
3168* This doesn't have to be an integer value. For example, "59.94" won't be
3169* rounded to an integer rate; the digits after the decimal are actually
3170* respected.
3171*
3172* This hint can be set anytime.
3173*
3174* \since This hint is available since SDL 3.2.0.
3175*/
3176pub const SDL_HINT_MAIN_CALLBACK_RATE: Hint = Hint {
3177    name: "SDL_HINT_MAIN_CALLBACK_RATE",
3178    value: "SDL_MAIN_CALLBACK_RATE",
3179    doc: "/**\n* Request SDL_AppIterate() be called at a specific rate.\n*\n* If this is set to a number, it represents Hz, so \"60\" means try to iterate\n* 60 times per second. \"0\" means to iterate as fast as possible. Negative\n* values are illegal, but reserved, in case they are useful in a future\n* revision of SDL.\n*\n* There are other strings that have special meaning. If set to \"waitevent\",\n* SDL_AppIterate will not be called until new event(s) have arrived (and been\n* processed by SDL_AppEvent). This can be useful for apps that are completely\n* idle except in response to input.\n*\n* On some platforms, or if you are using SDL_main instead of SDL_AppIterate,\n* this hint is ignored. When the hint can be used, it is allowed to be\n* changed at any time.\n*\n* This defaults to 0, and specifying NULL for the hint's value will restore\n* the default.\n*\n* This doesn't have to be an integer value. For example, \"59.94\" won't be\n* rounded to an integer rate; the digits after the decimal are actually\n* respected.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3180};
3181/**
3182* A variable controlling whether the mouse is captured while mouse buttons
3183* are pressed.
3184*
3185* The variable can be set to the following values:
3186*
3187* - "0": The mouse is not captured while mouse buttons are pressed.
3188* - "1": The mouse is captured while mouse buttons are pressed.
3189*
3190* By default the mouse is captured while mouse buttons are pressed so if the
3191* mouse is dragged outside the window, the application continues to receive
3192* mouse events until the button is released.
3193*
3194* This hint can be set anytime.
3195*
3196* \since This hint is available since SDL 3.2.0.
3197*/
3198pub const SDL_HINT_MOUSE_AUTO_CAPTURE: Hint = Hint {
3199    name: "SDL_HINT_MOUSE_AUTO_CAPTURE",
3200    value: "SDL_MOUSE_AUTO_CAPTURE",
3201    doc: "/**\n* A variable controlling whether the mouse is captured while mouse buttons\n* are pressed.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": The mouse is not captured while mouse buttons are pressed.\n* - \"1\": The mouse is captured while mouse buttons are pressed.\n*\n* By default the mouse is captured while mouse buttons are pressed so if the\n* mouse is dragged outside the window, the application continues to receive\n* mouse events until the button is released.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3202};
3203/**
3204* A variable setting the double click radius, in pixels.
3205*
3206* This hint can be set anytime.
3207*
3208* \since This hint is available since SDL 3.2.0.
3209*/
3210pub const SDL_HINT_MOUSE_DOUBLE_CLICK_RADIUS: Hint = Hint {
3211    name: "SDL_HINT_MOUSE_DOUBLE_CLICK_RADIUS",
3212    value: "SDL_MOUSE_DOUBLE_CLICK_RADIUS",
3213    doc: "/**\n* A variable setting the double click radius, in pixels.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3214};
3215/**
3216* A variable setting the double click time, in milliseconds.
3217*
3218* This hint can be set anytime.
3219*
3220* \since This hint is available since SDL 3.2.0.
3221*/
3222pub const SDL_HINT_MOUSE_DOUBLE_CLICK_TIME: Hint = Hint {
3223    name: "SDL_HINT_MOUSE_DOUBLE_CLICK_TIME",
3224    value: "SDL_MOUSE_DOUBLE_CLICK_TIME",
3225    doc: "/**\n* A variable setting the double click time, in milliseconds.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3226};
3227/**
3228* A variable setting which system cursor to use as the default cursor.
3229*
3230* This should be an integer corresponding to the SDL_SystemCursor enum. The
3231* default value is zero (SDL_SYSTEM_CURSOR_DEFAULT).
3232*
3233* This hint needs to be set before SDL_Init().
3234*
3235* \since This hint is available since SDL 3.2.0.
3236*/
3237pub const SDL_HINT_MOUSE_DEFAULT_SYSTEM_CURSOR: Hint = Hint {
3238    name: "SDL_HINT_MOUSE_DEFAULT_SYSTEM_CURSOR",
3239    value: "SDL_MOUSE_DEFAULT_SYSTEM_CURSOR",
3240    doc: "/**\n* A variable setting which system cursor to use as the default cursor.\n*\n* This should be an integer corresponding to the SDL_SystemCursor enum. The\n* default value is zero (SDL_SYSTEM_CURSOR_DEFAULT).\n*\n* This hint needs to be set before SDL_Init().\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3241};
3242/**
3243* A variable setting whether we should scale cursors by the current display
3244* scale.
3245*
3246* The variable can be set to the following values:
3247*
3248* - "0": Cursors will not change size based on the display content scale.
3249*   (default)
3250* - "1": Cursors will automatically match the display content scale (e.g. a
3251*   2x sized cursor will be used when the window is on a monitor with 200%
3252*   scale). This is currently implemented on Windows and Wayland.
3253*
3254* This hint needs to be set before creating cursors.
3255*
3256* \since This hint is available since SDL 3.4.0.
3257*/
3258pub const SDL_HINT_MOUSE_DPI_SCALE_CURSORS: Hint = Hint {
3259    name: "SDL_HINT_MOUSE_DPI_SCALE_CURSORS",
3260    value: "SDL_MOUSE_DPI_SCALE_CURSORS",
3261    doc: "/**\n* A variable setting whether we should scale cursors by the current display\n* scale.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Cursors will not change size based on the display content scale.\n*   (default)\n* - \"1\": Cursors will automatically match the display content scale (e.g. a\n*   2x sized cursor will be used when the window is on a monitor with 200%\n*   scale). This is currently implemented on Windows and Wayland.\n*\n* This hint needs to be set before creating cursors.\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
3262};
3263/**
3264* A variable controlling whether warping a hidden mouse cursor will activate
3265* relative mouse mode.
3266*
3267* When this hint is set, the mouse cursor is hidden, and multiple warps to
3268* the window center occur within a short time period, SDL will emulate mouse
3269* warps using relative mouse mode. This can provide smoother and more
3270* reliable mouse motion for some older games, which continuously calculate
3271* the distance traveled by the mouse pointer and warp it back to the center
3272* of the window, rather than using relative mouse motion.
3273*
3274* Note that relative mouse mode may have different mouse acceleration
3275* behavior than pointer warps.
3276*
3277* If your application needs to repeatedly warp the hidden mouse cursor at a
3278* high-frequency for other purposes, it should disable this hint.
3279*
3280* The variable can be set to the following values:
3281*
3282* - "0": Attempts to warp the mouse will always be made.
3283* - "1": Some mouse warps will be emulated by forcing relative mouse mode.
3284*   (default)
3285*
3286* If not set, this is automatically enabled unless an application uses
3287* relative mouse mode directly.
3288*
3289* This hint can be set anytime.
3290*
3291* \since This hint is available since SDL 3.2.0.
3292*/
3293pub const SDL_HINT_MOUSE_EMULATE_WARP_WITH_RELATIVE: Hint = Hint {
3294    name: "SDL_HINT_MOUSE_EMULATE_WARP_WITH_RELATIVE",
3295    value: "SDL_MOUSE_EMULATE_WARP_WITH_RELATIVE",
3296    doc: "/**\n* A variable controlling whether warping a hidden mouse cursor will activate\n* relative mouse mode.\n*\n* When this hint is set, the mouse cursor is hidden, and multiple warps to\n* the window center occur within a short time period, SDL will emulate mouse\n* warps using relative mouse mode. This can provide smoother and more\n* reliable mouse motion for some older games, which continuously calculate\n* the distance traveled by the mouse pointer and warp it back to the center\n* of the window, rather than using relative mouse motion.\n*\n* Note that relative mouse mode may have different mouse acceleration\n* behavior than pointer warps.\n*\n* If your application needs to repeatedly warp the hidden mouse cursor at a\n* high-frequency for other purposes, it should disable this hint.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Attempts to warp the mouse will always be made.\n* - \"1\": Some mouse warps will be emulated by forcing relative mouse mode.\n*   (default)\n*\n* If not set, this is automatically enabled unless an application uses\n* relative mouse mode directly.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3297};
3298/**
3299* Allow mouse click events when clicking to focus an SDL window.
3300*
3301* The variable can be set to the following values:
3302*
3303* - "0": Ignore mouse clicks that activate a window. (default)
3304* - "1": Generate events for mouse clicks that activate a window.
3305*
3306* This hint can be set anytime.
3307*
3308* \since This hint is available since SDL 3.2.0.
3309*/
3310pub const SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH: Hint = Hint {
3311    name: "SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH",
3312    value: "SDL_MOUSE_FOCUS_CLICKTHROUGH",
3313    doc: "/**\n* Allow mouse click events when clicking to focus an SDL window.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Ignore mouse clicks that activate a window. (default)\n* - \"1\": Generate events for mouse clicks that activate a window.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3314};
3315/**
3316* A variable setting the speed scale for mouse motion, in floating point,
3317* when the mouse is not in relative mode.
3318*
3319* This hint can be set anytime.
3320*
3321* \since This hint is available since SDL 3.2.0.
3322*/
3323pub const SDL_HINT_MOUSE_NORMAL_SPEED_SCALE: Hint = Hint {
3324    name: "SDL_HINT_MOUSE_NORMAL_SPEED_SCALE",
3325    value: "SDL_MOUSE_NORMAL_SPEED_SCALE",
3326    doc: "/**\n* A variable setting the speed scale for mouse motion, in floating point,\n* when the mouse is not in relative mode.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3327};
3328/**
3329* A variable controlling whether relative mouse mode constrains the mouse to
3330* the center of the window.
3331*
3332* Constraining to the center of the window works better for FPS games and
3333* when the application is running over RDP. Constraining to the whole window
3334* works better for 2D games and increases the chance that the mouse will be
3335* in the correct position when using high DPI mice.
3336*
3337* The variable can be set to the following values:
3338*
3339* - "0": Relative mouse mode constrains the mouse to the window.
3340* - "1": Relative mouse mode constrains the mouse to the center of the
3341*   window. (default)
3342*
3343* This hint can be set anytime.
3344*
3345* \since This hint is available since SDL 3.2.0.
3346*/
3347pub const SDL_HINT_MOUSE_RELATIVE_MODE_CENTER: Hint = Hint {
3348    name: "SDL_HINT_MOUSE_RELATIVE_MODE_CENTER",
3349    value: "SDL_MOUSE_RELATIVE_MODE_CENTER",
3350    doc: "/**\n* A variable controlling whether relative mouse mode constrains the mouse to\n* the center of the window.\n*\n* Constraining to the center of the window works better for FPS games and\n* when the application is running over RDP. Constraining to the whole window\n* works better for 2D games and increases the chance that the mouse will be\n* in the correct position when using high DPI mice.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Relative mouse mode constrains the mouse to the window.\n* - \"1\": Relative mouse mode constrains the mouse to the center of the\n*   window. (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3351};
3352/**
3353* A variable setting the scale for mouse motion, in floating point, when the
3354* mouse is in relative mode.
3355*
3356* This hint can be set anytime.
3357*
3358* \since This hint is available since SDL 3.2.0.
3359*/
3360pub const SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE: Hint = Hint {
3361    name: "SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE",
3362    value: "SDL_MOUSE_RELATIVE_SPEED_SCALE",
3363    doc: "/**\n* A variable setting the scale for mouse motion, in floating point, when the\n* mouse is in relative mode.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3364};
3365/**
3366* A variable controlling whether the system mouse acceleration curve is used
3367* for relative mouse motion.
3368*
3369* The variable can be set to the following values:
3370*
3371* - "0": Relative mouse motion will be unscaled. (default)
3372* - "1": Relative mouse motion will be scaled using the system mouse
3373*   acceleration curve.
3374*
3375* If SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE is set, that will be applied after
3376* system speed scale.
3377*
3378* This hint can be set anytime.
3379*
3380* \since This hint is available since SDL 3.2.0.
3381*/
3382pub const SDL_HINT_MOUSE_RELATIVE_SYSTEM_SCALE: Hint = Hint {
3383    name: "SDL_HINT_MOUSE_RELATIVE_SYSTEM_SCALE",
3384    value: "SDL_MOUSE_RELATIVE_SYSTEM_SCALE",
3385    doc: "/**\n* A variable controlling whether the system mouse acceleration curve is used\n* for relative mouse motion.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Relative mouse motion will be unscaled. (default)\n* - \"1\": Relative mouse motion will be scaled using the system mouse\n*   acceleration curve.\n*\n* If SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE is set, that will be applied after\n* system speed scale.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3386};
3387/**
3388* A variable controlling whether a motion event should be generated for mouse
3389* warping in relative mode.
3390*
3391* The variable can be set to the following values:
3392*
3393* - "0": Warping the mouse will not generate a motion event in relative mode
3394* - "1": Warping the mouse will generate a motion event in relative mode
3395*
3396* By default warping the mouse will not generate motion events in relative
3397* mode. This avoids the application having to filter out large relative
3398* motion due to warping.
3399*
3400* This hint can be set anytime.
3401*
3402* \since This hint is available since SDL 3.2.0.
3403*/
3404pub const SDL_HINT_MOUSE_RELATIVE_WARP_MOTION: Hint = Hint {
3405    name: "SDL_HINT_MOUSE_RELATIVE_WARP_MOTION",
3406    value: "SDL_MOUSE_RELATIVE_WARP_MOTION",
3407    doc: "/**\n* A variable controlling whether a motion event should be generated for mouse\n* warping in relative mode.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Warping the mouse will not generate a motion event in relative mode\n* - \"1\": Warping the mouse will generate a motion event in relative mode\n*\n* By default warping the mouse will not generate motion events in relative\n* mode. This avoids the application having to filter out large relative\n* motion due to warping.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3408};
3409/**
3410* A variable controlling whether the hardware cursor stays visible when
3411* relative mode is active.
3412*
3413* This variable can be set to the following values:
3414*
3415* - "0": The cursor will be hidden while relative mode is active (default)
3416* - "1": The cursor will remain visible while relative mode is active
3417*
3418* Note that for systems without raw hardware inputs, relative mode is
3419* implemented using warping, so the hardware cursor will visibly warp between
3420* frames if this is enabled on those systems.
3421*
3422* This hint can be set anytime.
3423*
3424* \since This hint is available since SDL 3.2.0.
3425*/
3426pub const SDL_HINT_MOUSE_RELATIVE_CURSOR_VISIBLE: Hint = Hint {
3427    name: "SDL_HINT_MOUSE_RELATIVE_CURSOR_VISIBLE",
3428    value: "SDL_MOUSE_RELATIVE_CURSOR_VISIBLE",
3429    doc: "/**\n* A variable controlling whether the hardware cursor stays visible when\n* relative mode is active.\n*\n* This variable can be set to the following values:\n*\n* - \"0\": The cursor will be hidden while relative mode is active (default)\n* - \"1\": The cursor will remain visible while relative mode is active\n*\n* Note that for systems without raw hardware inputs, relative mode is\n* implemented using warping, so the hardware cursor will visibly warp between\n* frames if this is enabled on those systems.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3430};
3431/**
3432* A variable controlling whether mouse events should generate synthetic touch
3433* events.
3434*
3435* The variable can be set to the following values:
3436*
3437* - "0": Mouse events will not generate touch events. (default for desktop
3438*   platforms)
3439* - "1": Mouse events will generate touch events. (default for mobile
3440*   platforms, such as Android and iOS)
3441*
3442* This hint can be set anytime.
3443*
3444* \since This hint is available since SDL 3.2.0.
3445*/
3446pub const SDL_HINT_MOUSE_TOUCH_EVENTS: Hint = Hint {
3447    name: "SDL_HINT_MOUSE_TOUCH_EVENTS",
3448    value: "SDL_MOUSE_TOUCH_EVENTS",
3449    doc: "/**\n* A variable controlling whether mouse events should generate synthetic touch\n* events.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Mouse events will not generate touch events. (default for desktop\n*   platforms)\n* - \"1\": Mouse events will generate touch events. (default for mobile\n*   platforms, such as Android and iOS)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3450};
3451/**
3452* A variable controlling whether the keyboard should be muted on the console.
3453*
3454* Normally the keyboard is muted while SDL applications are running so that
3455* keyboard input doesn't show up as key strokes on the console. This hint
3456* allows you to turn that off for debugging purposes.
3457*
3458* The variable can be set to the following values:
3459*
3460* - "0": Allow keystrokes to go through to the console.
3461* - "1": Mute keyboard input so it doesn't show up on the console. (default)
3462*
3463* This hint should be set before SDL is initialized.
3464*
3465* \since This hint is available since SDL 3.2.0.
3466*/
3467pub const SDL_HINT_MUTE_CONSOLE_KEYBOARD: Hint = Hint {
3468    name: "SDL_HINT_MUTE_CONSOLE_KEYBOARD",
3469    value: "SDL_MUTE_CONSOLE_KEYBOARD",
3470    doc: "/**\n* A variable controlling whether the keyboard should be muted on the console.\n*\n* Normally the keyboard is muted while SDL applications are running so that\n* keyboard input doesn't show up as key strokes on the console. This hint\n* allows you to turn that off for debugging purposes.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Allow keystrokes to go through to the console.\n* - \"1\": Mute keyboard input so it doesn't show up on the console. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3471};
3472/**
3473* Tell SDL not to catch the SIGINT or SIGTERM signals on POSIX platforms.
3474*
3475* The variable can be set to the following values:
3476*
3477* - "0": SDL will install a SIGINT and SIGTERM handler, and when it catches a
3478*   signal, convert it into an SDL_EVENT_QUIT event. (default)
3479* - "1": SDL will not install a signal handler at all.
3480*
3481* This hint should be set before SDL is initialized.
3482*
3483* \since This hint is available since SDL 3.2.0.
3484*/
3485pub const SDL_HINT_NO_SIGNAL_HANDLERS: Hint = Hint {
3486    name: "SDL_HINT_NO_SIGNAL_HANDLERS",
3487    value: "SDL_NO_SIGNAL_HANDLERS",
3488    doc: "/**\n* Tell SDL not to catch the SIGINT or SIGTERM signals on POSIX platforms.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": SDL will install a SIGINT and SIGTERM handler, and when it catches a\n*   signal, convert it into an SDL_EVENT_QUIT event. (default)\n* - \"1\": SDL will not install a signal handler at all.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3489};
3490/**
3491* Specify the OpenGL library to load.
3492*
3493* This hint should be set before creating an OpenGL window or creating an
3494* OpenGL context. If this hint isn't set, SDL will choose a reasonable
3495* default.
3496*
3497* \since This hint is available since SDL 3.2.0.
3498*/
3499pub const SDL_HINT_OPENGL_LIBRARY: Hint = Hint {
3500    name: "SDL_HINT_OPENGL_LIBRARY",
3501    value: "SDL_OPENGL_LIBRARY",
3502    doc: "/**\n* Specify the OpenGL library to load.\n*\n* This hint should be set before creating an OpenGL window or creating an\n* OpenGL context. If this hint isn't set, SDL will choose a reasonable\n* default.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3503};
3504/**
3505* Specify the EGL library to load.
3506*
3507* This hint should be set before creating an OpenGL window or creating an
3508* OpenGL context. This hint is only considered if SDL is using EGL to manage
3509* OpenGL contexts. If this hint isn't set, SDL will choose a reasonable
3510* default.
3511*
3512* \since This hint is available since SDL 3.2.0.
3513*/
3514pub const SDL_HINT_EGL_LIBRARY: Hint = Hint {
3515    name: "SDL_HINT_EGL_LIBRARY",
3516    value: "SDL_EGL_LIBRARY",
3517    doc: "/**\n* Specify the EGL library to load.\n*\n* This hint should be set before creating an OpenGL window or creating an\n* OpenGL context. This hint is only considered if SDL is using EGL to manage\n* OpenGL contexts. If this hint isn't set, SDL will choose a reasonable\n* default.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3518};
3519/**
3520* A variable controlling what driver to use for OpenGL ES contexts.
3521*
3522* On some platforms, currently Windows and X11, OpenGL drivers may support
3523* creating contexts with an OpenGL ES profile. By default SDL uses these
3524* profiles, when available, otherwise it attempts to load an OpenGL ES
3525* library, e.g. that provided by the ANGLE project. This variable controls
3526* whether SDL follows this default behaviour or will always load an OpenGL ES
3527* library.
3528*
3529* Circumstances where this is useful include:
3530*
3531* - Testing an app with a particular OpenGL ES implementation, e.g ANGLE, or
3532*   emulator, e.g. those from ARM, Imagination or Qualcomm.
3533* - Resolving OpenGL ES function addresses at link time by linking with the
3534*   OpenGL ES library instead of querying them at run time with
3535*   SDL_GL_GetProcAddress().
3536*
3537* Caution: for an application to work with the default behaviour across
3538* different OpenGL drivers it must query the OpenGL ES function addresses at
3539* run time using SDL_GL_GetProcAddress().
3540*
3541* This variable is ignored on most platforms because OpenGL ES is native or
3542* not supported.
3543*
3544* The variable can be set to the following values:
3545*
3546* - "0": Use ES profile of OpenGL, if available. (default)
3547* - "1": Load OpenGL ES library using the default library names.
3548*
3549* This hint should be set before SDL is initialized.
3550*
3551* \since This hint is available since SDL 3.2.0.
3552*/
3553pub const SDL_HINT_OPENGL_ES_DRIVER: Hint = Hint {
3554    name: "SDL_HINT_OPENGL_ES_DRIVER",
3555    value: "SDL_OPENGL_ES_DRIVER",
3556    doc: "/**\n* A variable controlling what driver to use for OpenGL ES contexts.\n*\n* On some platforms, currently Windows and X11, OpenGL drivers may support\n* creating contexts with an OpenGL ES profile. By default SDL uses these\n* profiles, when available, otherwise it attempts to load an OpenGL ES\n* library, e.g. that provided by the ANGLE project. This variable controls\n* whether SDL follows this default behaviour or will always load an OpenGL ES\n* library.\n*\n* Circumstances where this is useful include:\n*\n* - Testing an app with a particular OpenGL ES implementation, e.g ANGLE, or\n*   emulator, e.g. those from ARM, Imagination or Qualcomm.\n* - Resolving OpenGL ES function addresses at link time by linking with the\n*   OpenGL ES library instead of querying them at run time with\n*   SDL_GL_GetProcAddress().\n*\n* Caution: for an application to work with the default behaviour across\n* different OpenGL drivers it must query the OpenGL ES function addresses at\n* run time using SDL_GL_GetProcAddress().\n*\n* This variable is ignored on most platforms because OpenGL ES is native or\n* not supported.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Use ES profile of OpenGL, if available. (default)\n* - \"1\": Load OpenGL ES library using the default library names.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3557};
3558/**
3559* A variable controlling whether to force an sRGB-capable OpenGL context.
3560*
3561* At OpenGL context creation time, some platforms can request an sRGB-capable
3562* context. However, sometimes any form of the request can cause surprising
3563* results on some drivers, platforms, and hardware. Usually the surprise is
3564* in the form of rendering that is either a little darker or a little
3565* brighter than intended.
3566*
3567* This hint allows the user to override the app's sRGB requests and either
3568* force a specific value, or avoid requesting anything at all, depending on
3569* what makes things work correctly for their system.
3570*
3571* This is meant as a fail-safe; apps should probably not explicitly set this,
3572* and most users should not, either.
3573*
3574* Note that some platforms cannot make this request at all, and on all
3575* platforms this request can be denied by the operating system.
3576*
3577* In addition to attempting to obtain the type of sRGB-capable OpenGL context
3578* requested by this hint, SDL will try to force the state of
3579* GL_FRAMEBUFFER_SRGB on the new context, if appropriate.
3580*
3581* The variable can be set to the following values:
3582*
3583* - "0": Force a request for an OpenGL context that is _not_ sRGB-capable.
3584* - "1": Force a request for an OpenGL context that _is_ sRGB-capable.
3585* - "skip": Don't make any request for an sRGB-capable context (don't specify
3586*   the attribute at all during context creation time).
3587* - any other string is undefined behavior.
3588*
3589* If unset, or set to an empty string, SDL will make a request using the
3590* value the app specified with the SDL_GL_FRAMEBUFFER_SRGB_CAPABLE attribute.
3591*
3592* This hint should be set before an OpenGL context is created.
3593*
3594* \since This hint is available since SDL 3.4.2.
3595*/
3596pub const SDL_HINT_OPENGL_FORCE_SRGB_FRAMEBUFFER: Hint = Hint {
3597    name: "SDL_HINT_OPENGL_FORCE_SRGB_FRAMEBUFFER",
3598    value: "SDL_OPENGL_FORCE_SRGB_FRAMEBUFFER",
3599    doc: "/**\n* A variable controlling whether to force an sRGB-capable OpenGL context.\n*\n* At OpenGL context creation time, some platforms can request an sRGB-capable\n* context. However, sometimes any form of the request can cause surprising\n* results on some drivers, platforms, and hardware. Usually the surprise is\n* in the form of rendering that is either a little darker or a little\n* brighter than intended.\n*\n* This hint allows the user to override the app's sRGB requests and either\n* force a specific value, or avoid requesting anything at all, depending on\n* what makes things work correctly for their system.\n*\n* This is meant as a fail-safe; apps should probably not explicitly set this,\n* and most users should not, either.\n*\n* Note that some platforms cannot make this request at all, and on all\n* platforms this request can be denied by the operating system.\n*\n* In addition to attempting to obtain the type of sRGB-capable OpenGL context\n* requested by this hint, SDL will try to force the state of\n* GL_FRAMEBUFFER_SRGB on the new context, if appropriate.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Force a request for an OpenGL context that is _not_ sRGB-capable.\n* - \"1\": Force a request for an OpenGL context that _is_ sRGB-capable.\n* - \"skip\": Don't make any request for an sRGB-capable context (don't specify\n*   the attribute at all during context creation time).\n* - any other string is undefined behavior.\n*\n* If unset, or set to an empty string, SDL will make a request using the\n* value the app specified with the SDL_GL_FRAMEBUFFER_SRGB_CAPABLE attribute.\n*\n* This hint should be set before an OpenGL context is created.\n*\n* \\since This hint is available since SDL 3.4.2.\n*/\n",
3600};
3601/**
3602* Mechanism to specify openvr_api library location
3603*
3604* By default, when using the OpenVR driver, it will search for the API
3605* library in the current folder. But, if you wish to use a system API you can
3606* specify that by using this hint. This should be the full or relative path
3607* to a .dll on Windows or .so on Linux.
3608*
3609* \since This hint is available since SDL 3.2.0.
3610*/
3611pub const SDL_HINT_OPENVR_LIBRARY: Hint = Hint {
3612    name: "SDL_HINT_OPENVR_LIBRARY",
3613    value: "SDL_OPENVR_LIBRARY",
3614    doc: "/**\n* Mechanism to specify openvr_api library location\n*\n* By default, when using the OpenVR driver, it will search for the API\n* library in the current folder. But, if you wish to use a system API you can\n* specify that by using this hint. This should be the full or relative path\n* to a .dll on Windows or .so on Linux.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3615};
3616/**
3617* A variable controlling which orientations are allowed on iOS/Android.
3618*
3619* In some circumstances it is necessary to be able to explicitly control
3620* which UI orientations are allowed.
3621*
3622* This variable is a space delimited list of the following values:
3623*
3624* - "LandscapeLeft"
3625* - "LandscapeRight"
3626* - "Portrait"
3627* - "PortraitUpsideDown"
3628*
3629* This hint should be set before SDL is initialized.
3630*
3631* \since This hint is available since SDL 3.2.0.
3632*/
3633pub const SDL_HINT_ORIENTATIONS: Hint = Hint {
3634    name: "SDL_HINT_ORIENTATIONS",
3635    value: "SDL_ORIENTATIONS",
3636    doc: "/**\n* A variable controlling which orientations are allowed on iOS/Android.\n*\n* In some circumstances it is necessary to be able to explicitly control\n* which UI orientations are allowed.\n*\n* This variable is a space delimited list of the following values:\n*\n* - \"LandscapeLeft\"\n* - \"LandscapeRight\"\n* - \"Portrait\"\n* - \"PortraitUpsideDown\"\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3637};
3638/**
3639* A variable controlling the use of a sentinel event when polling the event
3640* queue.
3641*
3642* When polling for events, SDL_PumpEvents is used to gather new events from
3643* devices. If a device keeps producing new events between calls to
3644* SDL_PumpEvents, a poll loop will become stuck until the new events stop.
3645* This is most noticeable when moving a high frequency mouse.
3646*
3647* The variable can be set to the following values:
3648*
3649* - "0": Disable poll sentinels.
3650* - "1": Enable poll sentinels. (default)
3651*
3652* This hint can be set anytime.
3653*
3654* \since This hint is available since SDL 3.2.0.
3655*/
3656pub const SDL_HINT_POLL_SENTINEL: Hint = Hint {
3657    name: "SDL_HINT_POLL_SENTINEL",
3658    value: "SDL_POLL_SENTINEL",
3659    doc: "/**\n* A variable controlling the use of a sentinel event when polling the event\n* queue.\n*\n* When polling for events, SDL_PumpEvents is used to gather new events from\n* devices. If a device keeps producing new events between calls to\n* SDL_PumpEvents, a poll loop will become stuck until the new events stop.\n* This is most noticeable when moving a high frequency mouse.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Disable poll sentinels.\n* - \"1\": Enable poll sentinels. (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3660};
3661/**
3662* Override for SDL_GetPreferredLocales().
3663*
3664* If set, this will be favored over anything the OS might report for the
3665* user's preferred locales. Changing this hint at runtime will not generate a
3666* SDL_EVENT_LOCALE_CHANGED event (but if you can change the hint, you can
3667* push your own event, if you want).
3668*
3669* The format of this hint is a comma-separated list of language and locale,
3670* combined with an underscore, as is a common format: "en_GB". Locale is
3671* optional: "en". So you might have a list like this: "en_GB,jp,es_PT"
3672*
3673* This hint can be set anytime.
3674*
3675* \since This hint is available since SDL 3.2.0.
3676*/
3677pub const SDL_HINT_PREFERRED_LOCALES: Hint = Hint {
3678    name: "SDL_HINT_PREFERRED_LOCALES",
3679    value: "SDL_PREFERRED_LOCALES",
3680    doc: "/**\n* Override for SDL_GetPreferredLocales().\n*\n* If set, this will be favored over anything the OS might report for the\n* user's preferred locales. Changing this hint at runtime will not generate a\n* SDL_EVENT_LOCALE_CHANGED event (but if you can change the hint, you can\n* push your own event, if you want).\n*\n* The format of this hint is a comma-separated list of language and locale,\n* combined with an underscore, as is a common format: \"en_GB\". Locale is\n* optional: \"en\". So you might have a list like this: \"en_GB,jp,es_PT\"\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3681};
3682/**
3683* A variable that decides whether to send SDL_EVENT_QUIT when closing the
3684* last window.
3685*
3686* The variable can be set to the following values:
3687*
3688* - "0": SDL will not send an SDL_EVENT_QUIT event when the last window is
3689*   requesting to close. Note that in this case, there are still other
3690*   legitimate reasons one might get an SDL_EVENT_QUIT event: choosing "Quit"
3691*   from the macOS menu bar, sending a SIGINT (ctrl-c) on Unix, etc.
3692* - "1": SDL will send a quit event when the last window is requesting to
3693*   close. (default)
3694*
3695* If there is at least one active system tray icon, SDL_EVENT_QUIT will
3696* instead be sent when both the last window will be closed and the last tray
3697* icon will be destroyed.
3698*
3699* This hint can be set anytime.
3700*
3701* \since This hint is available since SDL 3.2.0.
3702*/
3703pub const SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE: Hint = Hint {
3704    name: "SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE",
3705    value: "SDL_QUIT_ON_LAST_WINDOW_CLOSE",
3706    doc: "/**\n* A variable that decides whether to send SDL_EVENT_QUIT when closing the\n* last window.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": SDL will not send an SDL_EVENT_QUIT event when the last window is\n*   requesting to close. Note that in this case, there are still other\n*   legitimate reasons one might get an SDL_EVENT_QUIT event: choosing \"Quit\"\n*   from the macOS menu bar, sending a SIGINT (ctrl-c) on Unix, etc.\n* - \"1\": SDL will send a quit event when the last window is requesting to\n*   close. (default)\n*\n* If there is at least one active system tray icon, SDL_EVENT_QUIT will\n* instead be sent when both the last window will be closed and the last tray\n* icon will be destroyed.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3707};
3708/**
3709* A variable controlling whether the Direct3D device is initialized for
3710* thread-safe operations.
3711*
3712* The variable can be set to the following values:
3713*
3714* - "0": Thread-safety is not enabled. (default)
3715* - "1": Thread-safety is enabled.
3716*
3717* This hint should be set before creating a renderer.
3718*
3719* \since This hint is available since SDL 3.2.0.
3720*/
3721pub const SDL_HINT_RENDER_DIRECT3D_THREADSAFE: Hint = Hint {
3722    name: "SDL_HINT_RENDER_DIRECT3D_THREADSAFE",
3723    value: "SDL_RENDER_DIRECT3D_THREADSAFE",
3724    doc: "/**\n* A variable controlling whether the Direct3D device is initialized for\n* thread-safe operations.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Thread-safety is not enabled. (default)\n* - \"1\": Thread-safety is enabled.\n*\n* This hint should be set before creating a renderer.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3725};
3726/**
3727* A variable controlling whether to enable Direct3D 11+'s Debug Layer.
3728*
3729* This variable does not have any effect on the Direct3D 9 based renderer.
3730*
3731* The variable can be set to the following values:
3732*
3733* - "0": Disable Debug Layer use. (default)
3734* - "1": Enable Debug Layer use.
3735*
3736* This hint should be set before creating a renderer.
3737*
3738* \since This hint is available since SDL 3.2.0.
3739*/
3740pub const SDL_HINT_RENDER_DIRECT3D11_DEBUG: Hint = Hint {
3741    name: "SDL_HINT_RENDER_DIRECT3D11_DEBUG",
3742    value: "SDL_RENDER_DIRECT3D11_DEBUG",
3743    doc: "/**\n* A variable controlling whether to enable Direct3D 11+'s Debug Layer.\n*\n* This variable does not have any effect on the Direct3D 9 based renderer.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Disable Debug Layer use. (default)\n* - \"1\": Enable Debug Layer use.\n*\n* This hint should be set before creating a renderer.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3744};
3745/**
3746* A variable controlling whether to use the Direct3D 11 WARP software
3747* rasterizer.
3748*
3749* For more information, see:
3750* https://learn.microsoft.com/en-us/windows/win32/direct3darticles/directx-warp
3751*
3752* The variable can be set to the following values:
3753*
3754* - "0": Disable WARP rasterizer. (default)
3755* - "1": Enable WARP rasterizer.
3756*
3757* This hint should be set before creating a renderer.
3758*
3759* \since This hint is available since SDL 3.4.0.
3760*/
3761pub const SDL_HINT_RENDER_DIRECT3D11_WARP: Hint = Hint {
3762    name: "SDL_HINT_RENDER_DIRECT3D11_WARP",
3763    value: "SDL_RENDER_DIRECT3D11_WARP",
3764    doc: "/**\n* A variable controlling whether to use the Direct3D 11 WARP software\n* rasterizer.\n*\n* For more information, see:\n* https://learn.microsoft.com/en-us/windows/win32/direct3darticles/directx-warp\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Disable WARP rasterizer. (default)\n* - \"1\": Enable WARP rasterizer.\n*\n* This hint should be set before creating a renderer.\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
3765};
3766/**
3767* A variable controlling whether to enable Vulkan Validation Layers.
3768*
3769* This variable can be set to the following values:
3770*
3771* - "0": Disable Validation Layer use
3772* - "1": Enable Validation Layer use
3773*
3774* By default, SDL does not use Vulkan Validation Layers.
3775*
3776* \since This hint is available since SDL 3.2.0.
3777*/
3778pub const SDL_HINT_RENDER_VULKAN_DEBUG: Hint = Hint {
3779    name: "SDL_HINT_RENDER_VULKAN_DEBUG",
3780    value: "SDL_RENDER_VULKAN_DEBUG",
3781    doc: "/**\n* A variable controlling whether to enable Vulkan Validation Layers.\n*\n* This variable can be set to the following values:\n*\n* - \"0\": Disable Validation Layer use\n* - \"1\": Enable Validation Layer use\n*\n* By default, SDL does not use Vulkan Validation Layers.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3782};
3783/**
3784* A variable controlling whether to create the GPU device in debug mode.
3785*
3786* This variable can be set to the following values:
3787*
3788* - "0": Disable debug mode use (default)
3789* - "1": Enable debug mode use
3790*
3791* This hint should be set before creating a renderer.
3792*
3793* \since This hint is available since SDL 3.2.0.
3794*/
3795pub const SDL_HINT_RENDER_GPU_DEBUG: Hint = Hint {
3796    name: "SDL_HINT_RENDER_GPU_DEBUG",
3797    value: "SDL_RENDER_GPU_DEBUG",
3798    doc: "/**\n* A variable controlling whether to create the GPU device in debug mode.\n*\n* This variable can be set to the following values:\n*\n* - \"0\": Disable debug mode use (default)\n* - \"1\": Enable debug mode use\n*\n* This hint should be set before creating a renderer.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3799};
3800/**
3801* A variable controlling whether to prefer a low-power GPU on multi-GPU
3802* systems.
3803*
3804* This variable can be set to the following values:
3805*
3806* - "0": Prefer high-performance GPU (default)
3807* - "1": Prefer low-power GPU
3808*
3809* This hint should be set before creating a renderer.
3810*
3811* \since This hint is available since SDL 3.2.0.
3812*/
3813pub const SDL_HINT_RENDER_GPU_LOW_POWER: Hint = Hint {
3814    name: "SDL_HINT_RENDER_GPU_LOW_POWER",
3815    value: "SDL_RENDER_GPU_LOW_POWER",
3816    doc: "/**\n* A variable controlling whether to prefer a low-power GPU on multi-GPU\n* systems.\n*\n* This variable can be set to the following values:\n*\n* - \"0\": Prefer high-performance GPU (default)\n* - \"1\": Prefer low-power GPU\n*\n* This hint should be set before creating a renderer.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3817};
3818/**
3819* A variable specifying which render driver to use.
3820*
3821* If the application doesn't pick a specific renderer to use, this variable
3822* specifies the name of the preferred renderer. If the preferred renderer
3823* can't be initialized, creating a renderer will fail.
3824*
3825* This variable is case insensitive and can be set to the following values:
3826*
3827* - "direct3d"
3828* - "direct3d11"
3829* - "direct3d12"
3830* - "opengl"
3831* - "opengles2"
3832* - "opengles"
3833* - "metal"
3834* - "vulkan"
3835* - "gpu"
3836* - "software"
3837*
3838* This hint accepts a comma-separated list of driver names, and each will be
3839* tried in the order listed when creating a renderer until one succeeds or
3840* all of them fail.
3841*
3842* The default varies by platform, but it's the first one in the list that is
3843* available on the current platform.
3844*
3845* This hint should be set before creating a renderer.
3846*
3847* \since This hint is available since SDL 3.2.0.
3848*/
3849pub const SDL_HINT_RENDER_DRIVER: Hint = Hint {
3850    name: "SDL_HINT_RENDER_DRIVER",
3851    value: "SDL_RENDER_DRIVER",
3852    doc: "/**\n* A variable specifying which render driver to use.\n*\n* If the application doesn't pick a specific renderer to use, this variable\n* specifies the name of the preferred renderer. If the preferred renderer\n* can't be initialized, creating a renderer will fail.\n*\n* This variable is case insensitive and can be set to the following values:\n*\n* - \"direct3d\"\n* - \"direct3d11\"\n* - \"direct3d12\"\n* - \"opengl\"\n* - \"opengles2\"\n* - \"opengles\"\n* - \"metal\"\n* - \"vulkan\"\n* - \"gpu\"\n* - \"software\"\n*\n* This hint accepts a comma-separated list of driver names, and each will be\n* tried in the order listed when creating a renderer until one succeeds or\n* all of them fail.\n*\n* The default varies by platform, but it's the first one in the list that is\n* available on the current platform.\n*\n* This hint should be set before creating a renderer.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3853};
3854/**
3855* A variable controlling how the 2D render API renders lines.
3856*
3857* The variable can be set to the following values:
3858*
3859* - "0": Use the default line drawing method (Bresenham's line algorithm)
3860* - "1": Use the driver point API using Bresenham's line algorithm (correct,
3861*   draws many points)
3862* - "2": Use the driver line API (occasionally misses line endpoints based on
3863*   hardware driver quirks
3864* - "3": Use the driver geometry API (correct, draws thicker diagonal lines)
3865*
3866* This hint should be set before creating a renderer.
3867*
3868* \since This hint is available since SDL 3.2.0.
3869*/
3870pub const SDL_HINT_RENDER_LINE_METHOD: Hint = Hint {
3871    name: "SDL_HINT_RENDER_LINE_METHOD",
3872    value: "SDL_RENDER_LINE_METHOD",
3873    doc: "/**\n* A variable controlling how the 2D render API renders lines.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Use the default line drawing method (Bresenham's line algorithm)\n* - \"1\": Use the driver point API using Bresenham's line algorithm (correct,\n*   draws many points)\n* - \"2\": Use the driver line API (occasionally misses line endpoints based on\n*   hardware driver quirks\n* - \"3\": Use the driver geometry API (correct, draws thicker diagonal lines)\n*\n* This hint should be set before creating a renderer.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3874};
3875/**
3876* A variable controlling whether the Metal render driver select low power
3877* device over default one.
3878*
3879* The variable can be set to the following values:
3880*
3881* - "0": Use the preferred OS device. (default)
3882* - "1": Select a low power device.
3883*
3884* This hint should be set before creating a renderer.
3885*
3886* \since This hint is available since SDL 3.2.0.
3887*/
3888pub const SDL_HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICE: Hint = Hint {
3889    name: "SDL_HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICE",
3890    value: "SDL_RENDER_METAL_PREFER_LOW_POWER_DEVICE",
3891    doc: "/**\n* A variable controlling whether the Metal render driver select low power\n* device over default one.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Use the preferred OS device. (default)\n* - \"1\": Select a low power device.\n*\n* This hint should be set before creating a renderer.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3892};
3893/**
3894* A variable controlling whether updates to the SDL screen surface should be
3895* synchronized with the vertical refresh, to avoid tearing.
3896*
3897* This hint overrides the application preference when creating a renderer.
3898*
3899* The variable can be set to the following values:
3900*
3901* - "0": Disable vsync. (default)
3902* - "1": Enable vsync.
3903*
3904* This hint should be set before creating a renderer.
3905*
3906* \since This hint is available since SDL 3.2.0.
3907*/
3908pub const SDL_HINT_RENDER_VSYNC: Hint = Hint {
3909    name: "SDL_HINT_RENDER_VSYNC",
3910    value: "SDL_RENDER_VSYNC",
3911    doc: "/**\n* A variable controlling whether updates to the SDL screen surface should be\n* synchronized with the vertical refresh, to avoid tearing.\n*\n* This hint overrides the application preference when creating a renderer.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Disable vsync. (default)\n* - \"1\": Enable vsync.\n*\n* This hint should be set before creating a renderer.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3912};
3913/**
3914* A variable to control whether the return key on the soft keyboard should
3915* hide the soft keyboard on Android and iOS.
3916*
3917* This hint sets the default value of SDL_PROP_TEXTINPUT_MULTILINE_BOOLEAN.
3918*
3919* The variable can be set to the following values:
3920*
3921* - "0": The return key will be handled as a key event. (default)
3922* - "1": The return key will hide the keyboard.
3923*
3924* This hint can be set anytime.
3925*
3926* \since This hint is available since SDL 3.2.0.
3927*/
3928pub const SDL_HINT_RETURN_KEY_HIDES_IME: Hint = Hint {
3929    name: "SDL_HINT_RETURN_KEY_HIDES_IME",
3930    value: "SDL_RETURN_KEY_HIDES_IME",
3931    doc: "/**\n* A variable to control whether the return key on the soft keyboard should\n* hide the soft keyboard on Android and iOS.\n*\n* This hint sets the default value of SDL_PROP_TEXTINPUT_MULTILINE_BOOLEAN.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": The return key will be handled as a key event. (default)\n* - \"1\": The return key will hide the keyboard.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3932};
3933/**
3934* A variable containing a list of ROG gamepad capable mice.
3935*
3936* The format of the string is a comma separated list of USB VID/PID pairs in
3937* hexadecimal form, e.g.
3938*
3939* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`
3940*
3941* The variable can also take the form of "@file", in which case the named
3942* file will be loaded and interpreted as the value of the variable.
3943*
3944* This hint should be set before SDL is initialized.
3945*
3946* \since This hint is available since SDL 3.2.0.
3947*
3948* \sa SDL_HINT_ROG_GAMEPAD_MICE_EXCLUDED
3949*/
3950pub const SDL_HINT_ROG_GAMEPAD_MICE: Hint = Hint {
3951    name: "SDL_HINT_ROG_GAMEPAD_MICE",
3952    value: "SDL_ROG_GAMEPAD_MICE",
3953    doc: "/**\n* A variable containing a list of ROG gamepad capable mice.\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`\n*\n* The variable can also take the form of \"@file\", in which case the named\n* file will be loaded and interpreted as the value of the variable.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*\n* \\sa SDL_HINT_ROG_GAMEPAD_MICE_EXCLUDED\n*/\n",
3954};
3955/**
3956* A variable containing a list of devices that are not ROG gamepad capable
3957* mice.
3958*
3959* This will override SDL_HINT_ROG_GAMEPAD_MICE and the built in device list.
3960*
3961* The format of the string is a comma separated list of USB VID/PID pairs in
3962* hexadecimal form, e.g.
3963*
3964* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`
3965*
3966* The variable can also take the form of "@file", in which case the named
3967* file will be loaded and interpreted as the value of the variable.
3968*
3969* This hint should be set before SDL is initialized.
3970*
3971* \since This hint is available since SDL 3.2.0.
3972*/
3973pub const SDL_HINT_ROG_GAMEPAD_MICE_EXCLUDED: Hint = Hint {
3974    name: "SDL_HINT_ROG_GAMEPAD_MICE_EXCLUDED",
3975    value: "SDL_ROG_GAMEPAD_MICE_EXCLUDED",
3976    doc: "/**\n* A variable containing a list of devices that are not ROG gamepad capable\n* mice.\n*\n* This will override SDL_HINT_ROG_GAMEPAD_MICE and the built in device list.\n*\n* The format of the string is a comma separated list of USB VID/PID pairs in\n* hexadecimal form, e.g.\n*\n* `0xAAAA/0xBBBB,0xCCCC/0xDDDD`\n*\n* The variable can also take the form of \"@file\", in which case the named\n* file will be loaded and interpreted as the value of the variable.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
3977};
3978/**
3979* A variable controlling the width of the PS2's framebuffer in pixels.
3980*
3981* By default, the variable is "640".
3982*
3983* \since This hint is available since SDL 3.4.0.
3984*/
3985pub const SDL_HINT_PS2_GS_WIDTH: Hint = Hint {
3986    name: "SDL_HINT_PS2_GS_WIDTH",
3987    value: "SDL_PS2_GS_WIDTH",
3988    doc: "/**\n* A variable controlling the width of the PS2's framebuffer in pixels.\n*\n* By default, the variable is \"640\".\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
3989};
3990/**
3991* A variable controlling the height of the PS2's framebuffer in pixels.
3992*
3993* By default, the variable is "448".
3994*
3995* \since This hint is available since SDL 3.4.0.
3996*/
3997pub const SDL_HINT_PS2_GS_HEIGHT: Hint = Hint {
3998    name: "SDL_HINT_PS2_GS_HEIGHT",
3999    value: "SDL_PS2_GS_HEIGHT",
4000    doc: "/**\n* A variable controlling the height of the PS2's framebuffer in pixels.\n*\n* By default, the variable is \"448\".\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
4001};
4002/**
4003* A variable controlling whether the signal is interlaced or progressive.
4004*
4005* The variable can be set to the following values:
4006*
4007* - "0": Image is interlaced. (default)
4008* - "1": Image is progressive.
4009*
4010* \since This hint is available since SDL 3.4.0.
4011*/
4012pub const SDL_HINT_PS2_GS_PROGRESSIVE: Hint = Hint {
4013    name: "SDL_HINT_PS2_GS_PROGRESSIVE",
4014    value: "SDL_PS2_GS_PROGRESSIVE",
4015    doc: "/**\n* A variable controlling whether the signal is interlaced or progressive.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Image is interlaced. (default)\n* - \"1\": Image is progressive.\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
4016};
4017/**
4018* A variable controlling the video mode of the console.
4019*
4020* The variable can be set to the following values:
4021*
4022* - "": Console-native. (default)
4023* - "NTSC": 60hz region.
4024* - "PAL": 50hz region.
4025*
4026* \since This hint is available since SDL 3.4.0.
4027*/
4028pub const SDL_HINT_PS2_GS_MODE: Hint = Hint {
4029    name: "SDL_HINT_PS2_GS_MODE",
4030    value: "SDL_PS2_GS_MODE",
4031    doc: "/**\n* A variable controlling the video mode of the console.\n*\n* The variable can be set to the following values:\n*\n* - \"\": Console-native. (default)\n* - \"NTSC\": 60hz region.\n* - \"PAL\": 50hz region.\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
4032};
4033/**
4034* A variable controlling which Dispmanx layer to use on a Raspberry PI.
4035*
4036* Also known as Z-order. The variable can take a negative or positive value.
4037* The default is 10000.
4038*
4039* This hint should be set before SDL is initialized.
4040*
4041* \since This hint is available since SDL 3.2.0.
4042*/
4043pub const SDL_HINT_RPI_VIDEO_LAYER: Hint = Hint {
4044    name: "SDL_HINT_RPI_VIDEO_LAYER",
4045    value: "SDL_RPI_VIDEO_LAYER",
4046    doc: "/**\n* A variable controlling which Dispmanx layer to use on a Raspberry PI.\n*\n* Also known as Z-order. The variable can take a negative or positive value.\n* The default is 10000.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4047};
4048/**
4049* Specify an "activity name" for screensaver inhibition.
4050*
4051* Some platforms, notably Linux desktops, list the applications which are
4052* inhibiting the screensaver or other power-saving features.
4053*
4054* This hint lets you specify the "activity name" sent to the OS when
4055* SDL_DisableScreenSaver() is used (or the screensaver is automatically
4056* disabled). The contents of this hint are used when the screensaver is
4057* disabled. You should use a string that describes what your program is doing
4058* (and, therefore, why the screensaver is disabled). For example, "Playing a
4059* game" or "Watching a video".
4060*
4061* Setting this to "" or leaving it unset will have SDL use a reasonable
4062* default: "Playing a game" or something similar.
4063*
4064* This hint should be set before calling SDL_DisableScreenSaver()
4065*
4066* \since This hint is available since SDL 3.2.0.
4067*/
4068pub const SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME: Hint = Hint {
4069    name: "SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME",
4070    value: "SDL_SCREENSAVER_INHIBIT_ACTIVITY_NAME",
4071    doc: "/**\n* Specify an \"activity name\" for screensaver inhibition.\n*\n* Some platforms, notably Linux desktops, list the applications which are\n* inhibiting the screensaver or other power-saving features.\n*\n* This hint lets you specify the \"activity name\" sent to the OS when\n* SDL_DisableScreenSaver() is used (or the screensaver is automatically\n* disabled). The contents of this hint are used when the screensaver is\n* disabled. You should use a string that describes what your program is doing\n* (and, therefore, why the screensaver is disabled). For example, \"Playing a\n* game\" or \"Watching a video\".\n*\n* Setting this to \"\" or leaving it unset will have SDL use a reasonable\n* default: \"Playing a game\" or something similar.\n*\n* This hint should be set before calling SDL_DisableScreenSaver()\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4072};
4073/**
4074* A variable controlling whether SDL calls dbus_shutdown() on quit.
4075*
4076* This is useful as a debug tool to validate memory leaks, but shouldn't ever
4077* be set in production applications, as other libraries used by the
4078* application might use dbus under the hood and this can cause crashes if
4079* they continue after SDL_Quit().
4080*
4081* The variable can be set to the following values:
4082*
4083* - "0": SDL will not call dbus_shutdown() on quit. (default)
4084* - "1": SDL will call dbus_shutdown() on quit.
4085*
4086* This hint can be set anytime.
4087*
4088* \since This hint is available since SDL 3.2.0.
4089*/
4090pub const SDL_HINT_SHUTDOWN_DBUS_ON_QUIT: Hint = Hint {
4091    name: "SDL_HINT_SHUTDOWN_DBUS_ON_QUIT",
4092    value: "SDL_SHUTDOWN_DBUS_ON_QUIT",
4093    doc: "/**\n* A variable controlling whether SDL calls dbus_shutdown() on quit.\n*\n* This is useful as a debug tool to validate memory leaks, but shouldn't ever\n* be set in production applications, as other libraries used by the\n* application might use dbus under the hood and this can cause crashes if\n* they continue after SDL_Quit().\n*\n* The variable can be set to the following values:\n*\n* - \"0\": SDL will not call dbus_shutdown() on quit. (default)\n* - \"1\": SDL will call dbus_shutdown() on quit.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4094};
4095/**
4096* A variable that specifies a backend to use for title storage.
4097*
4098* By default, SDL will try all available storage backends in a reasonable
4099* order until it finds one that can work, but this hint allows the app or
4100* user to force a specific target, such as "pc" if, say, you are on Steam but
4101* want to avoid SteamRemoteStorage for title data.
4102*
4103* This hint should be set before SDL is initialized.
4104*
4105* \since This hint is available since SDL 3.2.0.
4106*/
4107pub const SDL_HINT_STORAGE_TITLE_DRIVER: Hint = Hint {
4108    name: "SDL_HINT_STORAGE_TITLE_DRIVER",
4109    value: "SDL_STORAGE_TITLE_DRIVER",
4110    doc: "/**\n* A variable that specifies a backend to use for title storage.\n*\n* By default, SDL will try all available storage backends in a reasonable\n* order until it finds one that can work, but this hint allows the app or\n* user to force a specific target, such as \"pc\" if, say, you are on Steam but\n* want to avoid SteamRemoteStorage for title data.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4111};
4112/**
4113* A variable that specifies a backend to use for user storage.
4114*
4115* By default, SDL will try all available storage backends in a reasonable
4116* order until it finds one that can work, but this hint allows the app or
4117* user to force a specific target, such as "pc" if, say, you are on Steam but
4118* want to avoid SteamRemoteStorage for user data.
4119*
4120* This hint should be set before SDL is initialized.
4121*
4122* \since This hint is available since SDL 3.2.0.
4123*/
4124pub const SDL_HINT_STORAGE_USER_DRIVER: Hint = Hint {
4125    name: "SDL_HINT_STORAGE_USER_DRIVER",
4126    value: "SDL_STORAGE_USER_DRIVER",
4127    doc: "/**\n* A variable that specifies a backend to use for user storage.\n*\n* By default, SDL will try all available storage backends in a reasonable\n* order until it finds one that can work, but this hint allows the app or\n* user to force a specific target, such as \"pc\" if, say, you are on Steam but\n* want to avoid SteamRemoteStorage for user data.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4128};
4129/**
4130* Specifies whether SDL_THREAD_PRIORITY_TIME_CRITICAL should be treated as
4131* realtime.
4132*
4133* On some platforms, like Linux, a realtime priority thread may be subject to
4134* restrictions that require special handling by the application. This hint
4135* exists to let SDL know that the app is prepared to handle said
4136* restrictions.
4137*
4138* On Linux, SDL will apply the following configuration to any thread that
4139* becomes realtime:
4140*
4141* - The SCHED_RESET_ON_FORK bit will be set on the scheduling policy,
4142* - An RLIMIT_RTTIME budget will be configured to the rtkit specified limit.
4143* - Exceeding this limit will result in the kernel sending SIGKILL to the
4144*   app, refer to the man pages for more information.
4145*
4146* The variable can be set to the following values:
4147*
4148* - "0": default platform specific behaviour
4149* - "1": Force SDL_THREAD_PRIORITY_TIME_CRITICAL to a realtime scheduling
4150*   policy
4151*
4152* This hint should be set before calling SDL_SetCurrentThreadPriority()
4153*
4154* \since This hint is available since SDL 3.2.0.
4155*/
4156pub const SDL_HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL: Hint = Hint {
4157    name: "SDL_HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL",
4158    value: "SDL_THREAD_FORCE_REALTIME_TIME_CRITICAL",
4159    doc: "/**\n* Specifies whether SDL_THREAD_PRIORITY_TIME_CRITICAL should be treated as\n* realtime.\n*\n* On some platforms, like Linux, a realtime priority thread may be subject to\n* restrictions that require special handling by the application. This hint\n* exists to let SDL know that the app is prepared to handle said\n* restrictions.\n*\n* On Linux, SDL will apply the following configuration to any thread that\n* becomes realtime:\n*\n* - The SCHED_RESET_ON_FORK bit will be set on the scheduling policy,\n* - An RLIMIT_RTTIME budget will be configured to the rtkit specified limit.\n* - Exceeding this limit will result in the kernel sending SIGKILL to the\n*   app, refer to the man pages for more information.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": default platform specific behaviour\n* - \"1\": Force SDL_THREAD_PRIORITY_TIME_CRITICAL to a realtime scheduling\n*   policy\n*\n* This hint should be set before calling SDL_SetCurrentThreadPriority()\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4160};
4161/**
4162* A string specifying additional information to use with
4163* SDL_SetCurrentThreadPriority.
4164*
4165* By default SDL_SetCurrentThreadPriority will make appropriate system
4166* changes in order to apply a thread priority. For example on systems using
4167* pthreads the scheduler policy is changed automatically to a policy that
4168* works well with a given priority. Code which has specific requirements can
4169* override SDL's default behavior with this hint.
4170*
4171* pthread hint values are "current", "other", "fifo" and "rr". Currently no
4172* other platform hint values are defined but may be in the future.
4173*
4174* On Linux, the kernel may send SIGKILL to realtime tasks which exceed the
4175* distro configured execution budget for rtkit. This budget can be queried
4176* through RLIMIT_RTTIME after calling SDL_SetCurrentThreadPriority().
4177*
4178* This hint should be set before calling SDL_SetCurrentThreadPriority()
4179*
4180* \since This hint is available since SDL 3.2.0.
4181*/
4182pub const SDL_HINT_THREAD_PRIORITY_POLICY: Hint = Hint {
4183    name: "SDL_HINT_THREAD_PRIORITY_POLICY",
4184    value: "SDL_THREAD_PRIORITY_POLICY",
4185    doc: "/**\n* A string specifying additional information to use with\n* SDL_SetCurrentThreadPriority.\n*\n* By default SDL_SetCurrentThreadPriority will make appropriate system\n* changes in order to apply a thread priority. For example on systems using\n* pthreads the scheduler policy is changed automatically to a policy that\n* works well with a given priority. Code which has specific requirements can\n* override SDL's default behavior with this hint.\n*\n* pthread hint values are \"current\", \"other\", \"fifo\" and \"rr\". Currently no\n* other platform hint values are defined but may be in the future.\n*\n* On Linux, the kernel may send SIGKILL to realtime tasks which exceed the\n* distro configured execution budget for rtkit. This budget can be queried\n* through RLIMIT_RTTIME after calling SDL_SetCurrentThreadPriority().\n*\n* This hint should be set before calling SDL_SetCurrentThreadPriority()\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4186};
4187/**
4188* A variable that controls the timer resolution, in milliseconds.
4189*
4190* The higher resolution the timer, the more frequently the CPU services timer
4191* interrupts, and the more precise delays are, but this takes up power and
4192* CPU time. This hint is only used on Windows.
4193*
4194* See this blog post for more information:
4195* http://randomascii.wordpress.com/2013/07/08/windows-timer-resolution-megawatts-wasted/
4196*
4197* The default value is "1".
4198*
4199* If this variable is set to "0", the system timer resolution is not set.
4200*
4201* This hint can be set anytime.
4202*
4203* \since This hint is available since SDL 3.2.0.
4204*/
4205pub const SDL_HINT_TIMER_RESOLUTION: Hint = Hint {
4206    name: "SDL_HINT_TIMER_RESOLUTION",
4207    value: "SDL_TIMER_RESOLUTION",
4208    doc: "/**\n* A variable that controls the timer resolution, in milliseconds.\n*\n* The higher resolution the timer, the more frequently the CPU services timer\n* interrupts, and the more precise delays are, but this takes up power and\n* CPU time. This hint is only used on Windows.\n*\n* See this blog post for more information:\n* http://randomascii.wordpress.com/2013/07/08/windows-timer-resolution-megawatts-wasted/\n*\n* The default value is \"1\".\n*\n* If this variable is set to \"0\", the system timer resolution is not set.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4209};
4210/**
4211* A variable controlling whether touch events should generate synthetic mouse
4212* events.
4213*
4214* The variable can be set to the following values:
4215*
4216* - "0": Touch events will not generate mouse events.
4217* - "1": Touch events will generate mouse events. (default)
4218*
4219* This hint can be set anytime.
4220*
4221* \since This hint is available since SDL 3.2.0.
4222*/
4223pub const SDL_HINT_TOUCH_MOUSE_EVENTS: Hint = Hint {
4224    name: "SDL_HINT_TOUCH_MOUSE_EVENTS",
4225    value: "SDL_TOUCH_MOUSE_EVENTS",
4226    doc: "/**\n* A variable controlling whether touch events should generate synthetic mouse\n* events.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Touch events will not generate mouse events.\n* - \"1\": Touch events will generate mouse events. (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4227};
4228/**
4229* A variable controlling whether trackpads should be treated as touch
4230* devices.
4231*
4232* On macOS (and possibly other platforms in the future), SDL will report
4233* touches on a trackpad as mouse input, which is generally what users expect
4234* from this device; however, these are often actually full multitouch-capable
4235* touch devices, so it might be preferable to some apps to treat them as
4236* such.
4237*
4238* The variable can be set to the following values:
4239*
4240* - "0": Trackpad will send mouse events. (default)
4241* - "1": Trackpad will send touch events.
4242*
4243* This hint should be set before SDL is initialized.
4244*
4245* \since This hint is available since SDL 3.2.0.
4246*/
4247pub const SDL_HINT_TRACKPAD_IS_TOUCH_ONLY: Hint = Hint {
4248    name: "SDL_HINT_TRACKPAD_IS_TOUCH_ONLY",
4249    value: "SDL_TRACKPAD_IS_TOUCH_ONLY",
4250    doc: "/**\n* A variable controlling whether trackpads should be treated as touch\n* devices.\n*\n* On macOS (and possibly other platforms in the future), SDL will report\n* touches on a trackpad as mouse input, which is generally what users expect\n* from this device; however, these are often actually full multitouch-capable\n* touch devices, so it might be preferable to some apps to treat them as\n* such.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Trackpad will send mouse events. (default)\n* - \"1\": Trackpad will send touch events.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4251};
4252/**
4253* A variable controlling whether the Android / tvOS remotes should be listed
4254* as joystick devices, instead of sending keyboard events.
4255*
4256* The variable can be set to the following values:
4257*
4258* - "0": Remotes send enter/escape/arrow key events.
4259* - "1": Remotes are available as 2 axis, 2 button joysticks. (default)
4260*
4261* This hint should be set before SDL is initialized.
4262*
4263* \since This hint is available since SDL 3.2.0.
4264*/
4265pub const SDL_HINT_TV_REMOTE_AS_JOYSTICK: Hint = Hint {
4266    name: "SDL_HINT_TV_REMOTE_AS_JOYSTICK",
4267    value: "SDL_TV_REMOTE_AS_JOYSTICK",
4268    doc: "/**\n* A variable controlling whether the Android / tvOS remotes should be listed\n* as joystick devices, instead of sending keyboard events.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Remotes send enter/escape/arrow key events.\n* - \"1\": Remotes are available as 2 axis, 2 button joysticks. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4269};
4270/**
4271* A variable controlling whether the screensaver is enabled.
4272*
4273* The variable can be set to the following values:
4274*
4275* - "0": Disable screensaver. (default)
4276* - "1": Enable screensaver.
4277*
4278* This hint should be set before SDL is initialized.
4279*
4280* \since This hint is available since SDL 3.2.0.
4281*/
4282pub const SDL_HINT_VIDEO_ALLOW_SCREENSAVER: Hint = Hint {
4283    name: "SDL_HINT_VIDEO_ALLOW_SCREENSAVER",
4284    value: "SDL_VIDEO_ALLOW_SCREENSAVER",
4285    doc: "/**\n* A variable controlling whether the screensaver is enabled.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Disable screensaver. (default)\n* - \"1\": Enable screensaver.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4286};
4287/**
4288* A comma separated list containing the names of the displays that SDL should
4289* sort to the front of the display list.
4290*
4291* When this hint is set, displays with matching name strings will be
4292* prioritized in the list of displays, as exposed by calling
4293* SDL_GetDisplays(), with the first listed becoming the primary display. The
4294* naming convention can vary depending on the environment, but it is usually
4295* a connector name (e.g. 'DP-1', 'DP-2', 'HDMI-A-1', etc...).
4296*
4297* On Wayland desktops, the connector names associated with displays can be
4298* found in the `name` property of the info output from `wayland-info -i
4299* wl_output`. On X11 desktops, the `xrandr` utility can be used to retrieve
4300* the connector names associated with displays.
4301*
4302* This hint is currently supported on the following drivers:
4303*
4304* - KMSDRM (kmsdrm)
4305* - Wayland (wayland)
4306* - X11 (x11)
4307*
4308* This hint should be set before SDL is initialized.
4309*
4310* \since This hint is available since SDL 3.2.0.
4311*/
4312pub const SDL_HINT_VIDEO_DISPLAY_PRIORITY: Hint = Hint {
4313    name: "SDL_HINT_VIDEO_DISPLAY_PRIORITY",
4314    value: "SDL_VIDEO_DISPLAY_PRIORITY",
4315    doc: "/**\n* A comma separated list containing the names of the displays that SDL should\n* sort to the front of the display list.\n*\n* When this hint is set, displays with matching name strings will be\n* prioritized in the list of displays, as exposed by calling\n* SDL_GetDisplays(), with the first listed becoming the primary display. The\n* naming convention can vary depending on the environment, but it is usually\n* a connector name (e.g. 'DP-1', 'DP-2', 'HDMI-A-1', etc...).\n*\n* On Wayland desktops, the connector names associated with displays can be\n* found in the `name` property of the info output from `wayland-info -i\n* wl_output`. On X11 desktops, the `xrandr` utility can be used to retrieve\n* the connector names associated with displays.\n*\n* This hint is currently supported on the following drivers:\n*\n* - KMSDRM (kmsdrm)\n* - Wayland (wayland)\n* - X11 (x11)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4316};
4317/**
4318* Tell the video driver that we only want a double buffer.
4319*
4320* By default, most lowlevel 2D APIs will use a triple buffer scheme that
4321* wastes no CPU time on waiting for vsync after issuing a flip, but
4322* introduces a frame of latency. On the other hand, using a double buffer
4323* scheme instead is recommended for cases where low latency is an important
4324* factor because we save a whole frame of latency.
4325*
4326* We do so by waiting for vsync immediately after issuing a flip, usually
4327* just after eglSwapBuffers call in the backend's *_SwapWindow function.
4328*
4329* This hint is currently supported on the following drivers:
4330*
4331* - Raspberry Pi (raspberrypi)
4332* - Wayland (wayland)
4333*
4334* This hint should be set before SDL is initialized.
4335*
4336* \since This hint is available since SDL 3.2.0.
4337*/
4338pub const SDL_HINT_VIDEO_DOUBLE_BUFFER: Hint = Hint {
4339    name: "SDL_HINT_VIDEO_DOUBLE_BUFFER",
4340    value: "SDL_VIDEO_DOUBLE_BUFFER",
4341    doc: "/**\n* Tell the video driver that we only want a double buffer.\n*\n* By default, most lowlevel 2D APIs will use a triple buffer scheme that\n* wastes no CPU time on waiting for vsync after issuing a flip, but\n* introduces a frame of latency. On the other hand, using a double buffer\n* scheme instead is recommended for cases where low latency is an important\n* factor because we save a whole frame of latency.\n*\n* We do so by waiting for vsync immediately after issuing a flip, usually\n* just after eglSwapBuffers call in the backend's *_SwapWindow function.\n*\n* This hint is currently supported on the following drivers:\n*\n* - Raspberry Pi (raspberrypi)\n* - Wayland (wayland)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4342};
4343/**
4344* A variable that specifies a video backend to use.
4345*
4346* By default, SDL will try all available video backends in a reasonable order
4347* until it finds one that can work, but this hint allows the app or user to
4348* force a specific target, such as "x11" if, say, you are on Wayland but want
4349* to try talking to the X server instead.
4350*
4351* This hint accepts a comma-separated list of driver names, and each will be
4352* tried in the order listed during init, until one succeeds or all of them
4353* fail.
4354*
4355* This hint should be set before SDL is initialized.
4356*
4357* \since This hint is available since SDL 3.2.0.
4358*/
4359pub const SDL_HINT_VIDEO_DRIVER: Hint = Hint {
4360    name: "SDL_HINT_VIDEO_DRIVER",
4361    value: "SDL_VIDEO_DRIVER",
4362    doc: "/**\n* A variable that specifies a video backend to use.\n*\n* By default, SDL will try all available video backends in a reasonable order\n* until it finds one that can work, but this hint allows the app or user to\n* force a specific target, such as \"x11\" if, say, you are on Wayland but want\n* to try talking to the X server instead.\n*\n* This hint accepts a comma-separated list of driver names, and each will be\n* tried in the order listed during init, until one succeeds or all of them\n* fail.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4363};
4364/**
4365* A variable controlling whether the dummy video driver saves output frames.
4366*
4367* - "0": Video frames are not saved to disk. (default)
4368* - "1": Video frames are saved to files in the format "SDL_windowX-Y.bmp",
4369*   where X is the window ID, and Y is the frame number.
4370*
4371* This hint can be set anytime.
4372*
4373* \since This hint is available since SDL 3.2.0.
4374*/
4375pub const SDL_HINT_VIDEO_DUMMY_SAVE_FRAMES: Hint = Hint {
4376    name: "SDL_HINT_VIDEO_DUMMY_SAVE_FRAMES",
4377    value: "SDL_VIDEO_DUMMY_SAVE_FRAMES",
4378    doc: "/**\n* A variable controlling whether the dummy video driver saves output frames.\n*\n* - \"0\": Video frames are not saved to disk. (default)\n* - \"1\": Video frames are saved to files in the format \"SDL_windowX-Y.bmp\",\n*   where X is the window ID, and Y is the frame number.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4379};
4380/**
4381* If eglGetPlatformDisplay fails, fall back to calling eglGetDisplay.
4382*
4383* The variable can be set to one of the following values:
4384*
4385* - "0": Do not fall back to eglGetDisplay.
4386* - "1": Fall back to eglGetDisplay if eglGetPlatformDisplay fails. (default)
4387*
4388* This hint should be set before SDL is initialized.
4389*
4390* \since This hint is available since SDL 3.2.0.
4391*/
4392pub const SDL_HINT_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK: Hint = Hint {
4393    name: "SDL_HINT_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK",
4394    value: "SDL_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK",
4395    doc: "/**\n* If eglGetPlatformDisplay fails, fall back to calling eglGetDisplay.\n*\n* The variable can be set to one of the following values:\n*\n* - \"0\": Do not fall back to eglGetDisplay.\n* - \"1\": Fall back to eglGetDisplay if eglGetPlatformDisplay fails. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4396};
4397/**
4398* A variable controlling whether the OpenGL context should be created with
4399* EGL.
4400*
4401* The variable can be set to the following values:
4402*
4403* - "0": Use platform-specific GL context creation API (GLX, WGL, CGL, etc).
4404*   (default)
4405* - "1": Use EGL
4406*
4407* This hint should be set before SDL is initialized.
4408*
4409* \since This hint is available since SDL 3.2.0.
4410*/
4411pub const SDL_HINT_VIDEO_FORCE_EGL: Hint = Hint {
4412    name: "SDL_HINT_VIDEO_FORCE_EGL",
4413    value: "SDL_VIDEO_FORCE_EGL",
4414    doc: "/**\n* A variable controlling whether the OpenGL context should be created with\n* EGL.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Use platform-specific GL context creation API (GLX, WGL, CGL, etc).\n*   (default)\n* - \"1\": Use EGL\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4415};
4416/**
4417* A variable that specifies the policy for fullscreen Spaces on macOS.
4418*
4419* The variable can be set to the following values:
4420*
4421* - "0": Disable Spaces support (FULLSCREEN_DESKTOP won't use them and
4422*   SDL_WINDOW_RESIZABLE windows won't offer the "fullscreen" button on their
4423*   titlebars).
4424* - "1": Enable Spaces support (FULLSCREEN_DESKTOP will use them and
4425*   SDL_WINDOW_RESIZABLE windows will offer the "fullscreen" button on their
4426*   titlebars). (default)
4427*
4428* This hint should be set before creating a window.
4429*
4430* \since This hint is available since SDL 3.2.0.
4431*/
4432pub const SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES: Hint = Hint {
4433    name: "SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES",
4434    value: "SDL_VIDEO_MAC_FULLSCREEN_SPACES",
4435    doc: "/**\n* A variable that specifies the policy for fullscreen Spaces on macOS.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Disable Spaces support (FULLSCREEN_DESKTOP won't use them and\n*   SDL_WINDOW_RESIZABLE windows won't offer the \"fullscreen\" button on their\n*   titlebars).\n* - \"1\": Enable Spaces support (FULLSCREEN_DESKTOP will use them and\n*   SDL_WINDOW_RESIZABLE windows will offer the \"fullscreen\" button on their\n*   titlebars). (default)\n*\n* This hint should be set before creating a window.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4436};
4437/**
4438* A variable that specifies the menu visibility when a window is fullscreen
4439* in Spaces on macOS.
4440*
4441* The variable can be set to the following values:
4442*
4443* - "0": The menu will be hidden when the window is in a fullscreen space,
4444*   and not accessible by moving the mouse to the top of the screen.
4445* - "1": The menu will be accessible when the window is in a fullscreen
4446*   space.
4447* - "auto": The menu will be hidden if fullscreen mode was toggled on
4448*   programmatically via `SDL_SetWindowFullscreen()`, and accessible if
4449*   fullscreen was entered via the "fullscreen" button on the window title
4450*   bar. (default)
4451*
4452* This hint can be set anytime.
4453*
4454* \since This hint is available since SDL 3.2.0.
4455*/
4456pub const SDL_HINT_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY: Hint = Hint {
4457    name: "SDL_HINT_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY",
4458    value: "SDL_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY",
4459    doc: "/**\n* A variable that specifies the menu visibility when a window is fullscreen\n* in Spaces on macOS.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": The menu will be hidden when the window is in a fullscreen space,\n*   and not accessible by moving the mouse to the top of the screen.\n* - \"1\": The menu will be accessible when the window is in a fullscreen\n*   space.\n* - \"auto\": The menu will be hidden if fullscreen mode was toggled on\n*   programmatically via `SDL_SetWindowFullscreen()`, and accessible if\n*   fullscreen was entered via the \"fullscreen\" button on the window title\n*   bar. (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4460};
4461/**
4462* A variable indicating whether the metal layer drawable size should be
4463* updated for the SDL_EVENT_WINDOW_PIXEL_SIZE_CHANGED event on macOS.
4464*
4465* The variable can be set to the following values:
4466*
4467* - "0": the metal layer drawable size will not be updated on the
4468*   SDL_EVENT_WINDOW_PIXEL_SIZE_CHANGED event.
4469* - "1": the metal layer drawable size will be updated on the
4470*   SDL_EVENT_WINDOW_PIXEL_SIZE_CHANGED event. (default)
4471*
4472* This hint should be set before SDL_Metal_CreateView called.
4473*
4474* \since This hint is available since SDL 3.4.0.
4475*/
4476pub const SDL_HINT_VIDEO_METAL_AUTO_RESIZE_DRAWABLE: Hint = Hint {
4477    name: "SDL_HINT_VIDEO_METAL_AUTO_RESIZE_DRAWABLE",
4478    value: "SDL_VIDEO_METAL_AUTO_RESIZE_DRAWABLE",
4479    doc: "/**\n* A variable indicating whether the metal layer drawable size should be\n* updated for the SDL_EVENT_WINDOW_PIXEL_SIZE_CHANGED event on macOS.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": the metal layer drawable size will not be updated on the\n*   SDL_EVENT_WINDOW_PIXEL_SIZE_CHANGED event.\n* - \"1\": the metal layer drawable size will be updated on the\n*   SDL_EVENT_WINDOW_PIXEL_SIZE_CHANGED event. (default)\n*\n* This hint should be set before SDL_Metal_CreateView called.\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
4480};
4481/**
4482* A variable controlling whether SDL will attempt to automatically set the
4483* destination display to a mode most closely matching that of the previous
4484* display if an exclusive fullscreen window is moved onto it.
4485*
4486* The variable can be set to the following values:
4487*
4488* - "0": SDL will not attempt to automatically set a matching mode on the
4489*   destination display. If an exclusive fullscreen window is moved to a new
4490*   display, the window will become fullscreen desktop.
4491* - "1": SDL will attempt to automatically set a mode on the destination
4492*   display that most closely matches the mode of the display that the
4493*   exclusive fullscreen window was previously on. (default)
4494*
4495* This hint can be set anytime.
4496*
4497* \since This hint is available since SDL 3.4.0.
4498*/
4499pub const SDL_HINT_VIDEO_MATCH_EXCLUSIVE_MODE_ON_MOVE: Hint = Hint {
4500    name: "SDL_HINT_VIDEO_MATCH_EXCLUSIVE_MODE_ON_MOVE",
4501    value: "SDL_VIDEO_MATCH_EXCLUSIVE_MODE_ON_MOVE",
4502    doc: "/**\n* A variable controlling whether SDL will attempt to automatically set the\n* destination display to a mode most closely matching that of the previous\n* display if an exclusive fullscreen window is moved onto it.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": SDL will not attempt to automatically set a matching mode on the\n*   destination display. If an exclusive fullscreen window is moved to a new\n*   display, the window will become fullscreen desktop.\n* - \"1\": SDL will attempt to automatically set a mode on the destination\n*   display that most closely matches the mode of the display that the\n*   exclusive fullscreen window was previously on. (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
4503};
4504/**
4505* A variable controlling whether fullscreen windows are minimized when they
4506* lose focus.
4507*
4508* The variable can be set to the following values:
4509*
4510* - "0": Fullscreen windows will not be minimized when they lose focus.
4511* - "1": Fullscreen windows are minimized when they lose focus.
4512* - "auto": Fullscreen windows are minimized when they lose focus if they use
4513*   exclusive fullscreen modes, so the desktop video mode is restored.
4514*   (default)
4515*
4516* This hint can be set anytime.
4517*
4518* \since This hint is available since SDL 3.2.0.
4519*/
4520pub const SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS: Hint = Hint {
4521    name: "SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS",
4522    value: "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS",
4523    doc: "/**\n* A variable controlling whether fullscreen windows are minimized when they\n* lose focus.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Fullscreen windows will not be minimized when they lose focus.\n* - \"1\": Fullscreen windows are minimized when they lose focus.\n* - \"auto\": Fullscreen windows are minimized when they lose focus if they use\n*   exclusive fullscreen modes, so the desktop video mode is restored.\n*   (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4524};
4525/**
4526* A variable controlling whether the offscreen video driver saves output
4527* frames.
4528*
4529* This only saves frames that are generated using software rendering, not
4530* accelerated OpenGL rendering.
4531*
4532* - "0": Video frames are not saved to disk. (default)
4533* - "1": Video frames are saved to files in the format "SDL_windowX-Y.bmp",
4534*   where X is the window ID, and Y is the frame number.
4535*
4536* This hint can be set anytime.
4537*
4538* \since This hint is available since SDL 3.2.0.
4539*/
4540pub const SDL_HINT_VIDEO_OFFSCREEN_SAVE_FRAMES: Hint = Hint {
4541    name: "SDL_HINT_VIDEO_OFFSCREEN_SAVE_FRAMES",
4542    value: "SDL_VIDEO_OFFSCREEN_SAVE_FRAMES",
4543    doc: "/**\n* A variable controlling whether the offscreen video driver saves output\n* frames.\n*\n* This only saves frames that are generated using software rendering, not\n* accelerated OpenGL rendering.\n*\n* - \"0\": Video frames are not saved to disk. (default)\n* - \"1\": Video frames are saved to files in the format \"SDL_windowX-Y.bmp\",\n*   where X is the window ID, and Y is the frame number.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4544};
4545/**
4546* A variable controlling whether all window operations will block until
4547* complete.
4548*
4549* Window systems that run asynchronously may not have the results of window
4550* operations that resize or move the window applied immediately upon the
4551* return of the requesting function. Setting this hint will cause such
4552* operations to block after every call until the pending operation has
4553* completed. Setting this to '1' is the equivalent of calling
4554* SDL_SyncWindow() after every function call.
4555*
4556* Be aware that amount of time spent blocking while waiting for window
4557* operations to complete can be quite lengthy, as animations may have to
4558* complete, which can take upwards of multiple seconds in some cases.
4559*
4560* The variable can be set to the following values:
4561*
4562* - "0": Window operations are non-blocking. (default)
4563* - "1": Window operations will block until completed.
4564*
4565* This hint can be set anytime.
4566*
4567* \since This hint is available since SDL 3.2.0.
4568*/
4569pub const SDL_HINT_VIDEO_SYNC_WINDOW_OPERATIONS: Hint = Hint {
4570    name: "SDL_HINT_VIDEO_SYNC_WINDOW_OPERATIONS",
4571    value: "SDL_VIDEO_SYNC_WINDOW_OPERATIONS",
4572    doc: "/**\n* A variable controlling whether all window operations will block until\n* complete.\n*\n* Window systems that run asynchronously may not have the results of window\n* operations that resize or move the window applied immediately upon the\n* return of the requesting function. Setting this hint will cause such\n* operations to block after every call until the pending operation has\n* completed. Setting this to '1' is the equivalent of calling\n* SDL_SyncWindow() after every function call.\n*\n* Be aware that amount of time spent blocking while waiting for window\n* operations to complete can be quite lengthy, as animations may have to\n* complete, which can take upwards of multiple seconds in some cases.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Window operations are non-blocking. (default)\n* - \"1\": Window operations will block until completed.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4573};
4574/**
4575* A variable controlling whether the libdecor Wayland backend is allowed to
4576* be used.
4577*
4578* libdecor is used over xdg-shell when xdg-decoration protocol is
4579* unavailable.
4580*
4581* The variable can be set to the following values:
4582*
4583* - "0": libdecor use is disabled.
4584* - "1": libdecor use is enabled. (default)
4585*
4586* This hint should be set before SDL is initialized.
4587*
4588* \since This hint is available since SDL 3.2.0.
4589*/
4590pub const SDL_HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR: Hint = Hint {
4591    name: "SDL_HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR",
4592    value: "SDL_VIDEO_WAYLAND_ALLOW_LIBDECOR",
4593    doc: "/**\n* A variable controlling whether the libdecor Wayland backend is allowed to\n* be used.\n*\n* libdecor is used over xdg-shell when xdg-decoration protocol is\n* unavailable.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": libdecor use is disabled.\n* - \"1\": libdecor use is enabled. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4594};
4595/**
4596* A variable controlling whether video mode emulation is enabled under
4597* Wayland.
4598*
4599* When this hint is set, a standard set of emulated CVT video modes will be
4600* exposed for use by the application. If it is disabled, the only modes
4601* exposed will be the logical desktop size and, in the case of a scaled
4602* desktop, the native display resolution.
4603*
4604* The variable can be set to the following values:
4605*
4606* - "0": Video mode emulation is disabled.
4607* - "1": Video mode emulation is enabled. (default)
4608*
4609* This hint should be set before SDL is initialized.
4610*
4611* \since This hint is available since SDL 3.2.0.
4612*/
4613pub const SDL_HINT_VIDEO_WAYLAND_MODE_EMULATION: Hint = Hint {
4614    name: "SDL_HINT_VIDEO_WAYLAND_MODE_EMULATION",
4615    value: "SDL_VIDEO_WAYLAND_MODE_EMULATION",
4616    doc: "/**\n* A variable controlling whether video mode emulation is enabled under\n* Wayland.\n*\n* When this hint is set, a standard set of emulated CVT video modes will be\n* exposed for use by the application. If it is disabled, the only modes\n* exposed will be the logical desktop size and, in the case of a scaled\n* desktop, the native display resolution.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Video mode emulation is disabled.\n* - \"1\": Video mode emulation is enabled. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4617};
4618/**
4619* A variable controlling how modes with a non-native aspect ratio are
4620* displayed under Wayland.
4621*
4622* When this hint is set, the requested scaling will be used when displaying
4623* fullscreen video modes that don't match the display's native aspect ratio.
4624* This is contingent on compositor viewport support.
4625*
4626* The variable can be set to the following values:
4627*
4628* - "aspect" - Video modes will be displayed scaled, in their proper aspect
4629*   ratio, with black bars.
4630* - "stretch" - Video modes will be scaled to fill the entire display.
4631*   (default)
4632* - "none" - Video modes will be displayed as 1:1 with no scaling.
4633*
4634* This hint should be set before creating a window.
4635*
4636* \since This hint is available since SDL 3.2.0.
4637*/
4638pub const SDL_HINT_VIDEO_WAYLAND_MODE_SCALING: Hint = Hint {
4639    name: "SDL_HINT_VIDEO_WAYLAND_MODE_SCALING",
4640    value: "SDL_VIDEO_WAYLAND_MODE_SCALING",
4641    doc: "/**\n* A variable controlling how modes with a non-native aspect ratio are\n* displayed under Wayland.\n*\n* When this hint is set, the requested scaling will be used when displaying\n* fullscreen video modes that don't match the display's native aspect ratio.\n* This is contingent on compositor viewport support.\n*\n* The variable can be set to the following values:\n*\n* - \"aspect\" - Video modes will be displayed scaled, in their proper aspect\n*   ratio, with black bars.\n* - \"stretch\" - Video modes will be scaled to fill the entire display.\n*   (default)\n* - \"none\" - Video modes will be displayed as 1:1 with no scaling.\n*\n* This hint should be set before creating a window.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4642};
4643/**
4644* A variable controlling whether the libdecor Wayland backend is preferred
4645* over native decorations.
4646*
4647* When this hint is set, libdecor will be used to provide window decorations,
4648* even if xdg-decoration is available. (Note that, by default, libdecor will
4649* use xdg-decoration itself if available).
4650*
4651* The variable can be set to the following values:
4652*
4653* - "0": libdecor is enabled only if server-side decorations are unavailable.
4654*   (default)
4655* - "1": libdecor is always enabled if available.
4656*
4657* This hint should be set before SDL is initialized.
4658*
4659* \since This hint is available since SDL 3.2.0.
4660*/
4661pub const SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR: Hint = Hint {
4662    name: "SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR",
4663    value: "SDL_VIDEO_WAYLAND_PREFER_LIBDECOR",
4664    doc: "/**\n* A variable controlling whether the libdecor Wayland backend is preferred\n* over native decorations.\n*\n* When this hint is set, libdecor will be used to provide window decorations,\n* even if xdg-decoration is available. (Note that, by default, libdecor will\n* use xdg-decoration itself if available).\n*\n* The variable can be set to the following values:\n*\n* - \"0\": libdecor is enabled only if server-side decorations are unavailable.\n*   (default)\n* - \"1\": libdecor is always enabled if available.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4665};
4666/**
4667* A variable forcing non-DPI-aware Wayland windows to output at 1:1 scaling.
4668*
4669* This must be set before initializing the video subsystem.
4670*
4671* When this hint is set, Wayland windows that are not flagged as being
4672* DPI-aware will be output with scaling designed to force 1:1 pixel mapping.
4673*
4674* This is intended to allow legacy applications to be displayed without
4675* desktop scaling being applied, and has issues with certain display
4676* configurations, as this forces the window to behave in a way that Wayland
4677* desktops were not designed to accommodate:
4678*
4679* - Rounding errors can result with odd window sizes and/or desktop scales,
4680*   which can cause the window contents to appear slightly blurry.
4681* - Positioning the window may be imprecise due to unit conversions and
4682*   rounding.
4683* - The window may be unusably small on scaled desktops.
4684* - The window may jump in size when moving between displays of different
4685*   scale factors.
4686* - Displays may appear to overlap when using a multi-monitor setup with
4687*   scaling enabled.
4688* - Possible loss of cursor precision due to the logical size of the window
4689*   being reduced.
4690*
4691* New applications should be designed with proper DPI awareness handling
4692* instead of enabling this.
4693*
4694* The variable can be set to the following values:
4695*
4696* - "0": Windows will be scaled normally.
4697* - "1": Windows will be forced to scale to achieve 1:1 output.
4698*
4699* This hint should be set before creating a window.
4700*
4701* \since This hint is available since SDL 3.2.0.
4702*/
4703pub const SDL_HINT_VIDEO_WAYLAND_SCALE_TO_DISPLAY: Hint = Hint {
4704    name: "SDL_HINT_VIDEO_WAYLAND_SCALE_TO_DISPLAY",
4705    value: "SDL_VIDEO_WAYLAND_SCALE_TO_DISPLAY",
4706    doc: "/**\n* A variable forcing non-DPI-aware Wayland windows to output at 1:1 scaling.\n*\n* This must be set before initializing the video subsystem.\n*\n* When this hint is set, Wayland windows that are not flagged as being\n* DPI-aware will be output with scaling designed to force 1:1 pixel mapping.\n*\n* This is intended to allow legacy applications to be displayed without\n* desktop scaling being applied, and has issues with certain display\n* configurations, as this forces the window to behave in a way that Wayland\n* desktops were not designed to accommodate:\n*\n* - Rounding errors can result with odd window sizes and/or desktop scales,\n*   which can cause the window contents to appear slightly blurry.\n* - Positioning the window may be imprecise due to unit conversions and\n*   rounding.\n* - The window may be unusably small on scaled desktops.\n* - The window may jump in size when moving between displays of different\n*   scale factors.\n* - Displays may appear to overlap when using a multi-monitor setup with\n*   scaling enabled.\n* - Possible loss of cursor precision due to the logical size of the window\n*   being reduced.\n*\n* New applications should be designed with proper DPI awareness handling\n* instead of enabling this.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Windows will be scaled normally.\n* - \"1\": Windows will be forced to scale to achieve 1:1 output.\n*\n* This hint should be set before creating a window.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4707};
4708/**
4709* A variable specifying which shader compiler to preload when using the
4710* Chrome ANGLE binaries.
4711*
4712* SDL has EGL and OpenGL ES2 support on Windows via the ANGLE project. It can
4713* use two different sets of binaries, those compiled by the user from source
4714* or those provided by the Chrome browser. In the later case, these binaries
4715* require that SDL loads a DLL providing the shader compiler.
4716*
4717* The variable can be set to the following values:
4718*
4719* - "d3dcompiler_46.dll" - best for Vista or later. (default)
4720* - "d3dcompiler_43.dll" - for XP support.
4721* - "none" - do not load any library, useful if you compiled ANGLE from
4722*   source and included the compiler in your binaries.
4723*
4724* This hint should be set before SDL is initialized.
4725*
4726* \since This hint is available since SDL 3.2.0.
4727*/
4728pub const SDL_HINT_VIDEO_WIN_D3DCOMPILER: Hint = Hint {
4729    name: "SDL_HINT_VIDEO_WIN_D3DCOMPILER",
4730    value: "SDL_VIDEO_WIN_D3DCOMPILER",
4731    doc: "/**\n* A variable specifying which shader compiler to preload when using the\n* Chrome ANGLE binaries.\n*\n* SDL has EGL and OpenGL ES2 support on Windows via the ANGLE project. It can\n* use two different sets of binaries, those compiled by the user from source\n* or those provided by the Chrome browser. In the later case, these binaries\n* require that SDL loads a DLL providing the shader compiler.\n*\n* The variable can be set to the following values:\n*\n* - \"d3dcompiler_46.dll\" - best for Vista or later. (default)\n* - \"d3dcompiler_43.dll\" - for XP support.\n* - \"none\" - do not load any library, useful if you compiled ANGLE from\n*   source and included the compiler in your binaries.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4732};
4733/**
4734* A variable controlling whether SDL should call XSelectInput() to enable
4735* input events on X11 windows wrapped by SDL windows.
4736*
4737* The variable can be set to the following values:
4738*
4739* - "0": Don't call XSelectInput(), assuming the native window code has done
4740*   it already.
4741* - "1": Call XSelectInput() to enable input events. (default)
4742*
4743* This hint should be set before creating a window.
4744*
4745* \since This hint is available since SDL 3.2.10.
4746*/
4747pub const SDL_HINT_VIDEO_X11_EXTERNAL_WINDOW_INPUT: Hint = Hint {
4748    name: "SDL_HINT_VIDEO_X11_EXTERNAL_WINDOW_INPUT",
4749    value: "SDL_VIDEO_X11_EXTERNAL_WINDOW_INPUT",
4750    doc: "/**\n* A variable controlling whether SDL should call XSelectInput() to enable\n* input events on X11 windows wrapped by SDL windows.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Don't call XSelectInput(), assuming the native window code has done\n*   it already.\n* - \"1\": Call XSelectInput() to enable input events. (default)\n*\n* This hint should be set before creating a window.\n*\n* \\since This hint is available since SDL 3.2.10.\n*/\n",
4751};
4752/**
4753* A variable controlling whether the X11 _NET_WM_BYPASS_COMPOSITOR hint
4754* should be used.
4755*
4756* The variable can be set to the following values:
4757*
4758* - "0": Disable _NET_WM_BYPASS_COMPOSITOR.
4759* - "1": Enable _NET_WM_BYPASS_COMPOSITOR. (default)
4760*
4761* This hint should be set before creating a window.
4762*
4763* \since This hint is available since SDL 3.2.0.
4764*/
4765pub const SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR: Hint = Hint {
4766    name: "SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR",
4767    value: "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR",
4768    doc: "/**\n* A variable controlling whether the X11 _NET_WM_BYPASS_COMPOSITOR hint\n* should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Disable _NET_WM_BYPASS_COMPOSITOR.\n* - \"1\": Enable _NET_WM_BYPASS_COMPOSITOR. (default)\n*\n* This hint should be set before creating a window.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4769};
4770/**
4771* A variable controlling whether the X11 _NET_WM_PING protocol should be
4772* supported.
4773*
4774* By default SDL will use _NET_WM_PING, but for applications that know they
4775* will not always be able to respond to ping requests in a timely manner they
4776* can turn it off to avoid the window manager thinking the app is hung.
4777*
4778* The variable can be set to the following values:
4779*
4780* - "0": Disable _NET_WM_PING.
4781* - "1": Enable _NET_WM_PING. (default)
4782*
4783* This hint should be set before creating a window.
4784*
4785* \since This hint is available since SDL 3.2.0.
4786*/
4787pub const SDL_HINT_VIDEO_X11_NET_WM_PING: Hint = Hint {
4788    name: "SDL_HINT_VIDEO_X11_NET_WM_PING",
4789    value: "SDL_VIDEO_X11_NET_WM_PING",
4790    doc: "/**\n* A variable controlling whether the X11 _NET_WM_PING protocol should be\n* supported.\n*\n* By default SDL will use _NET_WM_PING, but for applications that know they\n* will not always be able to respond to ping requests in a timely manner they\n* can turn it off to avoid the window manager thinking the app is hung.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Disable _NET_WM_PING.\n* - \"1\": Enable _NET_WM_PING. (default)\n*\n* This hint should be set before creating a window.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4791};
4792/**
4793* A variable controlling whether SDL uses DirectColor visuals.
4794*
4795* The variable can be set to the following values:
4796*
4797* - "0": Disable DirectColor visuals.
4798* - "1": Enable DirectColor visuals. (default)
4799*
4800* This hint should be set before initializing the video subsystem.
4801*
4802* \since This hint is available since SDL 3.2.0.
4803*/
4804pub const SDL_HINT_VIDEO_X11_NODIRECTCOLOR: Hint = Hint {
4805    name: "SDL_HINT_VIDEO_X11_NODIRECTCOLOR",
4806    value: "SDL_VIDEO_X11_NODIRECTCOLOR",
4807    doc: "/**\n* A variable controlling whether SDL uses DirectColor visuals.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Disable DirectColor visuals.\n* - \"1\": Enable DirectColor visuals. (default)\n*\n* This hint should be set before initializing the video subsystem.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4808};
4809/**
4810* A variable forcing the content scaling factor for X11 displays.
4811*
4812* The variable can be set to a floating point value in the range 1.0-10.0f
4813*
4814* This hint should be set before SDL is initialized.
4815*
4816* \since This hint is available since SDL 3.2.0.
4817*/
4818pub const SDL_HINT_VIDEO_X11_SCALING_FACTOR: Hint = Hint {
4819    name: "SDL_HINT_VIDEO_X11_SCALING_FACTOR",
4820    value: "SDL_VIDEO_X11_SCALING_FACTOR",
4821    doc: "/**\n* A variable forcing the content scaling factor for X11 displays.\n*\n* The variable can be set to a floating point value in the range 1.0-10.0f\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4822};
4823/**
4824* A variable forcing the visual ID used for X11 display modes.
4825*
4826* This hint should be set before initializing the video subsystem.
4827*
4828* \since This hint is available since SDL 3.2.0.
4829*/
4830pub const SDL_HINT_VIDEO_X11_VISUALID: Hint = Hint {
4831    name: "SDL_HINT_VIDEO_X11_VISUALID",
4832    value: "SDL_VIDEO_X11_VISUALID",
4833    doc: "/**\n* A variable forcing the visual ID used for X11 display modes.\n*\n* This hint should be set before initializing the video subsystem.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4834};
4835/**
4836* A variable forcing the visual ID chosen for new X11 windows.
4837*
4838* This hint should be set before creating a window.
4839*
4840* \since This hint is available since SDL 3.2.0.
4841*/
4842pub const SDL_HINT_VIDEO_X11_WINDOW_VISUALID: Hint = Hint {
4843    name: "SDL_HINT_VIDEO_X11_WINDOW_VISUALID",
4844    value: "SDL_VIDEO_X11_WINDOW_VISUALID",
4845    doc: "/**\n* A variable forcing the visual ID chosen for new X11 windows.\n*\n* This hint should be set before creating a window.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4846};
4847/**
4848* A variable controlling whether the X11 XRandR extension should be used.
4849*
4850* The variable can be set to the following values:
4851*
4852* - "0": Disable XRandR.
4853* - "1": Enable XRandR. (default)
4854*
4855* This hint should be set before SDL is initialized.
4856*
4857* \since This hint is available since SDL 3.2.0.
4858*/
4859pub const SDL_HINT_VIDEO_X11_XRANDR: Hint = Hint {
4860    name: "SDL_HINT_VIDEO_X11_XRANDR",
4861    value: "SDL_VIDEO_X11_XRANDR",
4862    doc: "/**\n* A variable controlling whether the X11 XRandR extension should be used.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Disable XRandR.\n* - \"1\": Enable XRandR. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4863};
4864/**
4865* A variable controlling whether touch should be enabled on the back panel of
4866* the PlayStation Vita.
4867*
4868* The variable can be set to the following values:
4869*
4870* - "0": Disable touch on the back panel.
4871* - "1": Enable touch on the back panel. (default)
4872*
4873* This hint should be set before SDL is initialized.
4874*
4875* \since This hint is available since SDL 3.2.0.
4876*/
4877pub const SDL_HINT_VITA_ENABLE_BACK_TOUCH: Hint = Hint {
4878    name: "SDL_HINT_VITA_ENABLE_BACK_TOUCH",
4879    value: "SDL_VITA_ENABLE_BACK_TOUCH",
4880    doc: "/**\n* A variable controlling whether touch should be enabled on the back panel of\n* the PlayStation Vita.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Disable touch on the back panel.\n* - \"1\": Enable touch on the back panel. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4881};
4882/**
4883* A variable controlling whether touch should be enabled on the front panel
4884* of the PlayStation Vita.
4885*
4886* The variable can be set to the following values:
4887*
4888* - "0": Disable touch on the front panel.
4889* - "1": Enable touch on the front panel. (default)
4890*
4891* This hint should be set before SDL is initialized.
4892*
4893* \since This hint is available since SDL 3.2.0.
4894*/
4895pub const SDL_HINT_VITA_ENABLE_FRONT_TOUCH: Hint = Hint {
4896    name: "SDL_HINT_VITA_ENABLE_FRONT_TOUCH",
4897    value: "SDL_VITA_ENABLE_FRONT_TOUCH",
4898    doc: "/**\n* A variable controlling whether touch should be enabled on the front panel\n* of the PlayStation Vita.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Disable touch on the front panel.\n* - \"1\": Enable touch on the front panel. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4899};
4900/**
4901* A variable controlling the module path on the PlayStation Vita.
4902*
4903* This hint defaults to "app0:module"
4904*
4905* This hint should be set before SDL is initialized.
4906*
4907* \since This hint is available since SDL 3.2.0.
4908*/
4909pub const SDL_HINT_VITA_MODULE_PATH: Hint = Hint {
4910    name: "SDL_HINT_VITA_MODULE_PATH",
4911    value: "SDL_VITA_MODULE_PATH",
4912    doc: "/**\n* A variable controlling the module path on the PlayStation Vita.\n*\n* This hint defaults to \"app0:module\"\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4913};
4914/**
4915* A variable controlling whether to perform PVR initialization on the
4916* PlayStation Vita.
4917*
4918* - "0": Skip PVR initialization.
4919* - "1": Perform the normal PVR initialization. (default)
4920*
4921* This hint should be set before SDL is initialized.
4922*
4923* \since This hint is available since SDL 3.2.0.
4924*/
4925pub const SDL_HINT_VITA_PVR_INIT: Hint = Hint {
4926    name: "SDL_HINT_VITA_PVR_INIT",
4927    value: "SDL_VITA_PVR_INIT",
4928    doc: "/**\n* A variable controlling whether to perform PVR initialization on the\n* PlayStation Vita.\n*\n* - \"0\": Skip PVR initialization.\n* - \"1\": Perform the normal PVR initialization. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4929};
4930/**
4931* A variable overriding the resolution reported on the PlayStation Vita.
4932*
4933* The variable can be set to the following values:
4934*
4935* - "544": 544p (default)
4936* - "720": 725p for PSTV
4937* - "1080": 1088i for PSTV
4938*
4939* This hint should be set before SDL is initialized.
4940*
4941* \since This hint is available since SDL 3.2.0.
4942*/
4943pub const SDL_HINT_VITA_RESOLUTION: Hint = Hint {
4944    name: "SDL_HINT_VITA_RESOLUTION",
4945    value: "SDL_VITA_RESOLUTION",
4946    doc: "/**\n* A variable overriding the resolution reported on the PlayStation Vita.\n*\n* The variable can be set to the following values:\n*\n* - \"544\": 544p (default)\n* - \"720\": 725p for PSTV\n* - \"1080\": 1088i for PSTV\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4947};
4948/**
4949* A variable controlling whether OpenGL should be used instead of OpenGL ES
4950* on the PlayStation Vita.
4951*
4952* The variable can be set to the following values:
4953*
4954* - "0": Use OpenGL ES. (default)
4955* - "1": Use OpenGL.
4956*
4957* This hint should be set before SDL is initialized.
4958*
4959* \since This hint is available since SDL 3.2.0.
4960*/
4961pub const SDL_HINT_VITA_PVR_OPENGL: Hint = Hint {
4962    name: "SDL_HINT_VITA_PVR_OPENGL",
4963    value: "SDL_VITA_PVR_OPENGL",
4964    doc: "/**\n* A variable controlling whether OpenGL should be used instead of OpenGL ES\n* on the PlayStation Vita.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Use OpenGL ES. (default)\n* - \"1\": Use OpenGL.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4965};
4966/**
4967* A variable controlling which touchpad should generate synthetic mouse
4968* events.
4969*
4970* The variable can be set to the following values:
4971*
4972* - "0": Only front touchpad should generate mouse events. (default)
4973* - "1": Only back touchpad should generate mouse events.
4974* - "2": Both touchpads should generate mouse events.
4975*
4976* This hint can be set anytime.
4977*
4978* \since This hint is available since SDL 3.2.0.
4979*/
4980pub const SDL_HINT_VITA_TOUCH_MOUSE_DEVICE: Hint = Hint {
4981    name: "SDL_HINT_VITA_TOUCH_MOUSE_DEVICE",
4982    value: "SDL_VITA_TOUCH_MOUSE_DEVICE",
4983    doc: "/**\n* A variable controlling which touchpad should generate synthetic mouse\n* events.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Only front touchpad should generate mouse events. (default)\n* - \"1\": Only back touchpad should generate mouse events.\n* - \"2\": Both touchpads should generate mouse events.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4984};
4985/**
4986* A variable overriding the display index used in SDL_Vulkan_CreateSurface()
4987*
4988* The display index starts at 0, which is the default.
4989*
4990* This hint should be set before calling SDL_Vulkan_CreateSurface()
4991*
4992* \since This hint is available since SDL 3.2.0.
4993*/
4994pub const SDL_HINT_VULKAN_DISPLAY: Hint = Hint {
4995    name: "SDL_HINT_VULKAN_DISPLAY",
4996    value: "SDL_VULKAN_DISPLAY",
4997    doc: "/**\n* A variable overriding the display index used in SDL_Vulkan_CreateSurface()\n*\n* The display index starts at 0, which is the default.\n*\n* This hint should be set before calling SDL_Vulkan_CreateSurface()\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
4998};
4999/**
5000* Specify the Vulkan library to load.
5001*
5002* This hint should be set before creating a Vulkan window or calling
5003* SDL_Vulkan_LoadLibrary().
5004*
5005* \since This hint is available since SDL 3.2.0.
5006*/
5007pub const SDL_HINT_VULKAN_LIBRARY: Hint = Hint {
5008    name: "SDL_HINT_VULKAN_LIBRARY",
5009    value: "SDL_VULKAN_LIBRARY",
5010    doc: "/**\n* Specify the Vulkan library to load.\n*\n* This hint should be set before creating a Vulkan window or calling\n* SDL_Vulkan_LoadLibrary().\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5011};
5012/**
5013* A variable controlling how the fact chunk affects the loading of a WAVE
5014* file.
5015*
5016* The fact chunk stores information about the number of samples of a WAVE
5017* file. The Standards Update from Microsoft notes that this value can be used
5018* to 'determine the length of the data in seconds'. This is especially useful
5019* for compressed formats (for which this is a mandatory chunk) if they
5020* produce multiple sample frames per block and truncating the block is not
5021* allowed. The fact chunk can exactly specify how many sample frames there
5022* should be in this case.
5023*
5024* Unfortunately, most application seem to ignore the fact chunk and so SDL
5025* ignores it by default as well.
5026*
5027* The variable can be set to the following values:
5028*
5029* - "truncate" - Use the number of samples to truncate the wave data if the
5030*   fact chunk is present and valid.
5031* - "strict" - Like "truncate", but raise an error if the fact chunk is
5032*   invalid, not present for non-PCM formats, or if the data chunk doesn't
5033*   have that many samples.
5034* - "ignorezero" - Like "truncate", but ignore fact chunk if the number of
5035*   samples is zero.
5036* - "ignore" - Ignore fact chunk entirely. (default)
5037*
5038* This hint should be set before calling SDL_LoadWAV() or SDL_LoadWAV_IO()
5039*
5040* \since This hint is available since SDL 3.2.0.
5041*/
5042pub const SDL_HINT_WAVE_FACT_CHUNK: Hint = Hint {
5043    name: "SDL_HINT_WAVE_FACT_CHUNK",
5044    value: "SDL_WAVE_FACT_CHUNK",
5045    doc: "/**\n* A variable controlling how the fact chunk affects the loading of a WAVE\n* file.\n*\n* The fact chunk stores information about the number of samples of a WAVE\n* file. The Standards Update from Microsoft notes that this value can be used\n* to 'determine the length of the data in seconds'. This is especially useful\n* for compressed formats (for which this is a mandatory chunk) if they\n* produce multiple sample frames per block and truncating the block is not\n* allowed. The fact chunk can exactly specify how many sample frames there\n* should be in this case.\n*\n* Unfortunately, most application seem to ignore the fact chunk and so SDL\n* ignores it by default as well.\n*\n* The variable can be set to the following values:\n*\n* - \"truncate\" - Use the number of samples to truncate the wave data if the\n*   fact chunk is present and valid.\n* - \"strict\" - Like \"truncate\", but raise an error if the fact chunk is\n*   invalid, not present for non-PCM formats, or if the data chunk doesn't\n*   have that many samples.\n* - \"ignorezero\" - Like \"truncate\", but ignore fact chunk if the number of\n*   samples is zero.\n* - \"ignore\" - Ignore fact chunk entirely. (default)\n*\n* This hint should be set before calling SDL_LoadWAV() or SDL_LoadWAV_IO()\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5046};
5047/**
5048* A variable controlling the maximum number of chunks in a WAVE file.
5049*
5050* This sets an upper bound on the number of chunks in a WAVE file to avoid
5051* wasting time on malformed or corrupt WAVE files. This defaults to "10000".
5052*
5053* This hint should be set before calling SDL_LoadWAV() or SDL_LoadWAV_IO()
5054*
5055* \since This hint is available since SDL 3.2.0.
5056*/
5057pub const SDL_HINT_WAVE_CHUNK_LIMIT: Hint = Hint {
5058    name: "SDL_HINT_WAVE_CHUNK_LIMIT",
5059    value: "SDL_WAVE_CHUNK_LIMIT",
5060    doc: "/**\n* A variable controlling the maximum number of chunks in a WAVE file.\n*\n* This sets an upper bound on the number of chunks in a WAVE file to avoid\n* wasting time on malformed or corrupt WAVE files. This defaults to \"10000\".\n*\n* This hint should be set before calling SDL_LoadWAV() or SDL_LoadWAV_IO()\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5061};
5062/**
5063* A variable controlling how the size of the RIFF chunk affects the loading
5064* of a WAVE file.
5065*
5066* The size of the RIFF chunk (which includes all the sub-chunks of the WAVE
5067* file) is not always reliable. In case the size is wrong, it's possible to
5068* just ignore it and step through the chunks until a fixed limit is reached.
5069*
5070* Note that files that have trailing data unrelated to the WAVE file or
5071* corrupt files may slow down the loading process without a reliable
5072* boundary. By default, SDL stops after 10000 chunks to prevent wasting time.
5073* Use SDL_HINT_WAVE_CHUNK_LIMIT to adjust this value.
5074*
5075* The variable can be set to the following values:
5076*
5077* - "force" - Always use the RIFF chunk size as a boundary for the chunk
5078*   search.
5079* - "ignorezero" - Like "force", but a zero size searches up to 4 GiB.
5080*   (default)
5081* - "ignore" - Ignore the RIFF chunk size and always search up to 4 GiB.
5082* - "maximum" - Search for chunks until the end of file. (not recommended)
5083*
5084* This hint should be set before calling SDL_LoadWAV() or SDL_LoadWAV_IO()
5085*
5086* \since This hint is available since SDL 3.2.0.
5087*/
5088pub const SDL_HINT_WAVE_RIFF_CHUNK_SIZE: Hint = Hint {
5089    name: "SDL_HINT_WAVE_RIFF_CHUNK_SIZE",
5090    value: "SDL_WAVE_RIFF_CHUNK_SIZE",
5091    doc: "/**\n* A variable controlling how the size of the RIFF chunk affects the loading\n* of a WAVE file.\n*\n* The size of the RIFF chunk (which includes all the sub-chunks of the WAVE\n* file) is not always reliable. In case the size is wrong, it's possible to\n* just ignore it and step through the chunks until a fixed limit is reached.\n*\n* Note that files that have trailing data unrelated to the WAVE file or\n* corrupt files may slow down the loading process without a reliable\n* boundary. By default, SDL stops after 10000 chunks to prevent wasting time.\n* Use SDL_HINT_WAVE_CHUNK_LIMIT to adjust this value.\n*\n* The variable can be set to the following values:\n*\n* - \"force\" - Always use the RIFF chunk size as a boundary for the chunk\n*   search.\n* - \"ignorezero\" - Like \"force\", but a zero size searches up to 4 GiB.\n*   (default)\n* - \"ignore\" - Ignore the RIFF chunk size and always search up to 4 GiB.\n* - \"maximum\" - Search for chunks until the end of file. (not recommended)\n*\n* This hint should be set before calling SDL_LoadWAV() or SDL_LoadWAV_IO()\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5092};
5093/**
5094* A variable controlling how a truncated WAVE file is handled.
5095*
5096* A WAVE file is considered truncated if any of the chunks are incomplete or
5097* the data chunk size is not a multiple of the block size. By default, SDL
5098* decodes until the first incomplete block, as most applications seem to do.
5099*
5100* The variable can be set to the following values:
5101*
5102* - "verystrict" - Raise an error if the file is truncated.
5103* - "strict" - Like "verystrict", but the size of the RIFF chunk is ignored.
5104* - "dropframe" - Decode until the first incomplete sample frame.
5105* - "dropblock" - Decode until the first incomplete block. (default)
5106*
5107* This hint should be set before calling SDL_LoadWAV() or SDL_LoadWAV_IO()
5108*
5109* \since This hint is available since SDL 3.2.0.
5110*/
5111pub const SDL_HINT_WAVE_TRUNCATION: Hint = Hint {
5112    name: "SDL_HINT_WAVE_TRUNCATION",
5113    value: "SDL_WAVE_TRUNCATION",
5114    doc: "/**\n* A variable controlling how a truncated WAVE file is handled.\n*\n* A WAVE file is considered truncated if any of the chunks are incomplete or\n* the data chunk size is not a multiple of the block size. By default, SDL\n* decodes until the first incomplete block, as most applications seem to do.\n*\n* The variable can be set to the following values:\n*\n* - \"verystrict\" - Raise an error if the file is truncated.\n* - \"strict\" - Like \"verystrict\", but the size of the RIFF chunk is ignored.\n* - \"dropframe\" - Decode until the first incomplete sample frame.\n* - \"dropblock\" - Decode until the first incomplete block. (default)\n*\n* This hint should be set before calling SDL_LoadWAV() or SDL_LoadWAV_IO()\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5115};
5116/**
5117* A variable controlling whether the window is activated when the
5118* SDL_RaiseWindow function is called.
5119*
5120* The variable can be set to the following values:
5121*
5122* - "0": The window is not activated when the SDL_RaiseWindow function is
5123*   called.
5124* - "1": The window is activated when the SDL_RaiseWindow function is called.
5125*   (default)
5126*
5127* This hint can be set anytime.
5128*
5129* \since This hint is available since SDL 3.2.0.
5130*/
5131pub const SDL_HINT_WINDOW_ACTIVATE_WHEN_RAISED: Hint = Hint {
5132    name: "SDL_HINT_WINDOW_ACTIVATE_WHEN_RAISED",
5133    value: "SDL_WINDOW_ACTIVATE_WHEN_RAISED",
5134    doc: "/**\n* A variable controlling whether the window is activated when the\n* SDL_RaiseWindow function is called.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": The window is not activated when the SDL_RaiseWindow function is\n*   called.\n* - \"1\": The window is activated when the SDL_RaiseWindow function is called.\n*   (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5135};
5136/**
5137* A variable controlling whether the window is activated when the
5138* SDL_ShowWindow function is called.
5139*
5140* The variable can be set to the following values:
5141*
5142* - "0": The window is not activated when the SDL_ShowWindow function is
5143*   called.
5144* - "1": The window is activated when the SDL_ShowWindow function is called.
5145*   (default)
5146*
5147* This hint can be set anytime.
5148*
5149* \since This hint is available since SDL 3.2.0.
5150*/
5151pub const SDL_HINT_WINDOW_ACTIVATE_WHEN_SHOWN: Hint = Hint {
5152    name: "SDL_HINT_WINDOW_ACTIVATE_WHEN_SHOWN",
5153    value: "SDL_WINDOW_ACTIVATE_WHEN_SHOWN",
5154    doc: "/**\n* A variable controlling whether the window is activated when the\n* SDL_ShowWindow function is called.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": The window is not activated when the SDL_ShowWindow function is\n*   called.\n* - \"1\": The window is activated when the SDL_ShowWindow function is called.\n*   (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5155};
5156/**
5157* If set to "0" then never set the top-most flag on an SDL Window even if the
5158* application requests it.
5159*
5160* This is a debugging aid for developers and not expected to be used by end
5161* users.
5162*
5163* The variable can be set to the following values:
5164*
5165* - "0": don't allow topmost
5166* - "1": allow topmost (default)
5167*
5168* This hint can be set anytime.
5169*
5170* \since This hint is available since SDL 3.2.0.
5171*/
5172pub const SDL_HINT_WINDOW_ALLOW_TOPMOST: Hint = Hint {
5173    name: "SDL_HINT_WINDOW_ALLOW_TOPMOST",
5174    value: "SDL_WINDOW_ALLOW_TOPMOST",
5175    doc: "/**\n* If set to \"0\" then never set the top-most flag on an SDL Window even if the\n* application requests it.\n*\n* This is a debugging aid for developers and not expected to be used by end\n* users.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": don't allow topmost\n* - \"1\": allow topmost (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5176};
5177/**
5178* A variable controlling whether the window frame and title bar are
5179* interactive when the cursor is hidden.
5180*
5181* The variable can be set to the following values:
5182*
5183* - "0": The window frame is not interactive when the cursor is hidden (no
5184*   move, resize, etc).
5185* - "1": The window frame is interactive when the cursor is hidden. (default)
5186*
5187* This hint can be set anytime.
5188*
5189* \since This hint is available since SDL 3.2.0.
5190*/
5191pub const SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN: Hint = Hint {
5192    name: "SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN",
5193    value: "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN",
5194    doc: "/**\n* A variable controlling whether the window frame and title bar are\n* interactive when the cursor is hidden.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": The window frame is not interactive when the cursor is hidden (no\n*   move, resize, etc).\n* - \"1\": The window frame is interactive when the cursor is hidden. (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5195};
5196/**
5197* A variable controlling whether SDL generates window-close events for Alt+F4
5198* on Windows.
5199*
5200* The variable can be set to the following values:
5201*
5202* - "0": SDL will only do normal key handling for Alt+F4.
5203* - "1": SDL will generate a window-close event when it sees Alt+F4.
5204*   (default)
5205*
5206* This hint can be set anytime.
5207*
5208* \since This hint is available since SDL 3.2.0.
5209*/
5210pub const SDL_HINT_WINDOWS_CLOSE_ON_ALT_F4: Hint = Hint {
5211    name: "SDL_HINT_WINDOWS_CLOSE_ON_ALT_F4",
5212    value: "SDL_WINDOWS_CLOSE_ON_ALT_F4",
5213    doc: "/**\n* A variable controlling whether SDL generates window-close events for Alt+F4\n* on Windows.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": SDL will only do normal key handling for Alt+F4.\n* - \"1\": SDL will generate a window-close event when it sees Alt+F4.\n*   (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5214};
5215/**
5216* A variable controlling whether menus can be opened with their keyboard
5217* shortcut (Alt+mnemonic).
5218*
5219* If the mnemonics are enabled, then menus can be opened by pressing the Alt
5220* key and the corresponding mnemonic (for example, Alt+F opens the File
5221* menu). However, in case an invalid mnemonic is pressed, Windows makes an
5222* audible beep to convey that nothing happened. This is true even if the
5223* window has no menu at all!
5224*
5225* Because most SDL applications don't have menus, and some want to use the
5226* Alt key for other purposes, SDL disables mnemonics (and the beeping) by
5227* default.
5228*
5229* Note: This also affects keyboard events: with mnemonics enabled, when a
5230* menu is opened from the keyboard, you will not receive a KEYUP event for
5231* the mnemonic key, and *might* not receive one for Alt.
5232*
5233* The variable can be set to the following values:
5234*
5235* - "0": Alt+mnemonic does nothing, no beeping. (default)
5236* - "1": Alt+mnemonic opens menus, invalid mnemonics produce a beep.
5237*
5238* This hint can be set anytime.
5239*
5240* \since This hint is available since SDL 3.2.0.
5241*/
5242pub const SDL_HINT_WINDOWS_ENABLE_MENU_MNEMONICS: Hint = Hint {
5243    name: "SDL_HINT_WINDOWS_ENABLE_MENU_MNEMONICS",
5244    value: "SDL_WINDOWS_ENABLE_MENU_MNEMONICS",
5245    doc: "/**\n* A variable controlling whether menus can be opened with their keyboard\n* shortcut (Alt+mnemonic).\n*\n* If the mnemonics are enabled, then menus can be opened by pressing the Alt\n* key and the corresponding mnemonic (for example, Alt+F opens the File\n* menu). However, in case an invalid mnemonic is pressed, Windows makes an\n* audible beep to convey that nothing happened. This is true even if the\n* window has no menu at all!\n*\n* Because most SDL applications don't have menus, and some want to use the\n* Alt key for other purposes, SDL disables mnemonics (and the beeping) by\n* default.\n*\n* Note: This also affects keyboard events: with mnemonics enabled, when a\n* menu is opened from the keyboard, you will not receive a KEYUP event for\n* the mnemonic key, and *might* not receive one for Alt.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Alt+mnemonic does nothing, no beeping. (default)\n* - \"1\": Alt+mnemonic opens menus, invalid mnemonics produce a beep.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5246};
5247/**
5248* A variable controlling whether the windows message loop is processed by
5249* SDL.
5250*
5251* The variable can be set to the following values:
5252*
5253* - "0": The window message loop is not run.
5254* - "1": The window message loop is processed in SDL_PumpEvents(). (default)
5255*
5256* This hint can be set anytime.
5257*
5258* \since This hint is available since SDL 3.2.0.
5259*/
5260pub const SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP: Hint = Hint {
5261    name: "SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP",
5262    value: "SDL_WINDOWS_ENABLE_MESSAGELOOP",
5263    doc: "/**\n* A variable controlling whether the windows message loop is processed by\n* SDL.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": The window message loop is not run.\n* - \"1\": The window message loop is processed in SDL_PumpEvents(). (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5264};
5265/**
5266* A variable controlling whether GameInput is used for raw keyboard and mouse
5267* on Windows.
5268*
5269* The variable can be set to the following values:
5270*
5271* - "0": GameInput is not used for raw keyboard and mouse events. (default)
5272* - "1": GameInput is used for raw keyboard and mouse events, if available.
5273*
5274* This hint should be set before SDL is initialized.
5275*
5276* \since This hint is available since SDL 3.2.0.
5277*/
5278pub const SDL_HINT_WINDOWS_GAMEINPUT: Hint = Hint {
5279    name: "SDL_HINT_WINDOWS_GAMEINPUT",
5280    value: "SDL_WINDOWS_GAMEINPUT",
5281    doc: "/**\n* A variable controlling whether GameInput is used for raw keyboard and mouse\n* on Windows.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": GameInput is not used for raw keyboard and mouse events. (default)\n* - \"1\": GameInput is used for raw keyboard and mouse events, if available.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5282};
5283/**
5284* A variable controlling whether raw keyboard events are used on Windows.
5285*
5286* The variable can be set to the following values:
5287*
5288* - "0": The Windows message loop is used for keyboard events. (default)
5289* - "1": Low latency raw keyboard events are used.
5290*
5291* This hint can be set anytime.
5292*
5293* \since This hint is available since SDL 3.2.0.
5294*/
5295pub const SDL_HINT_WINDOWS_RAW_KEYBOARD: Hint = Hint {
5296    name: "SDL_HINT_WINDOWS_RAW_KEYBOARD",
5297    value: "SDL_WINDOWS_RAW_KEYBOARD",
5298    doc: "/**\n* A variable controlling whether raw keyboard events are used on Windows.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": The Windows message loop is used for keyboard events. (default)\n* - \"1\": Low latency raw keyboard events are used.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5299};
5300/**
5301* A variable controlling whether or not the RIDEV_NOHOTKEYS flag is set when
5302* enabling Windows raw keyboard events.
5303*
5304* This blocks any hotkeys that have been registered by applications from
5305* having any effect beyond generating raw WM_INPUT events.
5306*
5307* This flag does not affect system-hotkeys like ALT-TAB or CTRL-ALT-DEL, but
5308* does affect the Windows Logo key since it is a userland hotkey registered
5309* by explorer.exe.
5310*
5311* The variable can be set to the following values:
5312*
5313* - "0": Hotkeys are not excluded. (default)
5314* - "1": Hotkeys are excluded.
5315*
5316* This hint can be set anytime.
5317*
5318* \since This hint is available since SDL 3.4.0.
5319*/
5320pub const SDL_HINT_WINDOWS_RAW_KEYBOARD_EXCLUDE_HOTKEYS: Hint = Hint {
5321    name: "SDL_HINT_WINDOWS_RAW_KEYBOARD_EXCLUDE_HOTKEYS",
5322    value: "SDL_WINDOWS_RAW_KEYBOARD_EXCLUDE_HOTKEYS",
5323    doc: "/**\n* A variable controlling whether or not the RIDEV_NOHOTKEYS flag is set when\n* enabling Windows raw keyboard events.\n*\n* This blocks any hotkeys that have been registered by applications from\n* having any effect beyond generating raw WM_INPUT events.\n*\n* This flag does not affect system-hotkeys like ALT-TAB or CTRL-ALT-DEL, but\n* does affect the Windows Logo key since it is a userland hotkey registered\n* by explorer.exe.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Hotkeys are not excluded. (default)\n* - \"1\": Hotkeys are excluded.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.4.0.\n*/\n",
5324};
5325/**
5326* A variable controlling whether the RIDEV_INPUTSINK flag is set when
5327* enabling Windows raw keyboard events.
5328*
5329* This enables the window to still receive input even if not in foreground.
5330*
5331* Focused windows that receive text input will still prevent input events
5332* from triggering.
5333*
5334* - "0": Input is not received when not in focus or foreground. (default)
5335* - "1": Input will be received even when not in focus or foreground.
5336*
5337* This hint can be set anytime.
5338*
5339* \since This hint is available since SDL 3.4.4.
5340*/
5341pub const SDL_HINT_WINDOWS_RAW_KEYBOARD_INPUTSINK: Hint = Hint {
5342    name: "SDL_HINT_WINDOWS_RAW_KEYBOARD_INPUTSINK",
5343    value: "SDL_WINDOWS_RAW_KEYBOARD_INPUTSINK",
5344    doc: "/**\n* A variable controlling whether the RIDEV_INPUTSINK flag is set when\n* enabling Windows raw keyboard events.\n*\n* This enables the window to still receive input even if not in foreground.\n*\n* Focused windows that receive text input will still prevent input events\n* from triggering.\n*\n* - \"0\": Input is not received when not in focus or foreground. (default)\n* - \"1\": Input will be received even when not in focus or foreground.\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.4.4.\n*/\n",
5345};
5346/**
5347* A variable controlling whether SDL uses Kernel Semaphores on Windows.
5348*
5349* Kernel Semaphores are inter-process and require a context switch on every
5350* interaction. On Windows 8 and newer, the WaitOnAddress API is available.
5351* Using that and atomics to implement semaphores increases performance. SDL
5352* will fall back to Kernel Objects on older OS versions or if forced to by
5353* this hint.
5354*
5355* The variable can be set to the following values:
5356*
5357* - "0": Use Atomics and WaitOnAddress API when available, otherwise fall
5358*   back to Kernel Objects. (default)
5359* - "1": Force the use of Kernel Objects in all cases.
5360*
5361* This hint should be set before SDL is initialized.
5362*
5363* \since This hint is available since SDL 3.2.0.
5364*/
5365pub const SDL_HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL: Hint = Hint {
5366    name: "SDL_HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL",
5367    value: "SDL_WINDOWS_FORCE_SEMAPHORE_KERNEL",
5368    doc: "/**\n* A variable controlling whether SDL uses Kernel Semaphores on Windows.\n*\n* Kernel Semaphores are inter-process and require a context switch on every\n* interaction. On Windows 8 and newer, the WaitOnAddress API is available.\n* Using that and atomics to implement semaphores increases performance. SDL\n* will fall back to Kernel Objects on older OS versions or if forced to by\n* this hint.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Use Atomics and WaitOnAddress API when available, otherwise fall\n*   back to Kernel Objects. (default)\n* - \"1\": Force the use of Kernel Objects in all cases.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5369};
5370/**
5371* A variable to specify custom icon resource id from RC file on Windows
5372* platform.
5373*
5374* This hint should be set before SDL is initialized.
5375*
5376* \since This hint is available since SDL 3.2.0.
5377*/
5378pub const SDL_HINT_WINDOWS_INTRESOURCE_ICON: Hint = Hint {
5379    name: "SDL_HINT_WINDOWS_INTRESOURCE_ICON",
5380    value: "SDL_WINDOWS_INTRESOURCE_ICON",
5381    doc: "/**\n* A variable to specify custom icon resource id from RC file on Windows\n* platform.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5382};
5383/**
5384* A variable to specify custom icon resource id from RC file on Windows
5385* platform.
5386*
5387* This hint should be set before SDL is initialized.
5388*
5389* \since This hint is available since SDL 3.2.0.
5390*/
5391pub const SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL: Hint = Hint {
5392    name: "SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL",
5393    value: "SDL_WINDOWS_INTRESOURCE_ICON_SMALL",
5394    doc: "/**\n* A variable to specify custom icon resource id from RC file on Windows\n* platform.\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5395};
5396/**
5397* A variable controlling whether SDL uses the D3D9Ex API introduced in
5398* Windows Vista, instead of normal D3D9.
5399*
5400* Direct3D 9Ex contains changes to state management that can eliminate device
5401* loss errors during scenarios like Alt+Tab or UAC prompts. D3D9Ex may
5402* require some changes to your application to cope with the new behavior, so
5403* this is disabled by default.
5404*
5405* For more information on Direct3D 9Ex, see:
5406*
5407* - https://docs.microsoft.com/en-us/windows/win32/direct3darticles/graphics-apis-in-windows-vista#direct3d-9ex
5408* - https://docs.microsoft.com/en-us/windows/win32/direct3darticles/direct3d-9ex-improvements
5409*
5410* The variable can be set to the following values:
5411*
5412* - "0": Use the original Direct3D 9 API. (default)
5413* - "1": Use the Direct3D 9Ex API on Vista and later (and fall back if D3D9Ex
5414*   is unavailable)
5415*
5416* This hint should be set before SDL is initialized.
5417*
5418* \since This hint is available since SDL 3.2.0.
5419*/
5420pub const SDL_HINT_WINDOWS_USE_D3D9EX: Hint = Hint {
5421    name: "SDL_HINT_WINDOWS_USE_D3D9EX",
5422    value: "SDL_WINDOWS_USE_D3D9EX",
5423    doc: "/**\n* A variable controlling whether SDL uses the D3D9Ex API introduced in\n* Windows Vista, instead of normal D3D9.\n*\n* Direct3D 9Ex contains changes to state management that can eliminate device\n* loss errors during scenarios like Alt+Tab or UAC prompts. D3D9Ex may\n* require some changes to your application to cope with the new behavior, so\n* this is disabled by default.\n*\n* For more information on Direct3D 9Ex, see:\n*\n* - https://docs.microsoft.com/en-us/windows/win32/direct3darticles/graphics-apis-in-windows-vista#direct3d-9ex\n* - https://docs.microsoft.com/en-us/windows/win32/direct3darticles/direct3d-9ex-improvements\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Use the original Direct3D 9 API. (default)\n* - \"1\": Use the Direct3D 9Ex API on Vista and later (and fall back if D3D9Ex\n*   is unavailable)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5424};
5425/**
5426* A variable controlling whether SDL will clear the window contents when the
5427* WM_ERASEBKGND message is received.
5428*
5429* The variable can be set to the following values:
5430*
5431* - "0"/"never": Never clear the window.
5432* - "1"/"initial": Clear the window when the first WM_ERASEBKGND event fires.
5433*   (default)
5434* - "2"/"always": Clear the window on every WM_ERASEBKGND event.
5435*
5436* This hint should be set before creating a window.
5437*
5438* \since This hint is available since SDL 3.2.0.
5439*/
5440pub const SDL_HINT_WINDOWS_ERASE_BACKGROUND_MODE: Hint = Hint {
5441    name: "SDL_HINT_WINDOWS_ERASE_BACKGROUND_MODE",
5442    value: "SDL_WINDOWS_ERASE_BACKGROUND_MODE",
5443    doc: "/**\n* A variable controlling whether SDL will clear the window contents when the\n* WM_ERASEBKGND message is received.\n*\n* The variable can be set to the following values:\n*\n* - \"0\"/\"never\": Never clear the window.\n* - \"1\"/\"initial\": Clear the window when the first WM_ERASEBKGND event fires.\n*   (default)\n* - \"2\"/\"always\": Clear the window on every WM_ERASEBKGND event.\n*\n* This hint should be set before creating a window.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5444};
5445/**
5446* A variable controlling whether X11 windows are marked as override-redirect.
5447*
5448* If set, this _might_ increase framerate at the expense of the desktop not
5449* working as expected. Override-redirect windows aren't noticed by the window
5450* manager at all.
5451*
5452* You should probably only use this for fullscreen windows, and you probably
5453* shouldn't even use it for that. But it's here if you want to try!
5454*
5455* The variable can be set to the following values:
5456*
5457* - "0": Do not mark the window as override-redirect. (default)
5458* - "1": Mark the window as override-redirect.
5459*
5460* This hint should be set before creating a window.
5461*
5462* \since This hint is available since SDL 3.2.0.
5463*/
5464pub const SDL_HINT_X11_FORCE_OVERRIDE_REDIRECT: Hint = Hint {
5465    name: "SDL_HINT_X11_FORCE_OVERRIDE_REDIRECT",
5466    value: "SDL_X11_FORCE_OVERRIDE_REDIRECT",
5467    doc: "/**\n* A variable controlling whether X11 windows are marked as override-redirect.\n*\n* If set, this _might_ increase framerate at the expense of the desktop not\n* working as expected. Override-redirect windows aren't noticed by the window\n* manager at all.\n*\n* You should probably only use this for fullscreen windows, and you probably\n* shouldn't even use it for that. But it's here if you want to try!\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Do not mark the window as override-redirect. (default)\n* - \"1\": Mark the window as override-redirect.\n*\n* This hint should be set before creating a window.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5468};
5469/**
5470* A variable specifying the type of an X11 window.
5471*
5472* During SDL_CreateWindow, SDL uses the _NET_WM_WINDOW_TYPE X11 property to
5473* report to the window manager the type of window it wants to create. This
5474* might be set to various things if SDL_WINDOW_TOOLTIP or
5475* SDL_WINDOW_POPUP_MENU, etc, were specified. For "normal" windows that
5476* haven't set a specific type, this hint can be used to specify a custom
5477* type. For example, a dock window might set this to
5478* "_NET_WM_WINDOW_TYPE_DOCK".
5479*
5480* This hint should be set before creating a window.
5481*
5482* \since This hint is available since SDL 3.2.0.
5483*/
5484pub const SDL_HINT_X11_WINDOW_TYPE: Hint = Hint {
5485    name: "SDL_HINT_X11_WINDOW_TYPE",
5486    value: "SDL_X11_WINDOW_TYPE",
5487    doc: "/**\n* A variable specifying the type of an X11 window.\n*\n* During SDL_CreateWindow, SDL uses the _NET_WM_WINDOW_TYPE X11 property to\n* report to the window manager the type of window it wants to create. This\n* might be set to various things if SDL_WINDOW_TOOLTIP or\n* SDL_WINDOW_POPUP_MENU, etc, were specified. For \"normal\" windows that\n* haven't set a specific type, this hint can be used to specify a custom\n* type. For example, a dock window might set this to\n* \"_NET_WM_WINDOW_TYPE_DOCK\".\n*\n* This hint should be set before creating a window.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5488};
5489/**
5490* Specify the XCB library to load for the X11 driver.
5491*
5492* The default is platform-specific, often "libX11-xcb.so.1".
5493*
5494* This hint should be set before initializing the video subsystem.
5495*
5496* \since This hint is available since SDL 3.2.0.
5497*/
5498pub const SDL_HINT_X11_XCB_LIBRARY: Hint = Hint {
5499    name: "SDL_HINT_X11_XCB_LIBRARY",
5500    value: "SDL_X11_XCB_LIBRARY",
5501    doc: "/**\n* Specify the XCB library to load for the X11 driver.\n*\n* The default is platform-specific, often \"libX11-xcb.so.1\".\n*\n* This hint should be set before initializing the video subsystem.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5502};
5503/**
5504* A variable controlling whether XInput should be used for controller
5505* handling.
5506*
5507* The variable can be set to the following values:
5508*
5509* - "0": XInput is not enabled.
5510* - "1": XInput is enabled. (default)
5511*
5512* This hint should be set before SDL is initialized.
5513*
5514* \since This hint is available since SDL 3.2.0.
5515*/
5516pub const SDL_HINT_XINPUT_ENABLED: Hint = Hint {
5517    name: "SDL_HINT_XINPUT_ENABLED",
5518    value: "SDL_XINPUT_ENABLED",
5519    doc: "/**\n* A variable controlling whether XInput should be used for controller\n* handling.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": XInput is not enabled.\n* - \"1\": XInput is enabled. (default)\n*\n* This hint should be set before SDL is initialized.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5520};
5521/**
5522* A variable controlling response to SDL_assert failures.
5523*
5524* The variable can be set to the following case-sensitive values:
5525*
5526* - "abort": Program terminates immediately.
5527* - "break": Program triggers a debugger breakpoint.
5528* - "retry": Program reruns the SDL_assert's test again.
5529* - "ignore": Program continues on, ignoring this assertion failure this
5530*   time.
5531* - "always_ignore": Program continues on, ignoring this assertion failure
5532*   for the rest of the run.
5533*
5534* Note that SDL_SetAssertionHandler offers a programmatic means to deal with
5535* assertion failures through a callback, and this hint is largely intended to
5536* be used via environment variables by end users and automated tools.
5537*
5538* This hint should be set before an assertion failure is triggered and can be
5539* changed at any time.
5540*
5541* \since This hint is available since SDL 3.2.0.
5542*/
5543pub const SDL_HINT_ASSERT: Hint = Hint {
5544    name: "SDL_HINT_ASSERT",
5545    value: "SDL_ASSERT",
5546    doc: "/**\n* A variable controlling response to SDL_assert failures.\n*\n* The variable can be set to the following case-sensitive values:\n*\n* - \"abort\": Program terminates immediately.\n* - \"break\": Program triggers a debugger breakpoint.\n* - \"retry\": Program reruns the SDL_assert's test again.\n* - \"ignore\": Program continues on, ignoring this assertion failure this\n*   time.\n* - \"always_ignore\": Program continues on, ignoring this assertion failure\n*   for the rest of the run.\n*\n* Note that SDL_SetAssertionHandler offers a programmatic means to deal with\n* assertion failures through a callback, and this hint is largely intended to\n* be used via environment variables by end users and automated tools.\n*\n* This hint should be set before an assertion failure is triggered and can be\n* changed at any time.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5547};
5548/**
5549* A variable controlling whether pen events should generate synthetic mouse
5550* events.
5551*
5552* The variable can be set to the following values:
5553*
5554* - "0": Pen events will not generate mouse events.
5555* - "1": Pen events will generate mouse events. (default)
5556*
5557* This hint can be set anytime.
5558*
5559* \since This hint is available since SDL 3.2.0.
5560*/
5561pub const SDL_HINT_PEN_MOUSE_EVENTS: Hint = Hint {
5562    name: "SDL_HINT_PEN_MOUSE_EVENTS",
5563    value: "SDL_PEN_MOUSE_EVENTS",
5564    doc: "/**\n* A variable controlling whether pen events should generate synthetic mouse\n* events.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Pen events will not generate mouse events.\n* - \"1\": Pen events will generate mouse events. (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5565};
5566/**
5567* A variable controlling whether pen events should generate synthetic touch
5568* events.
5569*
5570* The variable can be set to the following values:
5571*
5572* - "0": Pen events will not generate touch events.
5573* - "1": Pen events will generate touch events. (default)
5574*
5575* This hint can be set anytime.
5576*
5577* \since This hint is available since SDL 3.2.0.
5578*/
5579pub const SDL_HINT_PEN_TOUCH_EVENTS: Hint = Hint {
5580    name: "SDL_HINT_PEN_TOUCH_EVENTS",
5581    value: "SDL_PEN_TOUCH_EVENTS",
5582    doc: "/**\n* A variable controlling whether pen events should generate synthetic touch\n* events.\n*\n* The variable can be set to the following values:\n*\n* - \"0\": Pen events will not generate touch events.\n* - \"1\": Pen events will generate touch events. (default)\n*\n* This hint can be set anytime.\n*\n* \\since This hint is available since SDL 3.2.0.\n*/\n",
5583};
5584pub const SDL_PROP_AUDIOSTREAM_AUTO_CLEANUP_BOOLEAN: Property = Property {
5585    name: "SDL_PROP_AUDIOSTREAM_AUTO_CLEANUP_BOOLEAN",
5586    value: "SDL.audiostream.auto_cleanup",
5587    ty: PropertyType::Boolean,
5588    doc: "",
5589};
5590pub const SDL_PROP_FILE_DIALOG_FILTERS_POINTER: Property = Property {
5591    name: "SDL_PROP_FILE_DIALOG_FILTERS_POINTER",
5592    value: "SDL.filedialog.filters",
5593    ty: PropertyType::Pointer,
5594    doc: "",
5595};
5596pub const SDL_PROP_FILE_DIALOG_NFILTERS_NUMBER: Property = Property {
5597    name: "SDL_PROP_FILE_DIALOG_NFILTERS_NUMBER",
5598    value: "SDL.filedialog.nfilters",
5599    ty: PropertyType::Number,
5600    doc: "",
5601};
5602pub const SDL_PROP_FILE_DIALOG_WINDOW_POINTER: Property = Property {
5603    name: "SDL_PROP_FILE_DIALOG_WINDOW_POINTER",
5604    value: "SDL.filedialog.window",
5605    ty: PropertyType::Pointer,
5606    doc: "",
5607};
5608pub const SDL_PROP_FILE_DIALOG_LOCATION_STRING: Property = Property {
5609    name: "SDL_PROP_FILE_DIALOG_LOCATION_STRING",
5610    value: "SDL.filedialog.location",
5611    ty: PropertyType::String,
5612    doc: "",
5613};
5614pub const SDL_PROP_FILE_DIALOG_MANY_BOOLEAN: Property = Property {
5615    name: "SDL_PROP_FILE_DIALOG_MANY_BOOLEAN",
5616    value: "SDL.filedialog.many",
5617    ty: PropertyType::Boolean,
5618    doc: "",
5619};
5620pub const SDL_PROP_FILE_DIALOG_TITLE_STRING: Property = Property {
5621    name: "SDL_PROP_FILE_DIALOG_TITLE_STRING",
5622    value: "SDL.filedialog.title",
5623    ty: PropertyType::String,
5624    doc: "",
5625};
5626pub const SDL_PROP_FILE_DIALOG_ACCEPT_STRING: Property = Property {
5627    name: "SDL_PROP_FILE_DIALOG_ACCEPT_STRING",
5628    value: "SDL.filedialog.accept",
5629    ty: PropertyType::String,
5630    doc: "",
5631};
5632pub const SDL_PROP_FILE_DIALOG_CANCEL_STRING: Property = Property {
5633    name: "SDL_PROP_FILE_DIALOG_CANCEL_STRING",
5634    value: "SDL.filedialog.cancel",
5635    ty: PropertyType::String,
5636    doc: "",
5637};
5638pub const SDL_PROP_GPU_DEVICE_CREATE_DEBUGMODE_BOOLEAN: Property = Property {
5639    name: "SDL_PROP_GPU_DEVICE_CREATE_DEBUGMODE_BOOLEAN",
5640    value: "SDL.gpu.device.create.debugmode",
5641    ty: PropertyType::Boolean,
5642    doc: "",
5643};
5644pub const SDL_PROP_GPU_DEVICE_CREATE_PREFERLOWPOWER_BOOLEAN: Property = Property {
5645    name: "SDL_PROP_GPU_DEVICE_CREATE_PREFERLOWPOWER_BOOLEAN",
5646    value: "SDL.gpu.device.create.preferlowpower",
5647    ty: PropertyType::Boolean,
5648    doc: "",
5649};
5650pub const SDL_PROP_GPU_DEVICE_CREATE_VERBOSE_BOOLEAN: Property = Property {
5651    name: "SDL_PROP_GPU_DEVICE_CREATE_VERBOSE_BOOLEAN",
5652    value: "SDL.gpu.device.create.verbose",
5653    ty: PropertyType::Boolean,
5654    doc: "",
5655};
5656pub const SDL_PROP_GPU_DEVICE_CREATE_NAME_STRING: Property = Property {
5657    name: "SDL_PROP_GPU_DEVICE_CREATE_NAME_STRING",
5658    value: "SDL.gpu.device.create.name",
5659    ty: PropertyType::String,
5660    doc: "",
5661};
5662pub const SDL_PROP_GPU_DEVICE_CREATE_FEATURE_CLIP_DISTANCE_BOOLEAN: Property = Property {
5663    name: "SDL_PROP_GPU_DEVICE_CREATE_FEATURE_CLIP_DISTANCE_BOOLEAN",
5664    value: "SDL.gpu.device.create.feature.clip_distance",
5665    ty: PropertyType::Boolean,
5666    doc: "",
5667};
5668pub const SDL_PROP_GPU_DEVICE_CREATE_FEATURE_DEPTH_CLAMPING_BOOLEAN: Property = Property {
5669    name: "SDL_PROP_GPU_DEVICE_CREATE_FEATURE_DEPTH_CLAMPING_BOOLEAN",
5670    value: "SDL.gpu.device.create.feature.depth_clamping",
5671    ty: PropertyType::Boolean,
5672    doc: "",
5673};
5674pub const SDL_PROP_GPU_DEVICE_CREATE_FEATURE_INDIRECT_DRAW_FIRST_INSTANCE_BOOLEAN: Property =
5675    Property {
5676        name: "SDL_PROP_GPU_DEVICE_CREATE_FEATURE_INDIRECT_DRAW_FIRST_INSTANCE_BOOLEAN",
5677        value: "SDL.gpu.device.create.feature.indirect_draw_first_instance",
5678        ty: PropertyType::Boolean,
5679        doc: "",
5680    };
5681pub const SDL_PROP_GPU_DEVICE_CREATE_FEATURE_ANISOTROPY_BOOLEAN: Property = Property {
5682    name: "SDL_PROP_GPU_DEVICE_CREATE_FEATURE_ANISOTROPY_BOOLEAN",
5683    value: "SDL.gpu.device.create.feature.anisotropy",
5684    ty: PropertyType::Boolean,
5685    doc: "",
5686};
5687pub const SDL_PROP_GPU_DEVICE_CREATE_SHADERS_PRIVATE_BOOLEAN: Property = Property {
5688    name: "SDL_PROP_GPU_DEVICE_CREATE_SHADERS_PRIVATE_BOOLEAN",
5689    value: "SDL.gpu.device.create.shaders.private",
5690    ty: PropertyType::Boolean,
5691    doc: "",
5692};
5693pub const SDL_PROP_GPU_DEVICE_CREATE_SHADERS_SPIRV_BOOLEAN: Property = Property {
5694    name: "SDL_PROP_GPU_DEVICE_CREATE_SHADERS_SPIRV_BOOLEAN",
5695    value: "SDL.gpu.device.create.shaders.spirv",
5696    ty: PropertyType::Boolean,
5697    doc: "",
5698};
5699pub const SDL_PROP_GPU_DEVICE_CREATE_SHADERS_DXBC_BOOLEAN: Property = Property {
5700    name: "SDL_PROP_GPU_DEVICE_CREATE_SHADERS_DXBC_BOOLEAN",
5701    value: "SDL.gpu.device.create.shaders.dxbc",
5702    ty: PropertyType::Boolean,
5703    doc: "",
5704};
5705pub const SDL_PROP_GPU_DEVICE_CREATE_SHADERS_DXIL_BOOLEAN: Property = Property {
5706    name: "SDL_PROP_GPU_DEVICE_CREATE_SHADERS_DXIL_BOOLEAN",
5707    value: "SDL.gpu.device.create.shaders.dxil",
5708    ty: PropertyType::Boolean,
5709    doc: "",
5710};
5711pub const SDL_PROP_GPU_DEVICE_CREATE_SHADERS_MSL_BOOLEAN: Property = Property {
5712    name: "SDL_PROP_GPU_DEVICE_CREATE_SHADERS_MSL_BOOLEAN",
5713    value: "SDL.gpu.device.create.shaders.msl",
5714    ty: PropertyType::Boolean,
5715    doc: "",
5716};
5717pub const SDL_PROP_GPU_DEVICE_CREATE_SHADERS_METALLIB_BOOLEAN: Property = Property {
5718    name: "SDL_PROP_GPU_DEVICE_CREATE_SHADERS_METALLIB_BOOLEAN",
5719    value: "SDL.gpu.device.create.shaders.metallib",
5720    ty: PropertyType::Boolean,
5721    doc: "",
5722};
5723pub const SDL_PROP_GPU_DEVICE_CREATE_D3D12_ALLOW_FEWER_RESOURCE_SLOTS_BOOLEAN: Property =
5724    Property {
5725        name: "SDL_PROP_GPU_DEVICE_CREATE_D3D12_ALLOW_FEWER_RESOURCE_SLOTS_BOOLEAN",
5726        value: "SDL.gpu.device.create.d3d12.allowtier1resourcebinding",
5727        ty: PropertyType::Boolean,
5728        doc: "",
5729    };
5730pub const SDL_PROP_GPU_DEVICE_CREATE_D3D12_SEMANTIC_NAME_STRING: Property = Property {
5731    name: "SDL_PROP_GPU_DEVICE_CREATE_D3D12_SEMANTIC_NAME_STRING",
5732    value: "SDL.gpu.device.create.d3d12.semantic",
5733    ty: PropertyType::String,
5734    doc: "",
5735};
5736pub const SDL_PROP_GPU_DEVICE_CREATE_D3D12_AGILITY_SDK_VERSION_NUMBER: Property = Property {
5737    name: "SDL_PROP_GPU_DEVICE_CREATE_D3D12_AGILITY_SDK_VERSION_NUMBER",
5738    value: "SDL.gpu.device.create.d3d12.agility_sdk_version",
5739    ty: PropertyType::Number,
5740    doc: "",
5741};
5742pub const SDL_PROP_GPU_DEVICE_CREATE_D3D12_AGILITY_SDK_PATH_STRING: Property = Property {
5743    name: "SDL_PROP_GPU_DEVICE_CREATE_D3D12_AGILITY_SDK_PATH_STRING",
5744    value: "SDL.gpu.device.create.d3d12.agility_sdk_path",
5745    ty: PropertyType::String,
5746    doc: "",
5747};
5748pub const SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEAN: Property =
5749    Property {
5750        name: "SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEAN",
5751        value: "SDL.gpu.device.create.vulkan.requirehardwareacceleration",
5752        ty: PropertyType::Boolean,
5753        doc: "",
5754    };
5755pub const SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER: Property = Property {
5756    name: "SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER",
5757    value: "SDL.gpu.device.create.vulkan.options",
5758    ty: PropertyType::Pointer,
5759    doc: "",
5760};
5761pub const SDL_PROP_GPU_DEVICE_CREATE_METAL_ALLOW_MACFAMILY1_BOOLEAN: Property = Property {
5762    name: "SDL_PROP_GPU_DEVICE_CREATE_METAL_ALLOW_MACFAMILY1_BOOLEAN",
5763    value: "SDL.gpu.device.create.metal.allowmacfamily1",
5764    ty: PropertyType::Boolean,
5765    doc: "",
5766};
5767pub const SDL_PROP_GPU_DEVICE_CREATE_XR_ENABLE_BOOLEAN: Property = Property {
5768    name: "SDL_PROP_GPU_DEVICE_CREATE_XR_ENABLE_BOOLEAN",
5769    value: "SDL.gpu.device.create.xr.enable",
5770    ty: PropertyType::Boolean,
5771    doc: "",
5772};
5773pub const SDL_PROP_GPU_DEVICE_CREATE_XR_INSTANCE_POINTER: Property = Property {
5774    name: "SDL_PROP_GPU_DEVICE_CREATE_XR_INSTANCE_POINTER",
5775    value: "SDL.gpu.device.create.xr.instance_out",
5776    ty: PropertyType::Pointer,
5777    doc: "",
5778};
5779pub const SDL_PROP_GPU_DEVICE_CREATE_XR_SYSTEM_ID_POINTER: Property = Property {
5780    name: "SDL_PROP_GPU_DEVICE_CREATE_XR_SYSTEM_ID_POINTER",
5781    value: "SDL.gpu.device.create.xr.system_id_out",
5782    ty: PropertyType::Pointer,
5783    doc: "",
5784};
5785pub const SDL_PROP_GPU_DEVICE_CREATE_XR_VERSION_NUMBER: Property = Property {
5786    name: "SDL_PROP_GPU_DEVICE_CREATE_XR_VERSION_NUMBER",
5787    value: "SDL.gpu.device.create.xr.version",
5788    ty: PropertyType::Number,
5789    doc: "",
5790};
5791pub const SDL_PROP_GPU_DEVICE_CREATE_XR_FORM_FACTOR_NUMBER: Property = Property {
5792    name: "SDL_PROP_GPU_DEVICE_CREATE_XR_FORM_FACTOR_NUMBER",
5793    value: "SDL.gpu.device.create.xr.form_factor",
5794    ty: PropertyType::Number,
5795    doc: "",
5796};
5797pub const SDL_PROP_GPU_DEVICE_CREATE_XR_EXTENSION_COUNT_NUMBER: Property = Property {
5798    name: "SDL_PROP_GPU_DEVICE_CREATE_XR_EXTENSION_COUNT_NUMBER",
5799    value: "SDL.gpu.device.create.xr.extensions.count",
5800    ty: PropertyType::Number,
5801    doc: "",
5802};
5803pub const SDL_PROP_GPU_DEVICE_CREATE_XR_EXTENSION_NAMES_POINTER: Property = Property {
5804    name: "SDL_PROP_GPU_DEVICE_CREATE_XR_EXTENSION_NAMES_POINTER",
5805    value: "SDL.gpu.device.create.xr.extensions.names",
5806    ty: PropertyType::Pointer,
5807    doc: "",
5808};
5809pub const SDL_PROP_GPU_DEVICE_CREATE_XR_LAYER_COUNT_NUMBER: Property = Property {
5810    name: "SDL_PROP_GPU_DEVICE_CREATE_XR_LAYER_COUNT_NUMBER",
5811    value: "SDL.gpu.device.create.xr.layers.count",
5812    ty: PropertyType::Number,
5813    doc: "",
5814};
5815pub const SDL_PROP_GPU_DEVICE_CREATE_XR_LAYER_NAMES_POINTER: Property = Property {
5816    name: "SDL_PROP_GPU_DEVICE_CREATE_XR_LAYER_NAMES_POINTER",
5817    value: "SDL.gpu.device.create.xr.layers.names",
5818    ty: PropertyType::Pointer,
5819    doc: "",
5820};
5821pub const SDL_PROP_GPU_DEVICE_CREATE_XR_APPLICATION_NAME_STRING: Property = Property {
5822    name: "SDL_PROP_GPU_DEVICE_CREATE_XR_APPLICATION_NAME_STRING",
5823    value: "SDL.gpu.device.create.xr.application.name",
5824    ty: PropertyType::String,
5825    doc: "",
5826};
5827pub const SDL_PROP_GPU_DEVICE_CREATE_XR_APPLICATION_VERSION_NUMBER: Property = Property {
5828    name: "SDL_PROP_GPU_DEVICE_CREATE_XR_APPLICATION_VERSION_NUMBER",
5829    value: "SDL.gpu.device.create.xr.application.version",
5830    ty: PropertyType::Number,
5831    doc: "",
5832};
5833pub const SDL_PROP_GPU_DEVICE_CREATE_XR_ENGINE_NAME_STRING: Property = Property {
5834    name: "SDL_PROP_GPU_DEVICE_CREATE_XR_ENGINE_NAME_STRING",
5835    value: "SDL.gpu.device.create.xr.engine.name",
5836    ty: PropertyType::String,
5837    doc: "",
5838};
5839pub const SDL_PROP_GPU_DEVICE_CREATE_XR_ENGINE_VERSION_NUMBER: Property = Property {
5840    name: "SDL_PROP_GPU_DEVICE_CREATE_XR_ENGINE_VERSION_NUMBER",
5841    value: "SDL.gpu.device.create.xr.engine.version",
5842    ty: PropertyType::Number,
5843    doc: "",
5844};
5845pub const SDL_PROP_GPU_DEVICE_NAME_STRING: Property = Property {
5846    name: "SDL_PROP_GPU_DEVICE_NAME_STRING",
5847    value: "SDL.gpu.device.name",
5848    ty: PropertyType::String,
5849    doc: "",
5850};
5851pub const SDL_PROP_GPU_DEVICE_DRIVER_NAME_STRING: Property = Property {
5852    name: "SDL_PROP_GPU_DEVICE_DRIVER_NAME_STRING",
5853    value: "SDL.gpu.device.driver_name",
5854    ty: PropertyType::String,
5855    doc: "",
5856};
5857pub const SDL_PROP_GPU_DEVICE_DRIVER_VERSION_STRING: Property = Property {
5858    name: "SDL_PROP_GPU_DEVICE_DRIVER_VERSION_STRING",
5859    value: "SDL.gpu.device.driver_version",
5860    ty: PropertyType::String,
5861    doc: "",
5862};
5863pub const SDL_PROP_GPU_DEVICE_DRIVER_INFO_STRING: Property = Property {
5864    name: "SDL_PROP_GPU_DEVICE_DRIVER_INFO_STRING",
5865    value: "SDL.gpu.device.driver_info",
5866    ty: PropertyType::String,
5867    doc: "",
5868};
5869pub const SDL_PROP_GPU_COMPUTEPIPELINE_CREATE_NAME_STRING: Property = Property {
5870    name: "SDL_PROP_GPU_COMPUTEPIPELINE_CREATE_NAME_STRING",
5871    value: "SDL.gpu.computepipeline.create.name",
5872    ty: PropertyType::String,
5873    doc: "",
5874};
5875pub const SDL_PROP_GPU_GRAPHICSPIPELINE_CREATE_NAME_STRING: Property = Property {
5876    name: "SDL_PROP_GPU_GRAPHICSPIPELINE_CREATE_NAME_STRING",
5877    value: "SDL.gpu.graphicspipeline.create.name",
5878    ty: PropertyType::String,
5879    doc: "",
5880};
5881pub const SDL_PROP_GPU_SAMPLER_CREATE_NAME_STRING: Property = Property {
5882    name: "SDL_PROP_GPU_SAMPLER_CREATE_NAME_STRING",
5883    value: "SDL.gpu.sampler.create.name",
5884    ty: PropertyType::String,
5885    doc: "",
5886};
5887pub const SDL_PROP_GPU_SHADER_CREATE_NAME_STRING: Property = Property {
5888    name: "SDL_PROP_GPU_SHADER_CREATE_NAME_STRING",
5889    value: "SDL.gpu.shader.create.name",
5890    ty: PropertyType::String,
5891    doc: "",
5892};
5893pub const SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_R_FLOAT: Property = Property {
5894    name: "SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_R_FLOAT",
5895    value: "SDL.gpu.texture.create.d3d12.clear.r",
5896    ty: PropertyType::Float,
5897    doc: "",
5898};
5899pub const SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_G_FLOAT: Property = Property {
5900    name: "SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_G_FLOAT",
5901    value: "SDL.gpu.texture.create.d3d12.clear.g",
5902    ty: PropertyType::Float,
5903    doc: "",
5904};
5905pub const SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_B_FLOAT: Property = Property {
5906    name: "SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_B_FLOAT",
5907    value: "SDL.gpu.texture.create.d3d12.clear.b",
5908    ty: PropertyType::Float,
5909    doc: "",
5910};
5911pub const SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_A_FLOAT: Property = Property {
5912    name: "SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_A_FLOAT",
5913    value: "SDL.gpu.texture.create.d3d12.clear.a",
5914    ty: PropertyType::Float,
5915    doc: "",
5916};
5917pub const SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_DEPTH_FLOAT: Property = Property {
5918    name: "SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_DEPTH_FLOAT",
5919    value: "SDL.gpu.texture.create.d3d12.clear.depth",
5920    ty: PropertyType::Float,
5921    doc: "",
5922};
5923pub const SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_STENCIL_NUMBER: Property = Property {
5924    name: "SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_STENCIL_NUMBER",
5925    value: "SDL.gpu.texture.create.d3d12.clear.stencil",
5926    ty: PropertyType::Number,
5927    doc: "",
5928};
5929pub const SDL_PROP_GPU_TEXTURE_CREATE_NAME_STRING: Property = Property {
5930    name: "SDL_PROP_GPU_TEXTURE_CREATE_NAME_STRING",
5931    value: "SDL.gpu.texture.create.name",
5932    ty: PropertyType::String,
5933    doc: "",
5934};
5935pub const SDL_PROP_GPU_BUFFER_CREATE_NAME_STRING: Property = Property {
5936    name: "SDL_PROP_GPU_BUFFER_CREATE_NAME_STRING",
5937    value: "SDL.gpu.buffer.create.name",
5938    ty: PropertyType::String,
5939    doc: "",
5940};
5941pub const SDL_PROP_GPU_TRANSFERBUFFER_CREATE_NAME_STRING: Property = Property {
5942    name: "SDL_PROP_GPU_TRANSFERBUFFER_CREATE_NAME_STRING",
5943    value: "SDL.gpu.transferbuffer.create.name",
5944    ty: PropertyType::String,
5945    doc: "",
5946};
5947pub const SDL_PROP_HIDAPI_LIBUSB_DEVICE_HANDLE_POINTER: Property = Property {
5948    name: "SDL_PROP_HIDAPI_LIBUSB_DEVICE_HANDLE_POINTER",
5949    value: "SDL.hidapi.libusb.device.handle",
5950    ty: PropertyType::Pointer,
5951    doc: "",
5952};
5953pub const SDL_PROP_APP_METADATA_NAME_STRING: Property = Property {
5954    name: "SDL_PROP_APP_METADATA_NAME_STRING",
5955    value: "SDL.app.metadata.name",
5956    ty: PropertyType::String,
5957    doc: "",
5958};
5959pub const SDL_PROP_APP_METADATA_VERSION_STRING: Property = Property {
5960    name: "SDL_PROP_APP_METADATA_VERSION_STRING",
5961    value: "SDL.app.metadata.version",
5962    ty: PropertyType::String,
5963    doc: "",
5964};
5965pub const SDL_PROP_APP_METADATA_IDENTIFIER_STRING: Property = Property {
5966    name: "SDL_PROP_APP_METADATA_IDENTIFIER_STRING",
5967    value: "SDL.app.metadata.identifier",
5968    ty: PropertyType::String,
5969    doc: "",
5970};
5971pub const SDL_PROP_APP_METADATA_CREATOR_STRING: Property = Property {
5972    name: "SDL_PROP_APP_METADATA_CREATOR_STRING",
5973    value: "SDL.app.metadata.creator",
5974    ty: PropertyType::String,
5975    doc: "",
5976};
5977pub const SDL_PROP_APP_METADATA_COPYRIGHT_STRING: Property = Property {
5978    name: "SDL_PROP_APP_METADATA_COPYRIGHT_STRING",
5979    value: "SDL.app.metadata.copyright",
5980    ty: PropertyType::String,
5981    doc: "",
5982};
5983pub const SDL_PROP_APP_METADATA_URL_STRING: Property = Property {
5984    name: "SDL_PROP_APP_METADATA_URL_STRING",
5985    value: "SDL.app.metadata.url",
5986    ty: PropertyType::String,
5987    doc: "",
5988};
5989pub const SDL_PROP_APP_METADATA_TYPE_STRING: Property = Property {
5990    name: "SDL_PROP_APP_METADATA_TYPE_STRING",
5991    value: "SDL.app.metadata.type",
5992    ty: PropertyType::String,
5993    doc: "",
5994};
5995pub const SDL_PROP_IOSTREAM_WINDOWS_HANDLE_POINTER: Property = Property {
5996    name: "SDL_PROP_IOSTREAM_WINDOWS_HANDLE_POINTER",
5997    value: "SDL.iostream.windows.handle",
5998    ty: PropertyType::Pointer,
5999    doc: "",
6000};
6001pub const SDL_PROP_IOSTREAM_STDIO_FILE_POINTER: Property = Property {
6002    name: "SDL_PROP_IOSTREAM_STDIO_FILE_POINTER",
6003    value: "SDL.iostream.stdio.file",
6004    ty: PropertyType::Pointer,
6005    doc: "",
6006};
6007pub const SDL_PROP_IOSTREAM_FILE_DESCRIPTOR_NUMBER: Property = Property {
6008    name: "SDL_PROP_IOSTREAM_FILE_DESCRIPTOR_NUMBER",
6009    value: "SDL.iostream.file_descriptor",
6010    ty: PropertyType::Number,
6011    doc: "",
6012};
6013pub const SDL_PROP_IOSTREAM_ANDROID_AASSET_POINTER: Property = Property {
6014    name: "SDL_PROP_IOSTREAM_ANDROID_AASSET_POINTER",
6015    value: "SDL.iostream.android.aasset",
6016    ty: PropertyType::Pointer,
6017    doc: "",
6018};
6019pub const SDL_PROP_IOSTREAM_MEMORY_POINTER: Property = Property {
6020    name: "SDL_PROP_IOSTREAM_MEMORY_POINTER",
6021    value: "SDL.iostream.memory.base",
6022    ty: PropertyType::Pointer,
6023    doc: "",
6024};
6025pub const SDL_PROP_IOSTREAM_MEMORY_SIZE_NUMBER: Property = Property {
6026    name: "SDL_PROP_IOSTREAM_MEMORY_SIZE_NUMBER",
6027    value: "SDL.iostream.memory.size",
6028    ty: PropertyType::Number,
6029    doc: "",
6030};
6031pub const SDL_PROP_IOSTREAM_MEMORY_FREE_FUNC_POINTER: Property = Property {
6032    name: "SDL_PROP_IOSTREAM_MEMORY_FREE_FUNC_POINTER",
6033    value: "SDL.iostream.memory.free",
6034    ty: PropertyType::Pointer,
6035    doc: "",
6036};
6037pub const SDL_PROP_IOSTREAM_DYNAMIC_MEMORY_POINTER: Property = Property {
6038    name: "SDL_PROP_IOSTREAM_DYNAMIC_MEMORY_POINTER",
6039    value: "SDL.iostream.dynamic.memory",
6040    ty: PropertyType::Pointer,
6041    doc: "",
6042};
6043pub const SDL_PROP_IOSTREAM_DYNAMIC_CHUNKSIZE_NUMBER: Property = Property {
6044    name: "SDL_PROP_IOSTREAM_DYNAMIC_CHUNKSIZE_NUMBER",
6045    value: "SDL.iostream.dynamic.chunksize",
6046    ty: PropertyType::Number,
6047    doc: "",
6048};
6049pub const SDL_PROP_JOYSTICK_CAP_MONO_LED_BOOLEAN: Property = Property {
6050    name: "SDL_PROP_JOYSTICK_CAP_MONO_LED_BOOLEAN",
6051    value: "SDL.joystick.cap.mono_led",
6052    ty: PropertyType::Boolean,
6053    doc: "",
6054};
6055pub const SDL_PROP_JOYSTICK_CAP_RGB_LED_BOOLEAN: Property = Property {
6056    name: "SDL_PROP_JOYSTICK_CAP_RGB_LED_BOOLEAN",
6057    value: "SDL.joystick.cap.rgb_led",
6058    ty: PropertyType::Boolean,
6059    doc: "",
6060};
6061pub const SDL_PROP_JOYSTICK_CAP_PLAYER_LED_BOOLEAN: Property = Property {
6062    name: "SDL_PROP_JOYSTICK_CAP_PLAYER_LED_BOOLEAN",
6063    value: "SDL.joystick.cap.player_led",
6064    ty: PropertyType::Boolean,
6065    doc: "",
6066};
6067pub const SDL_PROP_JOYSTICK_CAP_RUMBLE_BOOLEAN: Property = Property {
6068    name: "SDL_PROP_JOYSTICK_CAP_RUMBLE_BOOLEAN",
6069    value: "SDL.joystick.cap.rumble",
6070    ty: PropertyType::Boolean,
6071    doc: "",
6072};
6073pub const SDL_PROP_JOYSTICK_CAP_TRIGGER_RUMBLE_BOOLEAN: Property = Property {
6074    name: "SDL_PROP_JOYSTICK_CAP_TRIGGER_RUMBLE_BOOLEAN",
6075    value: "SDL.joystick.cap.trigger_rumble",
6076    ty: PropertyType::Boolean,
6077    doc: "",
6078};
6079pub const SDL_PROP_TEXTINPUT_TYPE_NUMBER: Property = Property {
6080    name: "SDL_PROP_TEXTINPUT_TYPE_NUMBER",
6081    value: "SDL.textinput.type",
6082    ty: PropertyType::Number,
6083    doc: "",
6084};
6085pub const SDL_PROP_TEXTINPUT_CAPITALIZATION_NUMBER: Property = Property {
6086    name: "SDL_PROP_TEXTINPUT_CAPITALIZATION_NUMBER",
6087    value: "SDL.textinput.capitalization",
6088    ty: PropertyType::Number,
6089    doc: "",
6090};
6091pub const SDL_PROP_TEXTINPUT_AUTOCORRECT_BOOLEAN: Property = Property {
6092    name: "SDL_PROP_TEXTINPUT_AUTOCORRECT_BOOLEAN",
6093    value: "SDL.textinput.autocorrect",
6094    ty: PropertyType::Boolean,
6095    doc: "",
6096};
6097pub const SDL_PROP_TEXTINPUT_MULTILINE_BOOLEAN: Property = Property {
6098    name: "SDL_PROP_TEXTINPUT_MULTILINE_BOOLEAN",
6099    value: "SDL.textinput.multiline",
6100    ty: PropertyType::Boolean,
6101    doc: "",
6102};
6103pub const SDL_PROP_TEXTINPUT_ANDROID_INPUTTYPE_NUMBER: Property = Property {
6104    name: "SDL_PROP_TEXTINPUT_ANDROID_INPUTTYPE_NUMBER",
6105    value: "SDL.textinput.android.inputtype",
6106    ty: PropertyType::Number,
6107    doc: "",
6108};
6109pub const SDL_PROP_PROCESS_CREATE_ARGS_POINTER: Property = Property {
6110    name: "SDL_PROP_PROCESS_CREATE_ARGS_POINTER",
6111    value: "SDL.process.create.args",
6112    ty: PropertyType::Pointer,
6113    doc: "",
6114};
6115pub const SDL_PROP_PROCESS_CREATE_ENVIRONMENT_POINTER: Property = Property {
6116    name: "SDL_PROP_PROCESS_CREATE_ENVIRONMENT_POINTER",
6117    value: "SDL.process.create.environment",
6118    ty: PropertyType::Pointer,
6119    doc: "",
6120};
6121pub const SDL_PROP_PROCESS_CREATE_WORKING_DIRECTORY_STRING: Property = Property {
6122    name: "SDL_PROP_PROCESS_CREATE_WORKING_DIRECTORY_STRING",
6123    value: "SDL.process.create.working_directory",
6124    ty: PropertyType::String,
6125    doc: "",
6126};
6127pub const SDL_PROP_PROCESS_CREATE_STDIN_NUMBER: Property = Property {
6128    name: "SDL_PROP_PROCESS_CREATE_STDIN_NUMBER",
6129    value: "SDL.process.create.stdin_option",
6130    ty: PropertyType::Number,
6131    doc: "",
6132};
6133pub const SDL_PROP_PROCESS_CREATE_STDIN_POINTER: Property = Property {
6134    name: "SDL_PROP_PROCESS_CREATE_STDIN_POINTER",
6135    value: "SDL.process.create.stdin_source",
6136    ty: PropertyType::Pointer,
6137    doc: "",
6138};
6139pub const SDL_PROP_PROCESS_CREATE_STDOUT_NUMBER: Property = Property {
6140    name: "SDL_PROP_PROCESS_CREATE_STDOUT_NUMBER",
6141    value: "SDL.process.create.stdout_option",
6142    ty: PropertyType::Number,
6143    doc: "",
6144};
6145pub const SDL_PROP_PROCESS_CREATE_STDOUT_POINTER: Property = Property {
6146    name: "SDL_PROP_PROCESS_CREATE_STDOUT_POINTER",
6147    value: "SDL.process.create.stdout_source",
6148    ty: PropertyType::Pointer,
6149    doc: "",
6150};
6151pub const SDL_PROP_PROCESS_CREATE_STDERR_NUMBER: Property = Property {
6152    name: "SDL_PROP_PROCESS_CREATE_STDERR_NUMBER",
6153    value: "SDL.process.create.stderr_option",
6154    ty: PropertyType::Number,
6155    doc: "",
6156};
6157pub const SDL_PROP_PROCESS_CREATE_STDERR_POINTER: Property = Property {
6158    name: "SDL_PROP_PROCESS_CREATE_STDERR_POINTER",
6159    value: "SDL.process.create.stderr_source",
6160    ty: PropertyType::Pointer,
6161    doc: "",
6162};
6163pub const SDL_PROP_PROCESS_CREATE_STDERR_TO_STDOUT_BOOLEAN: Property = Property {
6164    name: "SDL_PROP_PROCESS_CREATE_STDERR_TO_STDOUT_BOOLEAN",
6165    value: "SDL.process.create.stderr_to_stdout",
6166    ty: PropertyType::Boolean,
6167    doc: "",
6168};
6169pub const SDL_PROP_PROCESS_CREATE_BACKGROUND_BOOLEAN: Property = Property {
6170    name: "SDL_PROP_PROCESS_CREATE_BACKGROUND_BOOLEAN",
6171    value: "SDL.process.create.background",
6172    ty: PropertyType::Boolean,
6173    doc: "",
6174};
6175pub const SDL_PROP_PROCESS_CREATE_CMDLINE_STRING: Property = Property {
6176    name: "SDL_PROP_PROCESS_CREATE_CMDLINE_STRING",
6177    value: "SDL.process.create.cmdline",
6178    ty: PropertyType::String,
6179    doc: "",
6180};
6181pub const SDL_PROP_PROCESS_PID_NUMBER: Property = Property {
6182    name: "SDL_PROP_PROCESS_PID_NUMBER",
6183    value: "SDL.process.pid",
6184    ty: PropertyType::Number,
6185    doc: "",
6186};
6187pub const SDL_PROP_PROCESS_STDIN_POINTER: Property = Property {
6188    name: "SDL_PROP_PROCESS_STDIN_POINTER",
6189    value: "SDL.process.stdin",
6190    ty: PropertyType::Pointer,
6191    doc: "",
6192};
6193pub const SDL_PROP_PROCESS_STDOUT_POINTER: Property = Property {
6194    name: "SDL_PROP_PROCESS_STDOUT_POINTER",
6195    value: "SDL.process.stdout",
6196    ty: PropertyType::Pointer,
6197    doc: "",
6198};
6199pub const SDL_PROP_PROCESS_STDERR_POINTER: Property = Property {
6200    name: "SDL_PROP_PROCESS_STDERR_POINTER",
6201    value: "SDL.process.stderr",
6202    ty: PropertyType::Pointer,
6203    doc: "",
6204};
6205pub const SDL_PROP_PROCESS_BACKGROUND_BOOLEAN: Property = Property {
6206    name: "SDL_PROP_PROCESS_BACKGROUND_BOOLEAN",
6207    value: "SDL.process.background",
6208    ty: PropertyType::Boolean,
6209    doc: "",
6210};
6211/**
6212* A generic property for naming things.
6213*
6214* This property is intended to be added to any SDL_PropertiesID that needs a
6215* generic name associated with the property set. It is not guaranteed that
6216* any property set will include this key, but it is convenient to have a
6217* standard key that any piece of code could reasonably agree to use.
6218*
6219* For example, the properties associated with an SDL_Texture might have a
6220* name string of "player sprites", or an SDL_AudioStream might have
6221* "background music", etc. This might also be useful for an SDL_IOStream to
6222* list the path to its asset.
6223*
6224* There is no format for the value set with this key; it is expected to be
6225* human-readable and informational in nature, possibly for logging or
6226* debugging purposes.
6227*
6228* SDL does not currently set this property on any objects it creates, but
6229* this may change in later versions; it is currently expected that apps and
6230* external libraries will take advantage of it, when appropriate.
6231*
6232* \since This macro is available since SDL 3.4.0.
6233*/
6234pub const SDL_PROP_NAME_STRING: Property = Property {
6235    name: "SDL_PROP_NAME_STRING",
6236    value: "SDL.name",
6237    ty: PropertyType::String,
6238    doc: "/**\n* A generic property for naming things.\n*\n* This property is intended to be added to any SDL_PropertiesID that needs a\n* generic name associated with the property set. It is not guaranteed that\n* any property set will include this key, but it is convenient to have a\n* standard key that any piece of code could reasonably agree to use.\n*\n* For example, the properties associated with an SDL_Texture might have a\n* name string of \"player sprites\", or an SDL_AudioStream might have\n* \"background music\", etc. This might also be useful for an SDL_IOStream to\n* list the path to its asset.\n*\n* There is no format for the value set with this key; it is expected to be\n* human-readable and informational in nature, possibly for logging or\n* debugging purposes.\n*\n* SDL does not currently set this property on any objects it creates, but\n* this may change in later versions; it is currently expected that apps and\n* external libraries will take advantage of it, when appropriate.\n*\n* \\since This macro is available since SDL 3.4.0.\n*/\n",
6239};
6240pub const SDL_PROP_RENDERER_CREATE_NAME_STRING: Property = Property {
6241    name: "SDL_PROP_RENDERER_CREATE_NAME_STRING",
6242    value: "SDL.renderer.create.name",
6243    ty: PropertyType::String,
6244    doc: "",
6245};
6246pub const SDL_PROP_RENDERER_CREATE_WINDOW_POINTER: Property = Property {
6247    name: "SDL_PROP_RENDERER_CREATE_WINDOW_POINTER",
6248    value: "SDL.renderer.create.window",
6249    ty: PropertyType::Pointer,
6250    doc: "",
6251};
6252pub const SDL_PROP_RENDERER_CREATE_SURFACE_POINTER: Property = Property {
6253    name: "SDL_PROP_RENDERER_CREATE_SURFACE_POINTER",
6254    value: "SDL.renderer.create.surface",
6255    ty: PropertyType::Pointer,
6256    doc: "",
6257};
6258pub const SDL_PROP_RENDERER_CREATE_OUTPUT_COLORSPACE_NUMBER: Property = Property {
6259    name: "SDL_PROP_RENDERER_CREATE_OUTPUT_COLORSPACE_NUMBER",
6260    value: "SDL.renderer.create.output_colorspace",
6261    ty: PropertyType::Number,
6262    doc: "",
6263};
6264pub const SDL_PROP_RENDERER_CREATE_PRESENT_VSYNC_NUMBER: Property = Property {
6265    name: "SDL_PROP_RENDERER_CREATE_PRESENT_VSYNC_NUMBER",
6266    value: "SDL.renderer.create.present_vsync",
6267    ty: PropertyType::Number,
6268    doc: "",
6269};
6270pub const SDL_PROP_RENDERER_CREATE_GPU_DEVICE_POINTER: Property = Property {
6271    name: "SDL_PROP_RENDERER_CREATE_GPU_DEVICE_POINTER",
6272    value: "SDL.renderer.create.gpu.device",
6273    ty: PropertyType::Pointer,
6274    doc: "",
6275};
6276pub const SDL_PROP_RENDERER_CREATE_GPU_SHADERS_SPIRV_BOOLEAN: Property = Property {
6277    name: "SDL_PROP_RENDERER_CREATE_GPU_SHADERS_SPIRV_BOOLEAN",
6278    value: "SDL.renderer.create.gpu.shaders_spirv",
6279    ty: PropertyType::Boolean,
6280    doc: "",
6281};
6282pub const SDL_PROP_RENDERER_CREATE_GPU_SHADERS_DXIL_BOOLEAN: Property = Property {
6283    name: "SDL_PROP_RENDERER_CREATE_GPU_SHADERS_DXIL_BOOLEAN",
6284    value: "SDL.renderer.create.gpu.shaders_dxil",
6285    ty: PropertyType::Boolean,
6286    doc: "",
6287};
6288pub const SDL_PROP_RENDERER_CREATE_GPU_SHADERS_MSL_BOOLEAN: Property = Property {
6289    name: "SDL_PROP_RENDERER_CREATE_GPU_SHADERS_MSL_BOOLEAN",
6290    value: "SDL.renderer.create.gpu.shaders_msl",
6291    ty: PropertyType::Boolean,
6292    doc: "",
6293};
6294pub const SDL_PROP_RENDERER_CREATE_VULKAN_INSTANCE_POINTER: Property = Property {
6295    name: "SDL_PROP_RENDERER_CREATE_VULKAN_INSTANCE_POINTER",
6296    value: "SDL.renderer.create.vulkan.instance",
6297    ty: PropertyType::Pointer,
6298    doc: "",
6299};
6300pub const SDL_PROP_RENDERER_CREATE_VULKAN_SURFACE_NUMBER: Property = Property {
6301    name: "SDL_PROP_RENDERER_CREATE_VULKAN_SURFACE_NUMBER",
6302    value: "SDL.renderer.create.vulkan.surface",
6303    ty: PropertyType::Number,
6304    doc: "",
6305};
6306pub const SDL_PROP_RENDERER_CREATE_VULKAN_PHYSICAL_DEVICE_POINTER: Property = Property {
6307    name: "SDL_PROP_RENDERER_CREATE_VULKAN_PHYSICAL_DEVICE_POINTER",
6308    value: "SDL.renderer.create.vulkan.physical_device",
6309    ty: PropertyType::Pointer,
6310    doc: "",
6311};
6312pub const SDL_PROP_RENDERER_CREATE_VULKAN_DEVICE_POINTER: Property = Property {
6313    name: "SDL_PROP_RENDERER_CREATE_VULKAN_DEVICE_POINTER",
6314    value: "SDL.renderer.create.vulkan.device",
6315    ty: PropertyType::Pointer,
6316    doc: "",
6317};
6318pub const SDL_PROP_RENDERER_CREATE_VULKAN_GRAPHICS_QUEUE_FAMILY_INDEX_NUMBER: Property = Property {
6319    name: "SDL_PROP_RENDERER_CREATE_VULKAN_GRAPHICS_QUEUE_FAMILY_INDEX_NUMBER",
6320    value: "SDL.renderer.create.vulkan.graphics_queue_family_index",
6321    ty: PropertyType::Number,
6322    doc: "",
6323};
6324pub const SDL_PROP_RENDERER_CREATE_VULKAN_PRESENT_QUEUE_FAMILY_INDEX_NUMBER: Property = Property {
6325    name: "SDL_PROP_RENDERER_CREATE_VULKAN_PRESENT_QUEUE_FAMILY_INDEX_NUMBER",
6326    value: "SDL.renderer.create.vulkan.present_queue_family_index",
6327    ty: PropertyType::Number,
6328    doc: "",
6329};
6330pub const SDL_PROP_RENDERER_NAME_STRING: Property = Property {
6331    name: "SDL_PROP_RENDERER_NAME_STRING",
6332    value: "SDL.renderer.name",
6333    ty: PropertyType::String,
6334    doc: "",
6335};
6336pub const SDL_PROP_RENDERER_WINDOW_POINTER: Property = Property {
6337    name: "SDL_PROP_RENDERER_WINDOW_POINTER",
6338    value: "SDL.renderer.window",
6339    ty: PropertyType::Pointer,
6340    doc: "",
6341};
6342pub const SDL_PROP_RENDERER_SURFACE_POINTER: Property = Property {
6343    name: "SDL_PROP_RENDERER_SURFACE_POINTER",
6344    value: "SDL.renderer.surface",
6345    ty: PropertyType::Pointer,
6346    doc: "",
6347};
6348pub const SDL_PROP_RENDERER_VSYNC_NUMBER: Property = Property {
6349    name: "SDL_PROP_RENDERER_VSYNC_NUMBER",
6350    value: "SDL.renderer.vsync",
6351    ty: PropertyType::Number,
6352    doc: "",
6353};
6354pub const SDL_PROP_RENDERER_MAX_TEXTURE_SIZE_NUMBER: Property = Property {
6355    name: "SDL_PROP_RENDERER_MAX_TEXTURE_SIZE_NUMBER",
6356    value: "SDL.renderer.max_texture_size",
6357    ty: PropertyType::Number,
6358    doc: "",
6359};
6360pub const SDL_PROP_RENDERER_TEXTURE_FORMATS_POINTER: Property = Property {
6361    name: "SDL_PROP_RENDERER_TEXTURE_FORMATS_POINTER",
6362    value: "SDL.renderer.texture_formats",
6363    ty: PropertyType::Pointer,
6364    doc: "",
6365};
6366pub const SDL_PROP_RENDERER_TEXTURE_WRAPPING_BOOLEAN: Property = Property {
6367    name: "SDL_PROP_RENDERER_TEXTURE_WRAPPING_BOOLEAN",
6368    value: "SDL.renderer.texture_wrapping",
6369    ty: PropertyType::Boolean,
6370    doc: "",
6371};
6372pub const SDL_PROP_RENDERER_OUTPUT_COLORSPACE_NUMBER: Property = Property {
6373    name: "SDL_PROP_RENDERER_OUTPUT_COLORSPACE_NUMBER",
6374    value: "SDL.renderer.output_colorspace",
6375    ty: PropertyType::Number,
6376    doc: "",
6377};
6378pub const SDL_PROP_RENDERER_HDR_ENABLED_BOOLEAN: Property = Property {
6379    name: "SDL_PROP_RENDERER_HDR_ENABLED_BOOLEAN",
6380    value: "SDL.renderer.HDR_enabled",
6381    ty: PropertyType::Boolean,
6382    doc: "",
6383};
6384pub const SDL_PROP_RENDERER_SDR_WHITE_POINT_FLOAT: Property = Property {
6385    name: "SDL_PROP_RENDERER_SDR_WHITE_POINT_FLOAT",
6386    value: "SDL.renderer.SDR_white_point",
6387    ty: PropertyType::Float,
6388    doc: "",
6389};
6390pub const SDL_PROP_RENDERER_HDR_HEADROOM_FLOAT: Property = Property {
6391    name: "SDL_PROP_RENDERER_HDR_HEADROOM_FLOAT",
6392    value: "SDL.renderer.HDR_headroom",
6393    ty: PropertyType::Float,
6394    doc: "",
6395};
6396pub const SDL_PROP_RENDERER_D3D9_DEVICE_POINTER: Property = Property {
6397    name: "SDL_PROP_RENDERER_D3D9_DEVICE_POINTER",
6398    value: "SDL.renderer.d3d9.device",
6399    ty: PropertyType::Pointer,
6400    doc: "",
6401};
6402pub const SDL_PROP_RENDERER_D3D11_DEVICE_POINTER: Property = Property {
6403    name: "SDL_PROP_RENDERER_D3D11_DEVICE_POINTER",
6404    value: "SDL.renderer.d3d11.device",
6405    ty: PropertyType::Pointer,
6406    doc: "",
6407};
6408pub const SDL_PROP_RENDERER_D3D11_SWAPCHAIN_POINTER: Property = Property {
6409    name: "SDL_PROP_RENDERER_D3D11_SWAPCHAIN_POINTER",
6410    value: "SDL.renderer.d3d11.swap_chain",
6411    ty: PropertyType::Pointer,
6412    doc: "",
6413};
6414pub const SDL_PROP_RENDERER_D3D12_DEVICE_POINTER: Property = Property {
6415    name: "SDL_PROP_RENDERER_D3D12_DEVICE_POINTER",
6416    value: "SDL.renderer.d3d12.device",
6417    ty: PropertyType::Pointer,
6418    doc: "",
6419};
6420pub const SDL_PROP_RENDERER_D3D12_SWAPCHAIN_POINTER: Property = Property {
6421    name: "SDL_PROP_RENDERER_D3D12_SWAPCHAIN_POINTER",
6422    value: "SDL.renderer.d3d12.swap_chain",
6423    ty: PropertyType::Pointer,
6424    doc: "",
6425};
6426pub const SDL_PROP_RENDERER_D3D12_COMMAND_QUEUE_POINTER: Property = Property {
6427    name: "SDL_PROP_RENDERER_D3D12_COMMAND_QUEUE_POINTER",
6428    value: "SDL.renderer.d3d12.command_queue",
6429    ty: PropertyType::Pointer,
6430    doc: "",
6431};
6432pub const SDL_PROP_RENDERER_VULKAN_INSTANCE_POINTER: Property = Property {
6433    name: "SDL_PROP_RENDERER_VULKAN_INSTANCE_POINTER",
6434    value: "SDL.renderer.vulkan.instance",
6435    ty: PropertyType::Pointer,
6436    doc: "",
6437};
6438pub const SDL_PROP_RENDERER_VULKAN_SURFACE_NUMBER: Property = Property {
6439    name: "SDL_PROP_RENDERER_VULKAN_SURFACE_NUMBER",
6440    value: "SDL.renderer.vulkan.surface",
6441    ty: PropertyType::Number,
6442    doc: "",
6443};
6444pub const SDL_PROP_RENDERER_VULKAN_PHYSICAL_DEVICE_POINTER: Property = Property {
6445    name: "SDL_PROP_RENDERER_VULKAN_PHYSICAL_DEVICE_POINTER",
6446    value: "SDL.renderer.vulkan.physical_device",
6447    ty: PropertyType::Pointer,
6448    doc: "",
6449};
6450pub const SDL_PROP_RENDERER_VULKAN_DEVICE_POINTER: Property = Property {
6451    name: "SDL_PROP_RENDERER_VULKAN_DEVICE_POINTER",
6452    value: "SDL.renderer.vulkan.device",
6453    ty: PropertyType::Pointer,
6454    doc: "",
6455};
6456pub const SDL_PROP_RENDERER_VULKAN_GRAPHICS_QUEUE_FAMILY_INDEX_NUMBER: Property = Property {
6457    name: "SDL_PROP_RENDERER_VULKAN_GRAPHICS_QUEUE_FAMILY_INDEX_NUMBER",
6458    value: "SDL.renderer.vulkan.graphics_queue_family_index",
6459    ty: PropertyType::Number,
6460    doc: "",
6461};
6462pub const SDL_PROP_RENDERER_VULKAN_PRESENT_QUEUE_FAMILY_INDEX_NUMBER: Property = Property {
6463    name: "SDL_PROP_RENDERER_VULKAN_PRESENT_QUEUE_FAMILY_INDEX_NUMBER",
6464    value: "SDL.renderer.vulkan.present_queue_family_index",
6465    ty: PropertyType::Number,
6466    doc: "",
6467};
6468pub const SDL_PROP_RENDERER_VULKAN_SWAPCHAIN_IMAGE_COUNT_NUMBER: Property = Property {
6469    name: "SDL_PROP_RENDERER_VULKAN_SWAPCHAIN_IMAGE_COUNT_NUMBER",
6470    value: "SDL.renderer.vulkan.swapchain_image_count",
6471    ty: PropertyType::Number,
6472    doc: "",
6473};
6474pub const SDL_PROP_RENDERER_GPU_DEVICE_POINTER: Property = Property {
6475    name: "SDL_PROP_RENDERER_GPU_DEVICE_POINTER",
6476    value: "SDL.renderer.gpu.device",
6477    ty: PropertyType::Pointer,
6478    doc: "",
6479};
6480pub const SDL_PROP_TEXTURE_CREATE_COLORSPACE_NUMBER: Property = Property {
6481    name: "SDL_PROP_TEXTURE_CREATE_COLORSPACE_NUMBER",
6482    value: "SDL.texture.create.colorspace",
6483    ty: PropertyType::Number,
6484    doc: "",
6485};
6486pub const SDL_PROP_TEXTURE_CREATE_FORMAT_NUMBER: Property = Property {
6487    name: "SDL_PROP_TEXTURE_CREATE_FORMAT_NUMBER",
6488    value: "SDL.texture.create.format",
6489    ty: PropertyType::Number,
6490    doc: "",
6491};
6492pub const SDL_PROP_TEXTURE_CREATE_ACCESS_NUMBER: Property = Property {
6493    name: "SDL_PROP_TEXTURE_CREATE_ACCESS_NUMBER",
6494    value: "SDL.texture.create.access",
6495    ty: PropertyType::Number,
6496    doc: "",
6497};
6498pub const SDL_PROP_TEXTURE_CREATE_WIDTH_NUMBER: Property = Property {
6499    name: "SDL_PROP_TEXTURE_CREATE_WIDTH_NUMBER",
6500    value: "SDL.texture.create.width",
6501    ty: PropertyType::Number,
6502    doc: "",
6503};
6504pub const SDL_PROP_TEXTURE_CREATE_HEIGHT_NUMBER: Property = Property {
6505    name: "SDL_PROP_TEXTURE_CREATE_HEIGHT_NUMBER",
6506    value: "SDL.texture.create.height",
6507    ty: PropertyType::Number,
6508    doc: "",
6509};
6510pub const SDL_PROP_TEXTURE_CREATE_PALETTE_POINTER: Property = Property {
6511    name: "SDL_PROP_TEXTURE_CREATE_PALETTE_POINTER",
6512    value: "SDL.texture.create.palette",
6513    ty: PropertyType::Pointer,
6514    doc: "",
6515};
6516pub const SDL_PROP_TEXTURE_CREATE_SDR_WHITE_POINT_FLOAT: Property = Property {
6517    name: "SDL_PROP_TEXTURE_CREATE_SDR_WHITE_POINT_FLOAT",
6518    value: "SDL.texture.create.SDR_white_point",
6519    ty: PropertyType::Float,
6520    doc: "",
6521};
6522pub const SDL_PROP_TEXTURE_CREATE_HDR_HEADROOM_FLOAT: Property = Property {
6523    name: "SDL_PROP_TEXTURE_CREATE_HDR_HEADROOM_FLOAT",
6524    value: "SDL.texture.create.HDR_headroom",
6525    ty: PropertyType::Float,
6526    doc: "",
6527};
6528pub const SDL_PROP_TEXTURE_CREATE_D3D11_TEXTURE_POINTER: Property = Property {
6529    name: "SDL_PROP_TEXTURE_CREATE_D3D11_TEXTURE_POINTER",
6530    value: "SDL.texture.create.d3d11.texture",
6531    ty: PropertyType::Pointer,
6532    doc: "",
6533};
6534pub const SDL_PROP_TEXTURE_CREATE_D3D11_TEXTURE_U_POINTER: Property = Property {
6535    name: "SDL_PROP_TEXTURE_CREATE_D3D11_TEXTURE_U_POINTER",
6536    value: "SDL.texture.create.d3d11.texture_u",
6537    ty: PropertyType::Pointer,
6538    doc: "",
6539};
6540pub const SDL_PROP_TEXTURE_CREATE_D3D11_TEXTURE_V_POINTER: Property = Property {
6541    name: "SDL_PROP_TEXTURE_CREATE_D3D11_TEXTURE_V_POINTER",
6542    value: "SDL.texture.create.d3d11.texture_v",
6543    ty: PropertyType::Pointer,
6544    doc: "",
6545};
6546pub const SDL_PROP_TEXTURE_CREATE_D3D12_TEXTURE_POINTER: Property = Property {
6547    name: "SDL_PROP_TEXTURE_CREATE_D3D12_TEXTURE_POINTER",
6548    value: "SDL.texture.create.d3d12.texture",
6549    ty: PropertyType::Pointer,
6550    doc: "",
6551};
6552pub const SDL_PROP_TEXTURE_CREATE_D3D12_TEXTURE_U_POINTER: Property = Property {
6553    name: "SDL_PROP_TEXTURE_CREATE_D3D12_TEXTURE_U_POINTER",
6554    value: "SDL.texture.create.d3d12.texture_u",
6555    ty: PropertyType::Pointer,
6556    doc: "",
6557};
6558pub const SDL_PROP_TEXTURE_CREATE_D3D12_TEXTURE_V_POINTER: Property = Property {
6559    name: "SDL_PROP_TEXTURE_CREATE_D3D12_TEXTURE_V_POINTER",
6560    value: "SDL.texture.create.d3d12.texture_v",
6561    ty: PropertyType::Pointer,
6562    doc: "",
6563};
6564pub const SDL_PROP_TEXTURE_CREATE_METAL_PIXELBUFFER_POINTER: Property = Property {
6565    name: "SDL_PROP_TEXTURE_CREATE_METAL_PIXELBUFFER_POINTER",
6566    value: "SDL.texture.create.metal.pixelbuffer",
6567    ty: PropertyType::Pointer,
6568    doc: "",
6569};
6570pub const SDL_PROP_TEXTURE_CREATE_OPENGL_TEXTURE_NUMBER: Property = Property {
6571    name: "SDL_PROP_TEXTURE_CREATE_OPENGL_TEXTURE_NUMBER",
6572    value: "SDL.texture.create.opengl.texture",
6573    ty: PropertyType::Number,
6574    doc: "",
6575};
6576pub const SDL_PROP_TEXTURE_CREATE_OPENGL_TEXTURE_UV_NUMBER: Property = Property {
6577    name: "SDL_PROP_TEXTURE_CREATE_OPENGL_TEXTURE_UV_NUMBER",
6578    value: "SDL.texture.create.opengl.texture_uv",
6579    ty: PropertyType::Number,
6580    doc: "",
6581};
6582pub const SDL_PROP_TEXTURE_CREATE_OPENGL_TEXTURE_U_NUMBER: Property = Property {
6583    name: "SDL_PROP_TEXTURE_CREATE_OPENGL_TEXTURE_U_NUMBER",
6584    value: "SDL.texture.create.opengl.texture_u",
6585    ty: PropertyType::Number,
6586    doc: "",
6587};
6588pub const SDL_PROP_TEXTURE_CREATE_OPENGL_TEXTURE_V_NUMBER: Property = Property {
6589    name: "SDL_PROP_TEXTURE_CREATE_OPENGL_TEXTURE_V_NUMBER",
6590    value: "SDL.texture.create.opengl.texture_v",
6591    ty: PropertyType::Number,
6592    doc: "",
6593};
6594pub const SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_NUMBER: Property = Property {
6595    name: "SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_NUMBER",
6596    value: "SDL.texture.create.opengles2.texture",
6597    ty: PropertyType::Number,
6598    doc: "",
6599};
6600pub const SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_UV_NUMBER: Property = Property {
6601    name: "SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_UV_NUMBER",
6602    value: "SDL.texture.create.opengles2.texture_uv",
6603    ty: PropertyType::Number,
6604    doc: "",
6605};
6606pub const SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_U_NUMBER: Property = Property {
6607    name: "SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_U_NUMBER",
6608    value: "SDL.texture.create.opengles2.texture_u",
6609    ty: PropertyType::Number,
6610    doc: "",
6611};
6612pub const SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_V_NUMBER: Property = Property {
6613    name: "SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_V_NUMBER",
6614    value: "SDL.texture.create.opengles2.texture_v",
6615    ty: PropertyType::Number,
6616    doc: "",
6617};
6618pub const SDL_PROP_TEXTURE_CREATE_VULKAN_TEXTURE_NUMBER: Property = Property {
6619    name: "SDL_PROP_TEXTURE_CREATE_VULKAN_TEXTURE_NUMBER",
6620    value: "SDL.texture.create.vulkan.texture",
6621    ty: PropertyType::Number,
6622    doc: "",
6623};
6624pub const SDL_PROP_TEXTURE_CREATE_VULKAN_LAYOUT_NUMBER: Property = Property {
6625    name: "SDL_PROP_TEXTURE_CREATE_VULKAN_LAYOUT_NUMBER",
6626    value: "SDL.texture.create.vulkan.layout",
6627    ty: PropertyType::Number,
6628    doc: "",
6629};
6630pub const SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER: Property = Property {
6631    name: "SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER",
6632    value: "SDL.texture.create.gpu.texture",
6633    ty: PropertyType::Pointer,
6634    doc: "",
6635};
6636pub const SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_UV_POINTER: Property = Property {
6637    name: "SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_UV_POINTER",
6638    value: "SDL.texture.create.gpu.texture_uv",
6639    ty: PropertyType::Pointer,
6640    doc: "",
6641};
6642pub const SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_U_POINTER: Property = Property {
6643    name: "SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_U_POINTER",
6644    value: "SDL.texture.create.gpu.texture_u",
6645    ty: PropertyType::Pointer,
6646    doc: "",
6647};
6648pub const SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_V_POINTER: Property = Property {
6649    name: "SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_V_POINTER",
6650    value: "SDL.texture.create.gpu.texture_v",
6651    ty: PropertyType::Pointer,
6652    doc: "",
6653};
6654pub const SDL_PROP_TEXTURE_COLORSPACE_NUMBER: Property = Property {
6655    name: "SDL_PROP_TEXTURE_COLORSPACE_NUMBER",
6656    value: "SDL.texture.colorspace",
6657    ty: PropertyType::Number,
6658    doc: "",
6659};
6660pub const SDL_PROP_TEXTURE_FORMAT_NUMBER: Property = Property {
6661    name: "SDL_PROP_TEXTURE_FORMAT_NUMBER",
6662    value: "SDL.texture.format",
6663    ty: PropertyType::Number,
6664    doc: "",
6665};
6666pub const SDL_PROP_TEXTURE_ACCESS_NUMBER: Property = Property {
6667    name: "SDL_PROP_TEXTURE_ACCESS_NUMBER",
6668    value: "SDL.texture.access",
6669    ty: PropertyType::Number,
6670    doc: "",
6671};
6672pub const SDL_PROP_TEXTURE_WIDTH_NUMBER: Property = Property {
6673    name: "SDL_PROP_TEXTURE_WIDTH_NUMBER",
6674    value: "SDL.texture.width",
6675    ty: PropertyType::Number,
6676    doc: "",
6677};
6678pub const SDL_PROP_TEXTURE_HEIGHT_NUMBER: Property = Property {
6679    name: "SDL_PROP_TEXTURE_HEIGHT_NUMBER",
6680    value: "SDL.texture.height",
6681    ty: PropertyType::Number,
6682    doc: "",
6683};
6684pub const SDL_PROP_TEXTURE_SDR_WHITE_POINT_FLOAT: Property = Property {
6685    name: "SDL_PROP_TEXTURE_SDR_WHITE_POINT_FLOAT",
6686    value: "SDL.texture.SDR_white_point",
6687    ty: PropertyType::Float,
6688    doc: "",
6689};
6690pub const SDL_PROP_TEXTURE_HDR_HEADROOM_FLOAT: Property = Property {
6691    name: "SDL_PROP_TEXTURE_HDR_HEADROOM_FLOAT",
6692    value: "SDL.texture.HDR_headroom",
6693    ty: PropertyType::Float,
6694    doc: "",
6695};
6696pub const SDL_PROP_TEXTURE_D3D11_TEXTURE_POINTER: Property = Property {
6697    name: "SDL_PROP_TEXTURE_D3D11_TEXTURE_POINTER",
6698    value: "SDL.texture.d3d11.texture",
6699    ty: PropertyType::Pointer,
6700    doc: "",
6701};
6702pub const SDL_PROP_TEXTURE_D3D11_TEXTURE_U_POINTER: Property = Property {
6703    name: "SDL_PROP_TEXTURE_D3D11_TEXTURE_U_POINTER",
6704    value: "SDL.texture.d3d11.texture_u",
6705    ty: PropertyType::Pointer,
6706    doc: "",
6707};
6708pub const SDL_PROP_TEXTURE_D3D11_TEXTURE_V_POINTER: Property = Property {
6709    name: "SDL_PROP_TEXTURE_D3D11_TEXTURE_V_POINTER",
6710    value: "SDL.texture.d3d11.texture_v",
6711    ty: PropertyType::Pointer,
6712    doc: "",
6713};
6714pub const SDL_PROP_TEXTURE_D3D12_TEXTURE_POINTER: Property = Property {
6715    name: "SDL_PROP_TEXTURE_D3D12_TEXTURE_POINTER",
6716    value: "SDL.texture.d3d12.texture",
6717    ty: PropertyType::Pointer,
6718    doc: "",
6719};
6720pub const SDL_PROP_TEXTURE_D3D12_TEXTURE_U_POINTER: Property = Property {
6721    name: "SDL_PROP_TEXTURE_D3D12_TEXTURE_U_POINTER",
6722    value: "SDL.texture.d3d12.texture_u",
6723    ty: PropertyType::Pointer,
6724    doc: "",
6725};
6726pub const SDL_PROP_TEXTURE_D3D12_TEXTURE_V_POINTER: Property = Property {
6727    name: "SDL_PROP_TEXTURE_D3D12_TEXTURE_V_POINTER",
6728    value: "SDL.texture.d3d12.texture_v",
6729    ty: PropertyType::Pointer,
6730    doc: "",
6731};
6732pub const SDL_PROP_TEXTURE_OPENGL_TEXTURE_NUMBER: Property = Property {
6733    name: "SDL_PROP_TEXTURE_OPENGL_TEXTURE_NUMBER",
6734    value: "SDL.texture.opengl.texture",
6735    ty: PropertyType::Number,
6736    doc: "",
6737};
6738pub const SDL_PROP_TEXTURE_OPENGL_TEXTURE_UV_NUMBER: Property = Property {
6739    name: "SDL_PROP_TEXTURE_OPENGL_TEXTURE_UV_NUMBER",
6740    value: "SDL.texture.opengl.texture_uv",
6741    ty: PropertyType::Number,
6742    doc: "",
6743};
6744pub const SDL_PROP_TEXTURE_OPENGL_TEXTURE_U_NUMBER: Property = Property {
6745    name: "SDL_PROP_TEXTURE_OPENGL_TEXTURE_U_NUMBER",
6746    value: "SDL.texture.opengl.texture_u",
6747    ty: PropertyType::Number,
6748    doc: "",
6749};
6750pub const SDL_PROP_TEXTURE_OPENGL_TEXTURE_V_NUMBER: Property = Property {
6751    name: "SDL_PROP_TEXTURE_OPENGL_TEXTURE_V_NUMBER",
6752    value: "SDL.texture.opengl.texture_v",
6753    ty: PropertyType::Number,
6754    doc: "",
6755};
6756pub const SDL_PROP_TEXTURE_OPENGL_TEXTURE_TARGET_NUMBER: Property = Property {
6757    name: "SDL_PROP_TEXTURE_OPENGL_TEXTURE_TARGET_NUMBER",
6758    value: "SDL.texture.opengl.target",
6759    ty: PropertyType::Number,
6760    doc: "",
6761};
6762pub const SDL_PROP_TEXTURE_OPENGL_TEX_W_FLOAT: Property = Property {
6763    name: "SDL_PROP_TEXTURE_OPENGL_TEX_W_FLOAT",
6764    value: "SDL.texture.opengl.tex_w",
6765    ty: PropertyType::Float,
6766    doc: "",
6767};
6768pub const SDL_PROP_TEXTURE_OPENGL_TEX_H_FLOAT: Property = Property {
6769    name: "SDL_PROP_TEXTURE_OPENGL_TEX_H_FLOAT",
6770    value: "SDL.texture.opengl.tex_h",
6771    ty: PropertyType::Float,
6772    doc: "",
6773};
6774pub const SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_NUMBER: Property = Property {
6775    name: "SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_NUMBER",
6776    value: "SDL.texture.opengles2.texture",
6777    ty: PropertyType::Number,
6778    doc: "",
6779};
6780pub const SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_UV_NUMBER: Property = Property {
6781    name: "SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_UV_NUMBER",
6782    value: "SDL.texture.opengles2.texture_uv",
6783    ty: PropertyType::Number,
6784    doc: "",
6785};
6786pub const SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_U_NUMBER: Property = Property {
6787    name: "SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_U_NUMBER",
6788    value: "SDL.texture.opengles2.texture_u",
6789    ty: PropertyType::Number,
6790    doc: "",
6791};
6792pub const SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_V_NUMBER: Property = Property {
6793    name: "SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_V_NUMBER",
6794    value: "SDL.texture.opengles2.texture_v",
6795    ty: PropertyType::Number,
6796    doc: "",
6797};
6798pub const SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_TARGET_NUMBER: Property = Property {
6799    name: "SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_TARGET_NUMBER",
6800    value: "SDL.texture.opengles2.target",
6801    ty: PropertyType::Number,
6802    doc: "",
6803};
6804pub const SDL_PROP_TEXTURE_VULKAN_TEXTURE_NUMBER: Property = Property {
6805    name: "SDL_PROP_TEXTURE_VULKAN_TEXTURE_NUMBER",
6806    value: "SDL.texture.vulkan.texture",
6807    ty: PropertyType::Number,
6808    doc: "",
6809};
6810pub const SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER: Property = Property {
6811    name: "SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER",
6812    value: "SDL.texture.gpu.texture",
6813    ty: PropertyType::Pointer,
6814    doc: "",
6815};
6816pub const SDL_PROP_TEXTURE_GPU_TEXTURE_UV_POINTER: Property = Property {
6817    name: "SDL_PROP_TEXTURE_GPU_TEXTURE_UV_POINTER",
6818    value: "SDL.texture.gpu.texture_uv",
6819    ty: PropertyType::Pointer,
6820    doc: "",
6821};
6822pub const SDL_PROP_TEXTURE_GPU_TEXTURE_U_POINTER: Property = Property {
6823    name: "SDL_PROP_TEXTURE_GPU_TEXTURE_U_POINTER",
6824    value: "SDL.texture.gpu.texture_u",
6825    ty: PropertyType::Pointer,
6826    doc: "",
6827};
6828pub const SDL_PROP_TEXTURE_GPU_TEXTURE_V_POINTER: Property = Property {
6829    name: "SDL_PROP_TEXTURE_GPU_TEXTURE_V_POINTER",
6830    value: "SDL.texture.gpu.texture_v",
6831    ty: PropertyType::Pointer,
6832    doc: "",
6833};
6834pub const SDL_PROP_SURFACE_SDR_WHITE_POINT_FLOAT: Property = Property {
6835    name: "SDL_PROP_SURFACE_SDR_WHITE_POINT_FLOAT",
6836    value: "SDL.surface.SDR_white_point",
6837    ty: PropertyType::Float,
6838    doc: "",
6839};
6840pub const SDL_PROP_SURFACE_HDR_HEADROOM_FLOAT: Property = Property {
6841    name: "SDL_PROP_SURFACE_HDR_HEADROOM_FLOAT",
6842    value: "SDL.surface.HDR_headroom",
6843    ty: PropertyType::Float,
6844    doc: "",
6845};
6846pub const SDL_PROP_SURFACE_TONEMAP_OPERATOR_STRING: Property = Property {
6847    name: "SDL_PROP_SURFACE_TONEMAP_OPERATOR_STRING",
6848    value: "SDL.surface.tonemap",
6849    ty: PropertyType::String,
6850    doc: "",
6851};
6852pub const SDL_PROP_SURFACE_HOTSPOT_X_NUMBER: Property = Property {
6853    name: "SDL_PROP_SURFACE_HOTSPOT_X_NUMBER",
6854    value: "SDL.surface.hotspot.x",
6855    ty: PropertyType::Number,
6856    doc: "",
6857};
6858pub const SDL_PROP_SURFACE_HOTSPOT_Y_NUMBER: Property = Property {
6859    name: "SDL_PROP_SURFACE_HOTSPOT_Y_NUMBER",
6860    value: "SDL.surface.hotspot.y",
6861    ty: PropertyType::Number,
6862    doc: "",
6863};
6864pub const SDL_PROP_SURFACE_ROTATION_FLOAT: Property = Property {
6865    name: "SDL_PROP_SURFACE_ROTATION_FLOAT",
6866    value: "SDL.surface.rotation",
6867    ty: PropertyType::Float,
6868    doc: "",
6869};
6870pub const SDL_PROP_THREAD_CREATE_ENTRY_FUNCTION_POINTER: Property = Property {
6871    name: "SDL_PROP_THREAD_CREATE_ENTRY_FUNCTION_POINTER",
6872    value: "SDL.thread.create.entry_function",
6873    ty: PropertyType::Pointer,
6874    doc: "",
6875};
6876pub const SDL_PROP_THREAD_CREATE_NAME_STRING: Property = Property {
6877    name: "SDL_PROP_THREAD_CREATE_NAME_STRING",
6878    value: "SDL.thread.create.name",
6879    ty: PropertyType::String,
6880    doc: "",
6881};
6882pub const SDL_PROP_THREAD_CREATE_USERDATA_POINTER: Property = Property {
6883    name: "SDL_PROP_THREAD_CREATE_USERDATA_POINTER",
6884    value: "SDL.thread.create.userdata",
6885    ty: PropertyType::Pointer,
6886    doc: "",
6887};
6888pub const SDL_PROP_THREAD_CREATE_STACKSIZE_NUMBER: Property = Property {
6889    name: "SDL_PROP_THREAD_CREATE_STACKSIZE_NUMBER",
6890    value: "SDL.thread.create.stacksize",
6891    ty: PropertyType::Number,
6892    doc: "",
6893};
6894pub const SDL_PROP_TRAY_CREATE_ICON_POINTER: Property = Property {
6895    name: "SDL_PROP_TRAY_CREATE_ICON_POINTER",
6896    value: "SDL.tray.create.icon",
6897    ty: PropertyType::Pointer,
6898    doc: "",
6899};
6900pub const SDL_PROP_TRAY_CREATE_TOOLTIP_STRING: Property = Property {
6901    name: "SDL_PROP_TRAY_CREATE_TOOLTIP_STRING",
6902    value: "SDL.tray.create.tooltip",
6903    ty: PropertyType::String,
6904    doc: "",
6905};
6906pub const SDL_PROP_TRAY_CREATE_USERDATA_POINTER: Property = Property {
6907    name: "SDL_PROP_TRAY_CREATE_USERDATA_POINTER",
6908    value: "SDL.tray.create.userdata",
6909    ty: PropertyType::Pointer,
6910    doc: "",
6911};
6912pub const SDL_PROP_TRAY_CREATE_LEFTCLICK_CALLBACK_POINTER: Property = Property {
6913    name: "SDL_PROP_TRAY_CREATE_LEFTCLICK_CALLBACK_POINTER",
6914    value: "SDL.tray.create.leftclick_callback",
6915    ty: PropertyType::Pointer,
6916    doc: "",
6917};
6918pub const SDL_PROP_TRAY_CREATE_RIGHTCLICK_CALLBACK_POINTER: Property = Property {
6919    name: "SDL_PROP_TRAY_CREATE_RIGHTCLICK_CALLBACK_POINTER",
6920    value: "SDL.tray.create.rightclick_callback",
6921    ty: PropertyType::Pointer,
6922    doc: "",
6923};
6924pub const SDL_PROP_TRAY_CREATE_MIDDLECLICK_CALLBACK_POINTER: Property = Property {
6925    name: "SDL_PROP_TRAY_CREATE_MIDDLECLICK_CALLBACK_POINTER",
6926    value: "SDL.tray.create.middleclick_callback",
6927    ty: PropertyType::Pointer,
6928    doc: "",
6929};
6930/**
6931* The pointer to the global `wl_display` object used by the Wayland video
6932* backend.
6933*
6934* Can be set before the video subsystem is initialized to import an external
6935* `wl_display` object from an application or toolkit for use in SDL, or read
6936* after initialization to export the `wl_display` used by the Wayland video
6937* backend. Setting this property after the video subsystem has been
6938* initialized has no effect, and reading it when the video subsystem is
6939* uninitialized will either return the user provided value, if one was set
6940* prior to initialization, or NULL. See docs/README-wayland.md for more
6941* information.
6942*
6943* \since This macro is available since SDL 3.2.0.
6944*/
6945pub const SDL_PROP_GLOBAL_VIDEO_WAYLAND_WL_DISPLAY_POINTER: Property = Property {
6946    name: "SDL_PROP_GLOBAL_VIDEO_WAYLAND_WL_DISPLAY_POINTER",
6947    value: "SDL.video.wayland.wl_display",
6948    ty: PropertyType::Pointer,
6949    doc: "/**\n* The pointer to the global `wl_display` object used by the Wayland video\n* backend.\n*\n* Can be set before the video subsystem is initialized to import an external\n* `wl_display` object from an application or toolkit for use in SDL, or read\n* after initialization to export the `wl_display` used by the Wayland video\n* backend. Setting this property after the video subsystem has been\n* initialized has no effect, and reading it when the video subsystem is\n* uninitialized will either return the user provided value, if one was set\n* prior to initialization, or NULL. See docs/README-wayland.md for more\n* information.\n*\n* \\since This macro is available since SDL 3.2.0.\n*/\n",
6950};
6951pub const SDL_PROP_DISPLAY_HDR_ENABLED_BOOLEAN: Property = Property {
6952    name: "SDL_PROP_DISPLAY_HDR_ENABLED_BOOLEAN",
6953    value: "SDL.display.HDR_enabled",
6954    ty: PropertyType::Boolean,
6955    doc: "",
6956};
6957pub const SDL_PROP_DISPLAY_KMSDRM_PANEL_ORIENTATION_NUMBER: Property = Property {
6958    name: "SDL_PROP_DISPLAY_KMSDRM_PANEL_ORIENTATION_NUMBER",
6959    value: "SDL.display.KMSDRM.panel_orientation",
6960    ty: PropertyType::Number,
6961    doc: "",
6962};
6963pub const SDL_PROP_DISPLAY_WAYLAND_WL_OUTPUT_POINTER: Property = Property {
6964    name: "SDL_PROP_DISPLAY_WAYLAND_WL_OUTPUT_POINTER",
6965    value: "SDL.display.wayland.wl_output",
6966    ty: PropertyType::Pointer,
6967    doc: "",
6968};
6969pub const SDL_PROP_DISPLAY_WINDOWS_HMONITOR_POINTER: Property = Property {
6970    name: "SDL_PROP_DISPLAY_WINDOWS_HMONITOR_POINTER",
6971    value: "SDL.display.windows.hmonitor",
6972    ty: PropertyType::Pointer,
6973    doc: "",
6974};
6975pub const SDL_PROP_WINDOW_CREATE_ALWAYS_ON_TOP_BOOLEAN: Property = Property {
6976    name: "SDL_PROP_WINDOW_CREATE_ALWAYS_ON_TOP_BOOLEAN",
6977    value: "SDL.window.create.always_on_top",
6978    ty: PropertyType::Boolean,
6979    doc: "",
6980};
6981pub const SDL_PROP_WINDOW_CREATE_BORDERLESS_BOOLEAN: Property = Property {
6982    name: "SDL_PROP_WINDOW_CREATE_BORDERLESS_BOOLEAN",
6983    value: "SDL.window.create.borderless",
6984    ty: PropertyType::Boolean,
6985    doc: "",
6986};
6987pub const SDL_PROP_WINDOW_CREATE_CONSTRAIN_POPUP_BOOLEAN: Property = Property {
6988    name: "SDL_PROP_WINDOW_CREATE_CONSTRAIN_POPUP_BOOLEAN",
6989    value: "SDL.window.create.constrain_popup",
6990    ty: PropertyType::Boolean,
6991    doc: "",
6992};
6993pub const SDL_PROP_WINDOW_CREATE_FOCUSABLE_BOOLEAN: Property = Property {
6994    name: "SDL_PROP_WINDOW_CREATE_FOCUSABLE_BOOLEAN",
6995    value: "SDL.window.create.focusable",
6996    ty: PropertyType::Boolean,
6997    doc: "",
6998};
6999pub const SDL_PROP_WINDOW_CREATE_EXTERNAL_GRAPHICS_CONTEXT_BOOLEAN: Property = Property {
7000    name: "SDL_PROP_WINDOW_CREATE_EXTERNAL_GRAPHICS_CONTEXT_BOOLEAN",
7001    value: "SDL.window.create.external_graphics_context",
7002    ty: PropertyType::Boolean,
7003    doc: "",
7004};
7005pub const SDL_PROP_WINDOW_CREATE_FLAGS_NUMBER: Property = Property {
7006    name: "SDL_PROP_WINDOW_CREATE_FLAGS_NUMBER",
7007    value: "SDL.window.create.flags",
7008    ty: PropertyType::Number,
7009    doc: "",
7010};
7011pub const SDL_PROP_WINDOW_CREATE_FULLSCREEN_BOOLEAN: Property = Property {
7012    name: "SDL_PROP_WINDOW_CREATE_FULLSCREEN_BOOLEAN",
7013    value: "SDL.window.create.fullscreen",
7014    ty: PropertyType::Boolean,
7015    doc: "",
7016};
7017pub const SDL_PROP_WINDOW_CREATE_HEIGHT_NUMBER: Property = Property {
7018    name: "SDL_PROP_WINDOW_CREATE_HEIGHT_NUMBER",
7019    value: "SDL.window.create.height",
7020    ty: PropertyType::Number,
7021    doc: "",
7022};
7023pub const SDL_PROP_WINDOW_CREATE_HIDDEN_BOOLEAN: Property = Property {
7024    name: "SDL_PROP_WINDOW_CREATE_HIDDEN_BOOLEAN",
7025    value: "SDL.window.create.hidden",
7026    ty: PropertyType::Boolean,
7027    doc: "",
7028};
7029pub const SDL_PROP_WINDOW_CREATE_HIGH_PIXEL_DENSITY_BOOLEAN: Property = Property {
7030    name: "SDL_PROP_WINDOW_CREATE_HIGH_PIXEL_DENSITY_BOOLEAN",
7031    value: "SDL.window.create.high_pixel_density",
7032    ty: PropertyType::Boolean,
7033    doc: "",
7034};
7035pub const SDL_PROP_WINDOW_CREATE_MAXIMIZED_BOOLEAN: Property = Property {
7036    name: "SDL_PROP_WINDOW_CREATE_MAXIMIZED_BOOLEAN",
7037    value: "SDL.window.create.maximized",
7038    ty: PropertyType::Boolean,
7039    doc: "",
7040};
7041pub const SDL_PROP_WINDOW_CREATE_MENU_BOOLEAN: Property = Property {
7042    name: "SDL_PROP_WINDOW_CREATE_MENU_BOOLEAN",
7043    value: "SDL.window.create.menu",
7044    ty: PropertyType::Boolean,
7045    doc: "",
7046};
7047pub const SDL_PROP_WINDOW_CREATE_METAL_BOOLEAN: Property = Property {
7048    name: "SDL_PROP_WINDOW_CREATE_METAL_BOOLEAN",
7049    value: "SDL.window.create.metal",
7050    ty: PropertyType::Boolean,
7051    doc: "",
7052};
7053pub const SDL_PROP_WINDOW_CREATE_MINIMIZED_BOOLEAN: Property = Property {
7054    name: "SDL_PROP_WINDOW_CREATE_MINIMIZED_BOOLEAN",
7055    value: "SDL.window.create.minimized",
7056    ty: PropertyType::Boolean,
7057    doc: "",
7058};
7059pub const SDL_PROP_WINDOW_CREATE_MODAL_BOOLEAN: Property = Property {
7060    name: "SDL_PROP_WINDOW_CREATE_MODAL_BOOLEAN",
7061    value: "SDL.window.create.modal",
7062    ty: PropertyType::Boolean,
7063    doc: "",
7064};
7065pub const SDL_PROP_WINDOW_CREATE_MOUSE_GRABBED_BOOLEAN: Property = Property {
7066    name: "SDL_PROP_WINDOW_CREATE_MOUSE_GRABBED_BOOLEAN",
7067    value: "SDL.window.create.mouse_grabbed",
7068    ty: PropertyType::Boolean,
7069    doc: "",
7070};
7071pub const SDL_PROP_WINDOW_CREATE_OPENGL_BOOLEAN: Property = Property {
7072    name: "SDL_PROP_WINDOW_CREATE_OPENGL_BOOLEAN",
7073    value: "SDL.window.create.opengl",
7074    ty: PropertyType::Boolean,
7075    doc: "",
7076};
7077pub const SDL_PROP_WINDOW_CREATE_PARENT_POINTER: Property = Property {
7078    name: "SDL_PROP_WINDOW_CREATE_PARENT_POINTER",
7079    value: "SDL.window.create.parent",
7080    ty: PropertyType::Pointer,
7081    doc: "",
7082};
7083pub const SDL_PROP_WINDOW_CREATE_RESIZABLE_BOOLEAN: Property = Property {
7084    name: "SDL_PROP_WINDOW_CREATE_RESIZABLE_BOOLEAN",
7085    value: "SDL.window.create.resizable",
7086    ty: PropertyType::Boolean,
7087    doc: "",
7088};
7089pub const SDL_PROP_WINDOW_CREATE_TITLE_STRING: Property = Property {
7090    name: "SDL_PROP_WINDOW_CREATE_TITLE_STRING",
7091    value: "SDL.window.create.title",
7092    ty: PropertyType::String,
7093    doc: "",
7094};
7095pub const SDL_PROP_WINDOW_CREATE_TRANSPARENT_BOOLEAN: Property = Property {
7096    name: "SDL_PROP_WINDOW_CREATE_TRANSPARENT_BOOLEAN",
7097    value: "SDL.window.create.transparent",
7098    ty: PropertyType::Boolean,
7099    doc: "",
7100};
7101pub const SDL_PROP_WINDOW_CREATE_TOOLTIP_BOOLEAN: Property = Property {
7102    name: "SDL_PROP_WINDOW_CREATE_TOOLTIP_BOOLEAN",
7103    value: "SDL.window.create.tooltip",
7104    ty: PropertyType::Boolean,
7105    doc: "",
7106};
7107pub const SDL_PROP_WINDOW_CREATE_UTILITY_BOOLEAN: Property = Property {
7108    name: "SDL_PROP_WINDOW_CREATE_UTILITY_BOOLEAN",
7109    value: "SDL.window.create.utility",
7110    ty: PropertyType::Boolean,
7111    doc: "",
7112};
7113pub const SDL_PROP_WINDOW_CREATE_VULKAN_BOOLEAN: Property = Property {
7114    name: "SDL_PROP_WINDOW_CREATE_VULKAN_BOOLEAN",
7115    value: "SDL.window.create.vulkan",
7116    ty: PropertyType::Boolean,
7117    doc: "",
7118};
7119pub const SDL_PROP_WINDOW_CREATE_WIDTH_NUMBER: Property = Property {
7120    name: "SDL_PROP_WINDOW_CREATE_WIDTH_NUMBER",
7121    value: "SDL.window.create.width",
7122    ty: PropertyType::Number,
7123    doc: "",
7124};
7125pub const SDL_PROP_WINDOW_CREATE_X_NUMBER: Property = Property {
7126    name: "SDL_PROP_WINDOW_CREATE_X_NUMBER",
7127    value: "SDL.window.create.x",
7128    ty: PropertyType::Number,
7129    doc: "",
7130};
7131pub const SDL_PROP_WINDOW_CREATE_Y_NUMBER: Property = Property {
7132    name: "SDL_PROP_WINDOW_CREATE_Y_NUMBER",
7133    value: "SDL.window.create.y",
7134    ty: PropertyType::Number,
7135    doc: "",
7136};
7137pub const SDL_PROP_WINDOW_CREATE_COCOA_WINDOW_POINTER: Property = Property {
7138    name: "SDL_PROP_WINDOW_CREATE_COCOA_WINDOW_POINTER",
7139    value: "SDL.window.create.cocoa.window",
7140    ty: PropertyType::Pointer,
7141    doc: "",
7142};
7143pub const SDL_PROP_WINDOW_CREATE_COCOA_VIEW_POINTER: Property = Property {
7144    name: "SDL_PROP_WINDOW_CREATE_COCOA_VIEW_POINTER",
7145    value: "SDL.window.create.cocoa.view",
7146    ty: PropertyType::Pointer,
7147    doc: "",
7148};
7149pub const SDL_PROP_WINDOW_CREATE_WINDOWSCENE_POINTER: Property = Property {
7150    name: "SDL_PROP_WINDOW_CREATE_WINDOWSCENE_POINTER",
7151    value: "SDL.window.create.uikit.windowscene",
7152    ty: PropertyType::Pointer,
7153    doc: "",
7154};
7155pub const SDL_PROP_WINDOW_CREATE_WAYLAND_SURFACE_ROLE_CUSTOM_BOOLEAN: Property = Property {
7156    name: "SDL_PROP_WINDOW_CREATE_WAYLAND_SURFACE_ROLE_CUSTOM_BOOLEAN",
7157    value: "SDL.window.create.wayland.surface_role_custom",
7158    ty: PropertyType::Boolean,
7159    doc: "",
7160};
7161pub const SDL_PROP_WINDOW_CREATE_WAYLAND_CREATE_EGL_WINDOW_BOOLEAN: Property = Property {
7162    name: "SDL_PROP_WINDOW_CREATE_WAYLAND_CREATE_EGL_WINDOW_BOOLEAN",
7163    value: "SDL.window.create.wayland.create_egl_window",
7164    ty: PropertyType::Boolean,
7165    doc: "",
7166};
7167pub const SDL_PROP_WINDOW_CREATE_WAYLAND_WL_SURFACE_POINTER: Property = Property {
7168    name: "SDL_PROP_WINDOW_CREATE_WAYLAND_WL_SURFACE_POINTER",
7169    value: "SDL.window.create.wayland.wl_surface",
7170    ty: PropertyType::Pointer,
7171    doc: "",
7172};
7173pub const SDL_PROP_WINDOW_CREATE_WIN32_HWND_POINTER: Property = Property {
7174    name: "SDL_PROP_WINDOW_CREATE_WIN32_HWND_POINTER",
7175    value: "SDL.window.create.win32.hwnd",
7176    ty: PropertyType::Pointer,
7177    doc: "",
7178};
7179pub const SDL_PROP_WINDOW_CREATE_WIN32_PIXEL_FORMAT_HWND_POINTER: Property = Property {
7180    name: "SDL_PROP_WINDOW_CREATE_WIN32_PIXEL_FORMAT_HWND_POINTER",
7181    value: "SDL.window.create.win32.pixel_format_hwnd",
7182    ty: PropertyType::Pointer,
7183    doc: "",
7184};
7185pub const SDL_PROP_WINDOW_CREATE_X11_WINDOW_NUMBER: Property = Property {
7186    name: "SDL_PROP_WINDOW_CREATE_X11_WINDOW_NUMBER",
7187    value: "SDL.window.create.x11.window",
7188    ty: PropertyType::Number,
7189    doc: "",
7190};
7191pub const SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRING: Property = Property {
7192    name: "SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRING",
7193    value: "SDL.window.create.emscripten.canvas_id",
7194    ty: PropertyType::String,
7195    doc: "",
7196};
7197pub const SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING: Property = Property {
7198    name: "SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING",
7199    value: "SDL.window.create.emscripten.keyboard_element",
7200    ty: PropertyType::String,
7201    doc: "",
7202};
7203pub const SDL_PROP_WINDOW_SHAPE_POINTER: Property = Property {
7204    name: "SDL_PROP_WINDOW_SHAPE_POINTER",
7205    value: "SDL.window.shape",
7206    ty: PropertyType::Pointer,
7207    doc: "",
7208};
7209pub const SDL_PROP_WINDOW_HDR_ENABLED_BOOLEAN: Property = Property {
7210    name: "SDL_PROP_WINDOW_HDR_ENABLED_BOOLEAN",
7211    value: "SDL.window.HDR_enabled",
7212    ty: PropertyType::Boolean,
7213    doc: "",
7214};
7215pub const SDL_PROP_WINDOW_SDR_WHITE_LEVEL_FLOAT: Property = Property {
7216    name: "SDL_PROP_WINDOW_SDR_WHITE_LEVEL_FLOAT",
7217    value: "SDL.window.SDR_white_level",
7218    ty: PropertyType::Float,
7219    doc: "",
7220};
7221pub const SDL_PROP_WINDOW_HDR_HEADROOM_FLOAT: Property = Property {
7222    name: "SDL_PROP_WINDOW_HDR_HEADROOM_FLOAT",
7223    value: "SDL.window.HDR_headroom",
7224    ty: PropertyType::Float,
7225    doc: "",
7226};
7227pub const SDL_PROP_WINDOW_ANDROID_WINDOW_POINTER: Property = Property {
7228    name: "SDL_PROP_WINDOW_ANDROID_WINDOW_POINTER",
7229    value: "SDL.window.android.window",
7230    ty: PropertyType::Pointer,
7231    doc: "",
7232};
7233pub const SDL_PROP_WINDOW_ANDROID_SURFACE_POINTER: Property = Property {
7234    name: "SDL_PROP_WINDOW_ANDROID_SURFACE_POINTER",
7235    value: "SDL.window.android.surface",
7236    ty: PropertyType::Pointer,
7237    doc: "",
7238};
7239pub const SDL_PROP_WINDOW_UIKIT_WINDOW_POINTER: Property = Property {
7240    name: "SDL_PROP_WINDOW_UIKIT_WINDOW_POINTER",
7241    value: "SDL.window.uikit.window",
7242    ty: PropertyType::Pointer,
7243    doc: "",
7244};
7245pub const SDL_PROP_WINDOW_UIKIT_METAL_VIEW_TAG_NUMBER: Property = Property {
7246    name: "SDL_PROP_WINDOW_UIKIT_METAL_VIEW_TAG_NUMBER",
7247    value: "SDL.window.uikit.metal_view_tag",
7248    ty: PropertyType::Number,
7249    doc: "",
7250};
7251pub const SDL_PROP_WINDOW_UIKIT_OPENGL_FRAMEBUFFER_NUMBER: Property = Property {
7252    name: "SDL_PROP_WINDOW_UIKIT_OPENGL_FRAMEBUFFER_NUMBER",
7253    value: "SDL.window.uikit.opengl.framebuffer",
7254    ty: PropertyType::Number,
7255    doc: "",
7256};
7257pub const SDL_PROP_WINDOW_UIKIT_OPENGL_RENDERBUFFER_NUMBER: Property = Property {
7258    name: "SDL_PROP_WINDOW_UIKIT_OPENGL_RENDERBUFFER_NUMBER",
7259    value: "SDL.window.uikit.opengl.renderbuffer",
7260    ty: PropertyType::Number,
7261    doc: "",
7262};
7263pub const SDL_PROP_WINDOW_UIKIT_OPENGL_RESOLVE_FRAMEBUFFER_NUMBER: Property = Property {
7264    name: "SDL_PROP_WINDOW_UIKIT_OPENGL_RESOLVE_FRAMEBUFFER_NUMBER",
7265    value: "SDL.window.uikit.opengl.resolve_framebuffer",
7266    ty: PropertyType::Number,
7267    doc: "",
7268};
7269pub const SDL_PROP_WINDOW_KMSDRM_DEVICE_INDEX_NUMBER: Property = Property {
7270    name: "SDL_PROP_WINDOW_KMSDRM_DEVICE_INDEX_NUMBER",
7271    value: "SDL.window.kmsdrm.dev_index",
7272    ty: PropertyType::Number,
7273    doc: "",
7274};
7275pub const SDL_PROP_WINDOW_KMSDRM_DRM_FD_NUMBER: Property = Property {
7276    name: "SDL_PROP_WINDOW_KMSDRM_DRM_FD_NUMBER",
7277    value: "SDL.window.kmsdrm.drm_fd",
7278    ty: PropertyType::Number,
7279    doc: "",
7280};
7281pub const SDL_PROP_WINDOW_KMSDRM_GBM_DEVICE_POINTER: Property = Property {
7282    name: "SDL_PROP_WINDOW_KMSDRM_GBM_DEVICE_POINTER",
7283    value: "SDL.window.kmsdrm.gbm_dev",
7284    ty: PropertyType::Pointer,
7285    doc: "",
7286};
7287pub const SDL_PROP_WINDOW_COCOA_WINDOW_POINTER: Property = Property {
7288    name: "SDL_PROP_WINDOW_COCOA_WINDOW_POINTER",
7289    value: "SDL.window.cocoa.window",
7290    ty: PropertyType::Pointer,
7291    doc: "",
7292};
7293pub const SDL_PROP_WINDOW_COCOA_METAL_VIEW_TAG_NUMBER: Property = Property {
7294    name: "SDL_PROP_WINDOW_COCOA_METAL_VIEW_TAG_NUMBER",
7295    value: "SDL.window.cocoa.metal_view_tag",
7296    ty: PropertyType::Number,
7297    doc: "",
7298};
7299pub const SDL_PROP_WINDOW_OPENVR_OVERLAY_ID_NUMBER: Property = Property {
7300    name: "SDL_PROP_WINDOW_OPENVR_OVERLAY_ID_NUMBER",
7301    value: "SDL.window.openvr.overlay_id",
7302    ty: PropertyType::Number,
7303    doc: "",
7304};
7305pub const SDL_PROP_WINDOW_QNX_WINDOW_POINTER: Property = Property {
7306    name: "SDL_PROP_WINDOW_QNX_WINDOW_POINTER",
7307    value: "SDL.window.qnx.window",
7308    ty: PropertyType::Pointer,
7309    doc: "",
7310};
7311pub const SDL_PROP_WINDOW_QNX_SURFACE_POINTER: Property = Property {
7312    name: "SDL_PROP_WINDOW_QNX_SURFACE_POINTER",
7313    value: "SDL.window.qnx.surface",
7314    ty: PropertyType::Pointer,
7315    doc: "",
7316};
7317pub const SDL_PROP_WINDOW_VIVANTE_DISPLAY_POINTER: Property = Property {
7318    name: "SDL_PROP_WINDOW_VIVANTE_DISPLAY_POINTER",
7319    value: "SDL.window.vivante.display",
7320    ty: PropertyType::Pointer,
7321    doc: "",
7322};
7323pub const SDL_PROP_WINDOW_VIVANTE_WINDOW_POINTER: Property = Property {
7324    name: "SDL_PROP_WINDOW_VIVANTE_WINDOW_POINTER",
7325    value: "SDL.window.vivante.window",
7326    ty: PropertyType::Pointer,
7327    doc: "",
7328};
7329pub const SDL_PROP_WINDOW_VIVANTE_SURFACE_POINTER: Property = Property {
7330    name: "SDL_PROP_WINDOW_VIVANTE_SURFACE_POINTER",
7331    value: "SDL.window.vivante.surface",
7332    ty: PropertyType::Pointer,
7333    doc: "",
7334};
7335pub const SDL_PROP_WINDOW_WIN32_HWND_POINTER: Property = Property {
7336    name: "SDL_PROP_WINDOW_WIN32_HWND_POINTER",
7337    value: "SDL.window.win32.hwnd",
7338    ty: PropertyType::Pointer,
7339    doc: "",
7340};
7341pub const SDL_PROP_WINDOW_WIN32_HDC_POINTER: Property = Property {
7342    name: "SDL_PROP_WINDOW_WIN32_HDC_POINTER",
7343    value: "SDL.window.win32.hdc",
7344    ty: PropertyType::Pointer,
7345    doc: "",
7346};
7347pub const SDL_PROP_WINDOW_WIN32_INSTANCE_POINTER: Property = Property {
7348    name: "SDL_PROP_WINDOW_WIN32_INSTANCE_POINTER",
7349    value: "SDL.window.win32.instance",
7350    ty: PropertyType::Pointer,
7351    doc: "",
7352};
7353pub const SDL_PROP_WINDOW_WAYLAND_DISPLAY_POINTER: Property = Property {
7354    name: "SDL_PROP_WINDOW_WAYLAND_DISPLAY_POINTER",
7355    value: "SDL.window.wayland.display",
7356    ty: PropertyType::Pointer,
7357    doc: "",
7358};
7359pub const SDL_PROP_WINDOW_WAYLAND_SURFACE_POINTER: Property = Property {
7360    name: "SDL_PROP_WINDOW_WAYLAND_SURFACE_POINTER",
7361    value: "SDL.window.wayland.surface",
7362    ty: PropertyType::Pointer,
7363    doc: "",
7364};
7365pub const SDL_PROP_WINDOW_WAYLAND_VIEWPORT_POINTER: Property = Property {
7366    name: "SDL_PROP_WINDOW_WAYLAND_VIEWPORT_POINTER",
7367    value: "SDL.window.wayland.viewport",
7368    ty: PropertyType::Pointer,
7369    doc: "",
7370};
7371pub const SDL_PROP_WINDOW_WAYLAND_EGL_WINDOW_POINTER: Property = Property {
7372    name: "SDL_PROP_WINDOW_WAYLAND_EGL_WINDOW_POINTER",
7373    value: "SDL.window.wayland.egl_window",
7374    ty: PropertyType::Pointer,
7375    doc: "",
7376};
7377pub const SDL_PROP_WINDOW_WAYLAND_XDG_SURFACE_POINTER: Property = Property {
7378    name: "SDL_PROP_WINDOW_WAYLAND_XDG_SURFACE_POINTER",
7379    value: "SDL.window.wayland.xdg_surface",
7380    ty: PropertyType::Pointer,
7381    doc: "",
7382};
7383pub const SDL_PROP_WINDOW_WAYLAND_XDG_TOPLEVEL_POINTER: Property = Property {
7384    name: "SDL_PROP_WINDOW_WAYLAND_XDG_TOPLEVEL_POINTER",
7385    value: "SDL.window.wayland.xdg_toplevel",
7386    ty: PropertyType::Pointer,
7387    doc: "",
7388};
7389pub const SDL_PROP_WINDOW_WAYLAND_XDG_TOPLEVEL_EXPORT_HANDLE_STRING: Property = Property {
7390    name: "SDL_PROP_WINDOW_WAYLAND_XDG_TOPLEVEL_EXPORT_HANDLE_STRING",
7391    value: "SDL.window.wayland.xdg_toplevel_export_handle",
7392    ty: PropertyType::String,
7393    doc: "",
7394};
7395pub const SDL_PROP_WINDOW_WAYLAND_XDG_POPUP_POINTER: Property = Property {
7396    name: "SDL_PROP_WINDOW_WAYLAND_XDG_POPUP_POINTER",
7397    value: "SDL.window.wayland.xdg_popup",
7398    ty: PropertyType::Pointer,
7399    doc: "",
7400};
7401pub const SDL_PROP_WINDOW_WAYLAND_XDG_POSITIONER_POINTER: Property = Property {
7402    name: "SDL_PROP_WINDOW_WAYLAND_XDG_POSITIONER_POINTER",
7403    value: "SDL.window.wayland.xdg_positioner",
7404    ty: PropertyType::Pointer,
7405    doc: "",
7406};
7407pub const SDL_PROP_WINDOW_X11_DISPLAY_POINTER: Property = Property {
7408    name: "SDL_PROP_WINDOW_X11_DISPLAY_POINTER",
7409    value: "SDL.window.x11.display",
7410    ty: PropertyType::Pointer,
7411    doc: "",
7412};
7413pub const SDL_PROP_WINDOW_X11_SCREEN_NUMBER: Property = Property {
7414    name: "SDL_PROP_WINDOW_X11_SCREEN_NUMBER",
7415    value: "SDL.window.x11.screen",
7416    ty: PropertyType::Number,
7417    doc: "",
7418};
7419pub const SDL_PROP_WINDOW_X11_WINDOW_NUMBER: Property = Property {
7420    name: "SDL_PROP_WINDOW_X11_WINDOW_NUMBER",
7421    value: "SDL.window.x11.window",
7422    ty: PropertyType::Number,
7423    doc: "",
7424};
7425pub const SDL_PROP_WINDOW_EMSCRIPTEN_CANVAS_ID_STRING: Property = Property {
7426    name: "SDL_PROP_WINDOW_EMSCRIPTEN_CANVAS_ID_STRING",
7427    value: "SDL.window.emscripten.canvas_id",
7428    ty: PropertyType::String,
7429    doc: "",
7430};
7431pub const SDL_PROP_WINDOW_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING: Property = Property {
7432    name: "SDL_PROP_WINDOW_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING",
7433    value: "SDL.window.emscripten.keyboard_element",
7434    ty: PropertyType::String,
7435    doc: "",
7436};