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