SDL3pp
A slim C++ wrapper for SDL3
Loading...
Searching...
No Matches
SDL3pp_hints.h
1#ifndef SDL3PP_HINTS_H_
2#define SDL3PP_HINTS_H_
3
4#include <SDL3/SDL_hints.h>
5#include "SDL3pp_callbackWrapper.h"
6#include "SDL3pp_error.h"
7#include "SDL3pp_strings.h"
8
9namespace SDL {
10
28#ifdef SDL3PP_DOC
29
47#define SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED "SDL_ALLOW_ALT_TAB_WHILE_GRABBED"
48
67#define SDL_HINT_ANDROID_ALLOW_RECREATE_ACTIVITY \
68 "SDL_ANDROID_ALLOW_RECREATE_ACTIVITY"
69
83#define SDL_HINT_ANDROID_BLOCK_ON_PAUSE "SDL_ANDROID_BLOCK_ON_PAUSE"
84
100#define SDL_HINT_ANDROID_LOW_LATENCY_AUDIO "SDL_ANDROID_LOW_LATENCY_AUDIO"
101
122#define SDL_HINT_ANDROID_TRAP_BACK_BUTTON "SDL_ANDROID_TRAP_BACK_BUTTON"
123
138#define SDL_HINT_APP_ID "SDL_APP_ID"
139
155#define SDL_HINT_APP_NAME "SDL_APP_NAME"
156
178#define SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS \
179 "SDL_APPLE_TV_CONTROLLER_UI_EVENTS"
180
194#define SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION \
195 "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION"
196
215#define SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE "SDL_AUDIO_ALSA_DEFAULT_DEVICE"
216
233#define SDL_HINT_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE \
234 "SDL_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE"
235
252#define SDL_HINT_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE \
253 "SDL_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE"
254
271#define SDL_HINT_AUDIO_CATEGORY "SDL_AUDIO_CATEGORY"
272
284#define SDL_HINT_AUDIO_CHANNELS "SDL_AUDIO_CHANNELS"
285
307#define SDL_HINT_AUDIO_DEVICE_APP_ICON_NAME "SDL_AUDIO_DEVICE_APP_ICON_NAME"
308
329#define SDL_HINT_AUDIO_DEVICE_SAMPLE_FRAMES "SDL_AUDIO_DEVICE_SAMPLE_FRAMES"
330
356#define SDL_HINT_AUDIO_DEVICE_STREAM_NAME "SDL_AUDIO_DEVICE_STREAM_NAME"
357
381#define SDL_HINT_AUDIO_DEVICE_STREAM_ROLE "SDL_AUDIO_DEVICE_STREAM_ROLE"
382
392#define SDL_HINT_AUDIO_DISK_INPUT_FILE "SDL_AUDIO_DISK_INPUT_FILE"
393
403#define SDL_HINT_AUDIO_DISK_OUTPUT_FILE "SDL_AUDIO_DISK_OUTPUT_FILE"
404
416#define SDL_HINT_AUDIO_DISK_TIMESCALE "SDL_AUDIO_DISK_TIMESCALE"
417
430#define SDL_HINT_AUDIO_DRIVER "SDL_AUDIO_DRIVER"
431
443#define SDL_HINT_AUDIO_DUMMY_TIMESCALE "SDL_AUDIO_DUMMY_TIMESCALE"
444
469#define SDL_HINT_AUDIO_FORMAT "SDL_AUDIO_FORMAT"
470
482#define SDL_HINT_AUDIO_FREQUENCY "SDL_AUDIO_FREQUENCY"
483
504#define SDL_HINT_AUDIO_INCLUDE_MONITORS "SDL_AUDIO_INCLUDE_MONITORS"
505
519#define SDL_HINT_AUTO_UPDATE_JOYSTICKS "SDL_AUTO_UPDATE_JOYSTICKS"
520
534#define SDL_HINT_AUTO_UPDATE_SENSORS "SDL_AUTO_UPDATE_SENSORS"
535
556#define SDL_HINT_BMP_SAVE_LEGACY_FORMAT "SDL_BMP_SAVE_LEGACY_FORMAT"
557
572#define SDL_HINT_CAMERA_DRIVER "SDL_CAMERA_DRIVER"
573
604#define SDL_HINT_CPU_FEATURE_MASK "SDL_CPU_FEATURE_MASK"
605
618#define SDL_HINT_JOYSTICK_DIRECTINPUT "SDL_JOYSTICK_DIRECTINPUT"
619
647#define SDL_HINT_FILE_DIALOG_DRIVER "SDL_FILE_DIALOG_DRIVER"
648
664#define SDL_HINT_DISPLAY_USABLE_BOUNDS "SDL_DISPLAY_USABLE_BOUNDS"
665
685#define SDL_HINT_EMSCRIPTEN_ASYNCIFY "SDL_EMSCRIPTEN_ASYNCIFY"
686
698#define SDL_HINT_EMSCRIPTEN_CANVAS_SELECTOR "SDL_EMSCRIPTEN_CANVAS_SELECTOR"
699
719#define SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT"
720
736#define SDL_HINT_ENABLE_SCREEN_KEYBOARD "SDL_ENABLE_SCREEN_KEYBOARD"
737
753#define SDL_HINT_EVDEV_DEVICES "SDL_EVDEV_DEVICES"
754
775#define SDL_HINT_EVENT_LOGGING "SDL_EVENT_LOGGING"
776
794#define SDL_HINT_FORCE_RAISEWINDOW "SDL_FORCE_RAISEWINDOW"
795
815#define SDL_HINT_FRAMEBUFFER_ACCELERATION "SDL_FRAMEBUFFER_ACCELERATION"
816
830#define SDL_HINT_GAMECONTROLLERCONFIG "SDL_GAMECONTROLLERCONFIG"
831
845#define SDL_HINT_GAMECONTROLLERCONFIG_FILE "SDL_GAMECONTROLLERCONFIG_FILE"
846
869#define SDL_HINT_GAMECONTROLLERTYPE "SDL_GAMECONTROLLERTYPE"
870
887#define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES \
888 "SDL_GAMECONTROLLER_IGNORE_DEVICES"
889
906#define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT \
907 "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT"
908
930#define SDL_HINT_GAMECONTROLLER_SENSOR_FUSION "SDL_GAMECONTROLLER_SENSOR_FUSION"
931
941#define SDL_HINT_GDK_TEXTINPUT_DEFAULT_TEXT "SDL_GDK_TEXTINPUT_DEFAULT_TEXT"
942
952#define SDL_HINT_GDK_TEXTINPUT_DESCRIPTION "SDL_GDK_TEXTINPUT_DESCRIPTION"
953
967#define SDL_HINT_GDK_TEXTINPUT_MAX_LENGTH "SDL_GDK_TEXTINPUT_MAX_LENGTH"
968
982#define SDL_HINT_GDK_TEXTINPUT_SCOPE "SDL_GDK_TEXTINPUT_SCOPE"
983
993#define SDL_HINT_GDK_TEXTINPUT_TITLE "SDL_GDK_TEXTINPUT_TITLE"
994
1010#define SDL_HINT_HIDAPI_LIBUSB "SDL_HIDAPI_LIBUSB"
1011
1028#define SDL_HINT_HIDAPI_LIBUSB_WHITELIST "SDL_HIDAPI_LIBUSB_WHITELIST"
1029
1042#define SDL_HINT_HIDAPI_UDEV "SDL_HIDAPI_UDEV"
1043
1056#define SDL_HINT_GPU_DRIVER "SDL_GPU_DRIVER"
1057
1075#define SDL_HINT_HIDAPI_ENUMERATE_ONLY_CONTROLLERS \
1076 "SDL_HIDAPI_ENUMERATE_ONLY_CONTROLLERS"
1077
1093#define SDL_HINT_HIDAPI_IGNORE_DEVICES "SDL_HIDAPI_IGNORE_DEVICES"
1094
1116#define SDL_HINT_IME_IMPLEMENTED_UI "SDL_IME_IMPLEMENTED_UI"
1117
1135#define SDL_HINT_IOS_HIDE_HOME_INDICATOR "SDL_IOS_HIDE_HOME_INDICATOR"
1136
1152#define SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS \
1153 "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS"
1154
1170#define SDL_HINT_JOYSTICK_ARCADESTICK_DEVICES "SDL_JOYSTICK_ARCADESTICK_DEVICES"
1171
1191#define SDL_HINT_JOYSTICK_ARCADESTICK_DEVICES_EXCLUDED \
1192 "SDL_JOYSTICK_ARCADESTICK_DEVICES_EXCLUDED"
1193
1210#define SDL_HINT_JOYSTICK_BLACKLIST_DEVICES "SDL_JOYSTICK_BLACKLIST_DEVICES"
1211
1230#define SDL_HINT_JOYSTICK_BLACKLIST_DEVICES_EXCLUDED \
1231 "SDL_JOYSTICK_BLACKLIST_DEVICES_EXCLUDED"
1232
1240#define SDL_HINT_JOYSTICK_DEVICE "SDL_JOYSTICK_DEVICE"
1241
1264#define SDL_HINT_JOYSTICK_ENHANCED_REPORTS "SDL_JOYSTICK_ENHANCED_REPORTS"
1265
1281#define SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES "SDL_JOYSTICK_FLIGHTSTICK_DEVICES"
1282
1302#define SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED \
1303 "SDL_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED"
1304
1320#define SDL_HINT_JOYSTICK_GAMEINPUT "SDL_JOYSTICK_GAMEINPUT"
1321
1337#define SDL_HINT_JOYSTICK_GAMECUBE_DEVICES "SDL_JOYSTICK_GAMECUBE_DEVICES"
1338
1358#define SDL_HINT_JOYSTICK_GAMECUBE_DEVICES_EXCLUDED \
1359 "SDL_JOYSTICK_GAMECUBE_DEVICES_EXCLUDED"
1360
1376#define SDL_HINT_JOYSTICK_HIDAPI "SDL_JOYSTICK_HIDAPI"
1377
1393#define SDL_HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS \
1394 "SDL_JOYSTICK_HIDAPI_COMBINE_JOY_CONS"
1395
1411#define SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE "SDL_JOYSTICK_HIDAPI_GAMECUBE"
1412
1432#define SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE_RUMBLE_BRAKE \
1433 "SDL_JOYSTICK_HIDAPI_GAMECUBE_RUMBLE_BRAKE"
1434
1450#define SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS "SDL_JOYSTICK_HIDAPI_JOY_CONS"
1451
1469#define SDL_HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LED \
1470 "SDL_JOYSTICK_HIDAPI_JOYCON_HOME_LED"
1471
1487#define SDL_HINT_JOYSTICK_HIDAPI_LUNA "SDL_JOYSTICK_HIDAPI_LUNA"
1488
1504#define SDL_HINT_JOYSTICK_HIDAPI_NINTENDO_CLASSIC \
1505 "SDL_JOYSTICK_HIDAPI_NINTENDO_CLASSIC"
1506
1527#define SDL_HINT_JOYSTICK_HIDAPI_PS3 "SDL_JOYSTICK_HIDAPI_PS3"
1528
1544#define SDL_HINT_JOYSTICK_HIDAPI_PS3_SIXAXIS_DRIVER \
1545 "SDL_JOYSTICK_HIDAPI_PS3_SIXAXIS_DRIVER"
1546
1562#define SDL_HINT_JOYSTICK_HIDAPI_PS4 "SDL_JOYSTICK_HIDAPI_PS4"
1563
1577#define SDL_HINT_JOYSTICK_HIDAPI_PS4_REPORT_INTERVAL \
1578 "SDL_JOYSTICK_HIDAPI_PS4_REPORT_INTERVAL"
1579
1595#define SDL_HINT_JOYSTICK_HIDAPI_PS5 "SDL_JOYSTICK_HIDAPI_PS5"
1596
1608#define SDL_HINT_JOYSTICK_HIDAPI_PS5_PLAYER_LED \
1609 "SDL_JOYSTICK_HIDAPI_PS5_PLAYER_LED"
1610
1626#define SDL_HINT_JOYSTICK_HIDAPI_SHIELD "SDL_JOYSTICK_HIDAPI_SHIELD"
1627
1641#define SDL_HINT_JOYSTICK_HIDAPI_STADIA "SDL_JOYSTICK_HIDAPI_STADIA"
1642
1657#define SDL_HINT_JOYSTICK_HIDAPI_STEAM "SDL_JOYSTICK_HIDAPI_STEAM"
1658
1676#define SDL_HINT_JOYSTICK_HIDAPI_STEAM_HOME_LED \
1677 "SDL_JOYSTICK_HIDAPI_STEAM_HOME_LED"
1678
1694#define SDL_HINT_JOYSTICK_HIDAPI_STEAMDECK "SDL_JOYSTICK_HIDAPI_STEAMDECK"
1695
1705#define SDL_HINT_JOYSTICK_HIDAPI_STEAM_HORI "SDL_JOYSTICK_HIDAPI_STEAM_HORI"
1706
1722#define SDL_HINT_JOYSTICK_HIDAPI_SWITCH "SDL_JOYSTICK_HIDAPI_SWITCH"
1723
1741#define SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED \
1742 "SDL_JOYSTICK_HIDAPI_SWITCH_HOME_LED"
1743
1757#define SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED \
1758 "SDL_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED"
1759
1774#define SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS \
1775 "SDL_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS"
1776
1793#define SDL_HINT_JOYSTICK_HIDAPI_WII "SDL_JOYSTICK_HIDAPI_WII"
1794
1808#define SDL_HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED \
1809 "SDL_JOYSTICK_HIDAPI_WII_PLAYER_LED"
1810
1827#define SDL_HINT_JOYSTICK_HIDAPI_XBOX "SDL_JOYSTICK_HIDAPI_XBOX"
1828
1844#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360 "SDL_JOYSTICK_HIDAPI_XBOX_360"
1845
1859#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED \
1860 "SDL_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED"
1861
1877#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_WIRELESS \
1878 "SDL_JOYSTICK_HIDAPI_XBOX_360_WIRELESS"
1879
1895#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE "SDL_JOYSTICK_HIDAPI_XBOX_ONE"
1896
1914#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED \
1915 "SDL_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED"
1916
1929#define SDL_HINT_JOYSTICK_IOKIT "SDL_JOYSTICK_IOKIT"
1930
1944#define SDL_HINT_JOYSTICK_LINUX_CLASSIC "SDL_JOYSTICK_LINUX_CLASSIC"
1945
1959#define SDL_HINT_JOYSTICK_LINUX_DEADZONES "SDL_JOYSTICK_LINUX_DEADZONES"
1960
1977#define SDL_HINT_JOYSTICK_LINUX_DIGITAL_HATS "SDL_JOYSTICK_LINUX_DIGITAL_HATS"
1978
1993#define SDL_HINT_JOYSTICK_LINUX_HAT_DEADZONES "SDL_JOYSTICK_LINUX_HAT_DEADZONES"
1994
2008#define SDL_HINT_JOYSTICK_MFI "SDL_JOYSTICK_MFI"
2009
2023#define SDL_HINT_JOYSTICK_RAWINPUT "SDL_JOYSTICK_RAWINPUT"
2024
2040#define SDL_HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT \
2041 "SDL_JOYSTICK_RAWINPUT_CORRELATE_XINPUT"
2042
2056#define SDL_HINT_JOYSTICK_ROG_CHAKRAM "SDL_JOYSTICK_ROG_CHAKRAM"
2057
2071#define SDL_HINT_JOYSTICK_THREAD "SDL_JOYSTICK_THREAD"
2072
2088#define SDL_HINT_JOYSTICK_THROTTLE_DEVICES "SDL_JOYSTICK_THROTTLE_DEVICES"
2089
2109#define SDL_HINT_JOYSTICK_THROTTLE_DEVICES_EXCLUDED \
2110 "SDL_JOYSTICK_THROTTLE_DEVICES_EXCLUDED"
2111
2125#define SDL_HINT_JOYSTICK_WGI "SDL_JOYSTICK_WGI"
2126
2142#define SDL_HINT_JOYSTICK_WHEEL_DEVICES "SDL_JOYSTICK_WHEEL_DEVICES"
2143
2162#define SDL_HINT_JOYSTICK_WHEEL_DEVICES_EXCLUDED \
2163 "SDL_JOYSTICK_WHEEL_DEVICES_EXCLUDED"
2164
2181#define SDL_HINT_JOYSTICK_ZERO_CENTERED_DEVICES \
2182 "SDL_JOYSTICK_ZERO_CENTERED_DEVICES"
2183
2184#if SDL_VERSION_ATLEAST(3, 2, 5)
2185
2206#define SDL_HINT_JOYSTICK_HAPTIC_AXES "SDL_JOYSTICK_HAPTIC_AXES"
2207
2208#endif // SDL_VERSION_ATLEAST(3, 2, 5)
2209
2241#define SDL_HINT_KEYCODE_OPTIONS "SDL_KEYCODE_OPTIONS"
2242
2255#define SDL_HINT_KMSDRM_DEVICE_INDEX "SDL_KMSDRM_DEVICE_INDEX"
2256
2281#define SDL_HINT_KMSDRM_REQUIRE_DRM_MASTER "SDL_KMSDRM_REQUIRE_DRM_MASTER"
2282
2307#define SDL_HINT_LOGGING "SDL_LOGGING"
2308
2322#define SDL_HINT_MAC_BACKGROUND_APP "SDL_MAC_BACKGROUND_APP"
2323
2338#define SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK \
2339 "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK"
2340
2362#define SDL_HINT_MAC_OPENGL_ASYNC_DISPATCH "SDL_MAC_OPENGL_ASYNC_DISPATCH"
2363
2387#define SDL_HINT_MAC_OPTION_AS_ALT "SDL_MAC_OPTION_AS_ALT"
2388
2402#define SDL_HINT_MAC_SCROLL_MOMENTUM "SDL_MAC_SCROLL_MOMENTUM"
2403
2428#define SDL_HINT_MAIN_CALLBACK_RATE "SDL_MAIN_CALLBACK_RATE"
2429
2447#define SDL_HINT_MOUSE_AUTO_CAPTURE "SDL_MOUSE_AUTO_CAPTURE"
2448
2456#define SDL_HINT_MOUSE_DOUBLE_CLICK_RADIUS "SDL_MOUSE_DOUBLE_CLICK_RADIUS"
2457
2465#define SDL_HINT_MOUSE_DOUBLE_CLICK_TIME "SDL_MOUSE_DOUBLE_CLICK_TIME"
2466
2477#define SDL_HINT_MOUSE_DEFAULT_SYSTEM_CURSOR "SDL_MOUSE_DEFAULT_SYSTEM_CURSOR"
2478
2509#define SDL_HINT_MOUSE_EMULATE_WARP_WITH_RELATIVE \
2510 "SDL_MOUSE_EMULATE_WARP_WITH_RELATIVE"
2511
2524#define SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH "SDL_MOUSE_FOCUS_CLICKTHROUGH"
2525
2534#define SDL_HINT_MOUSE_NORMAL_SPEED_SCALE "SDL_MOUSE_NORMAL_SPEED_SCALE"
2535
2555#define SDL_HINT_MOUSE_RELATIVE_MODE_CENTER "SDL_MOUSE_RELATIVE_MODE_CENTER"
2556
2565#define SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE "SDL_MOUSE_RELATIVE_SPEED_SCALE"
2566
2584#define SDL_HINT_MOUSE_RELATIVE_SYSTEM_SCALE "SDL_MOUSE_RELATIVE_SYSTEM_SCALE"
2585
2603#define SDL_HINT_MOUSE_RELATIVE_WARP_MOTION "SDL_MOUSE_RELATIVE_WARP_MOTION"
2604
2622#define SDL_HINT_MOUSE_RELATIVE_CURSOR_VISIBLE \
2623 "SDL_MOUSE_RELATIVE_CURSOR_VISIBLE"
2624
2640#define SDL_HINT_MOUSE_TOUCH_EVENTS "SDL_MOUSE_TOUCH_EVENTS"
2641
2658#define SDL_HINT_MUTE_CONSOLE_KEYBOARD "SDL_MUTE_CONSOLE_KEYBOARD"
2659
2673#define SDL_HINT_NO_SIGNAL_HANDLERS "SDL_NO_SIGNAL_HANDLERS"
2674
2683#define SDL_HINT_OPENGL_LIBRARY "SDL_OPENGL_LIBRARY"
2684
2695#define SDL_HINT_EGL_LIBRARY "SDL_EGL_LIBRARY"
2696
2728#define SDL_HINT_OPENGL_ES_DRIVER "SDL_OPENGL_ES_DRIVER"
2729
2740#define SDL_HINT_OPENVR_LIBRARY "SDL_OPENVR_LIBRARY"
2741
2759#define SDL_HINT_ORIENTATIONS "SDL_ORIENTATIONS"
2760
2779#define SDL_HINT_POLL_SENTINEL "SDL_POLL_SENTINEL"
2780
2797#define SDL_HINT_PREFERRED_LOCALES "SDL_PREFERRED_LOCALES"
2798
2820#define SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE "SDL_QUIT_ON_LAST_WINDOW_CLOSE"
2821
2835#define SDL_HINT_RENDER_DIRECT3D_THREADSAFE "SDL_RENDER_DIRECT3D_THREADSAFE"
2836
2851#define SDL_HINT_RENDER_DIRECT3D11_DEBUG "SDL_RENDER_DIRECT3D11_DEBUG"
2852
2865#define SDL_HINT_RENDER_VULKAN_DEBUG "SDL_RENDER_VULKAN_DEBUG"
2866
2879#define SDL_HINT_RENDER_GPU_DEBUG "SDL_RENDER_GPU_DEBUG"
2880
2894#define SDL_HINT_RENDER_GPU_LOW_POWER "SDL_RENDER_GPU_LOW_POWER"
2895
2927#define SDL_HINT_RENDER_DRIVER "SDL_RENDER_DRIVER"
2928
2945#define SDL_HINT_RENDER_LINE_METHOD "SDL_RENDER_LINE_METHOD"
2946
2960#define SDL_HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICE \
2961 "SDL_RENDER_METAL_PREFER_LOW_POWER_DEVICE"
2962
2978#define SDL_HINT_RENDER_VSYNC "SDL_RENDER_VSYNC"
2979
2995#define SDL_HINT_RETURN_KEY_HIDES_IME "SDL_RETURN_KEY_HIDES_IME"
2996
3014#define SDL_HINT_ROG_GAMEPAD_MICE "SDL_ROG_GAMEPAD_MICE"
3015
3034#define SDL_HINT_ROG_GAMEPAD_MICE_EXCLUDED "SDL_ROG_GAMEPAD_MICE_EXCLUDED"
3035
3046#define SDL_HINT_RPI_VIDEO_LAYER "SDL_RPI_VIDEO_LAYER"
3047
3068#define SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME \
3069 "SDL_SCREENSAVER_INHIBIT_ACTIVITY_NAME"
3070
3088#define SDL_HINT_SHUTDOWN_DBUS_ON_QUIT "SDL_SHUTDOWN_DBUS_ON_QUIT"
3089
3102#define SDL_HINT_STORAGE_TITLE_DRIVER "SDL_STORAGE_TITLE_DRIVER"
3103
3116#define SDL_HINT_STORAGE_USER_DRIVER "SDL_STORAGE_USER_DRIVER"
3117
3143#define SDL_HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL \
3144 "SDL_THREAD_FORCE_REALTIME_TIME_CRITICAL"
3145
3167#define SDL_HINT_THREAD_PRIORITY_POLICY "SDL_THREAD_PRIORITY_POLICY"
3168
3187#define SDL_HINT_TIMER_RESOLUTION "SDL_TIMER_RESOLUTION"
3188
3202#define SDL_HINT_TOUCH_MOUSE_EVENTS "SDL_TOUCH_MOUSE_EVENTS"
3203
3221#define SDL_HINT_TRACKPAD_IS_TOUCH_ONLY "SDL_TRACKPAD_IS_TOUCH_ONLY"
3222
3236#define SDL_HINT_TV_REMOTE_AS_JOYSTICK "SDL_TV_REMOTE_AS_JOYSTICK"
3237
3250#define SDL_HINT_VIDEO_ALLOW_SCREENSAVER "SDL_VIDEO_ALLOW_SCREENSAVER"
3251
3275#define SDL_HINT_VIDEO_DISPLAY_PRIORITY "SDL_VIDEO_DISPLAY_PRIORITY"
3276
3298#define SDL_HINT_VIDEO_DOUBLE_BUFFER "SDL_VIDEO_DOUBLE_BUFFER"
3299
3316#define SDL_HINT_VIDEO_DRIVER "SDL_VIDEO_DRIVER"
3317
3329#define SDL_HINT_VIDEO_DUMMY_SAVE_FRAMES "SDL_VIDEO_DUMMY_SAVE_FRAMES"
3330
3343#define SDL_HINT_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK \
3344 "SDL_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK"
3345
3359#define SDL_HINT_VIDEO_FORCE_EGL "SDL_VIDEO_FORCE_EGL"
3360
3377#define SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES "SDL_VIDEO_MAC_FULLSCREEN_SPACES"
3378
3396#define SDL_HINT_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY \
3397 "SDL_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY"
3398
3413#define SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS"
3414
3430#define SDL_HINT_VIDEO_OFFSCREEN_SAVE_FRAMES "SDL_VIDEO_OFFSCREEN_SAVE_FRAMES"
3431
3456#define SDL_HINT_VIDEO_SYNC_WINDOW_OPERATIONS "SDL_VIDEO_SYNC_WINDOW_OPERATIONS"
3457
3473#define SDL_HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR "SDL_VIDEO_WAYLAND_ALLOW_LIBDECOR"
3474
3492#define SDL_HINT_VIDEO_WAYLAND_MODE_EMULATION "SDL_VIDEO_WAYLAND_MODE_EMULATION"
3493
3514#define SDL_HINT_VIDEO_WAYLAND_MODE_SCALING "SDL_VIDEO_WAYLAND_MODE_SCALING"
3515
3534#define SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR \
3535 "SDL_VIDEO_WAYLAND_PREFER_LIBDECOR"
3536
3574#define SDL_HINT_VIDEO_WAYLAND_SCALE_TO_DISPLAY \
3575 "SDL_VIDEO_WAYLAND_SCALE_TO_DISPLAY"
3576
3597#define SDL_HINT_VIDEO_WIN_D3DCOMPILER "SDL_VIDEO_WIN_D3DCOMPILER"
3598
3599#if SDL_VERSION_ATLEAST(3, 2, 10)
3600
3615#define SDL_HINT_VIDEO_X11_EXTERNAL_WINDOW_INPUT \
3616 "SDL_VIDEO_X11_EXTERNAL_WINDOW_INPUT"
3617
3618#endif // SDL_VERSION_ATLEAST(3, 2, 10)
3619
3633#define SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR \
3634 "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR"
3635
3653#define SDL_HINT_VIDEO_X11_NET_WM_PING "SDL_VIDEO_X11_NET_WM_PING"
3654
3667#define SDL_HINT_VIDEO_X11_NODIRECTCOLOR "SDL_VIDEO_X11_NODIRECTCOLOR"
3668
3678#define SDL_HINT_VIDEO_X11_SCALING_FACTOR "SDL_VIDEO_X11_SCALING_FACTOR"
3679
3687#define SDL_HINT_VIDEO_X11_VISUALID "SDL_VIDEO_X11_VISUALID"
3688
3696#define SDL_HINT_VIDEO_X11_WINDOW_VISUALID "SDL_VIDEO_X11_WINDOW_VISUALID"
3697
3710#define SDL_HINT_VIDEO_X11_XRANDR "SDL_VIDEO_X11_XRANDR"
3711
3725#define SDL_HINT_VITA_ENABLE_BACK_TOUCH "SDL_VITA_ENABLE_BACK_TOUCH"
3726
3740#define SDL_HINT_VITA_ENABLE_FRONT_TOUCH "SDL_VITA_ENABLE_FRONT_TOUCH"
3741
3751#define SDL_HINT_VITA_MODULE_PATH "SDL_VITA_MODULE_PATH"
3752
3764#define SDL_HINT_VITA_PVR_INIT "SDL_VITA_PVR_INIT"
3765
3779#define SDL_HINT_VITA_RESOLUTION "SDL_VITA_RESOLUTION"
3780
3794#define SDL_HINT_VITA_PVR_OPENGL "SDL_VITA_PVR_OPENGL"
3795
3809#define SDL_HINT_VITA_TOUCH_MOUSE_DEVICE "SDL_VITA_TOUCH_MOUSE_DEVICE"
3810
3820#define SDL_HINT_VULKAN_DISPLAY "SDL_VULKAN_DISPLAY"
3821
3830#define SDL_HINT_VULKAN_LIBRARY "SDL_VULKAN_LIBRARY"
3831
3861#define SDL_HINT_WAVE_FACT_CHUNK "SDL_WAVE_FACT_CHUNK"
3862
3873#define SDL_HINT_WAVE_CHUNK_LIMIT "SDL_WAVE_CHUNK_LIMIT"
3874
3901#define SDL_HINT_WAVE_RIFF_CHUNK_SIZE "SDL_WAVE_RIFF_CHUNK_SIZE"
3902
3921#define SDL_HINT_WAVE_TRUNCATION "SDL_WAVE_TRUNCATION"
3922
3937#define SDL_HINT_WINDOW_ACTIVATE_WHEN_RAISED "SDL_WINDOW_ACTIVATE_WHEN_RAISED"
3938
3953#define SDL_HINT_WINDOW_ACTIVATE_WHEN_SHOWN "SDL_WINDOW_ACTIVATE_WHEN_SHOWN"
3954
3971#define SDL_HINT_WINDOW_ALLOW_TOPMOST "SDL_WINDOW_ALLOW_TOPMOST"
3972
3987#define SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN \
3988 "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN"
3989
4003#define SDL_HINT_WINDOWS_CLOSE_ON_ALT_F4 "SDL_WINDOWS_CLOSE_ON_ALT_F4"
4004
4031#define SDL_HINT_WINDOWS_ENABLE_MENU_MNEMONICS \
4032 "SDL_WINDOWS_ENABLE_MENU_MNEMONICS"
4033
4046#define SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP "SDL_WINDOWS_ENABLE_MESSAGELOOP"
4047
4062#define SDL_HINT_WINDOWS_GAMEINPUT "SDL_WINDOWS_GAMEINPUT"
4063
4076#define SDL_HINT_WINDOWS_RAW_KEYBOARD "SDL_WINDOWS_RAW_KEYBOARD"
4077
4097#define SDL_HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL \
4098 "SDL_WINDOWS_FORCE_SEMAPHORE_KERNEL"
4099
4108#define SDL_HINT_WINDOWS_INTRESOURCE_ICON "SDL_WINDOWS_INTRESOURCE_ICON"
4109
4118#define SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL \
4119 "SDL_WINDOWS_INTRESOURCE_ICON_SMALL"
4120
4147#define SDL_HINT_WINDOWS_USE_D3D9EX "SDL_WINDOWS_USE_D3D9EX"
4148
4164#define SDL_HINT_WINDOWS_ERASE_BACKGROUND_MODE \
4165 "SDL_WINDOWS_ERASE_BACKGROUND_MODE"
4166
4186#define SDL_HINT_X11_FORCE_OVERRIDE_REDIRECT "SDL_X11_FORCE_OVERRIDE_REDIRECT"
4187
4202#define SDL_HINT_X11_WINDOW_TYPE "SDL_X11_WINDOW_TYPE"
4203
4213#define SDL_HINT_X11_XCB_LIBRARY "SDL_X11_XCB_LIBRARY"
4214
4227#define SDL_HINT_XINPUT_ENABLED "SDL_XINPUT_ENABLED"
4228
4250#define SDL_HINT_ASSERT "SDL_ASSERT"
4251
4265#define SDL_HINT_PEN_MOUSE_EVENTS "SDL_PEN_MOUSE_EVENTS"
4266
4280#define SDL_HINT_PEN_TOUCH_EVENTS "SDL_PEN_TOUCH_EVENTS"
4281
4282#endif // SDL3PP_DOC
4283
4289using HintPriority = SDL_HintPriority;
4290
4291constexpr HintPriority HINT_DEFAULT = SDL_HINT_DEFAULT;
4292
4293constexpr HintPriority HINT_NORMAL = SDL_HINT_NORMAL;
4294
4295constexpr HintPriority HINT_OVERRIDE = SDL_HINT_OVERRIDE;
4296
4318 StringParam value,
4319 HintPriority priority)
4320{
4321 CheckError(SDL_SetHintWithPriority(name, value, priority));
4322}
4323
4343inline void SetHint(StringParam name, StringParam value)
4344{
4345 CheckError(SDL_SetHint(name, value));
4346}
4347
4365inline void ResetHint(StringParam name) { CheckError(SDL_ResetHint(name)); }
4366
4380inline void ResetHints() { SDL_ResetHints(); }
4381
4400inline const char* GetHint(StringParam name) { return SDL_GetHint(name); }
4401
4417inline bool GetHintBoolean(StringParam name, bool default_value)
4418{
4419 return SDL_GetHintBoolean(name, default_value);
4420}
4421
4441using HintCallback = SDL_HintCallback;
4442
4463using HintCB = std::function<void(const char*, const char*, const char*)>;
4464
4467{
4468 using CallbackHandle::CallbackHandle;
4469};
4470
4490 HintCallback callback,
4491 void* userdata)
4492{
4493 CheckError(SDL_AddHintCallback(name, callback, userdata));
4494}
4495
4515{
4516 using Wrapper = CallbackWrapper<HintCB>;
4517 auto cb = Wrapper::Wrap(std::move(callback));
4518 if (!SDL_AddHintCallback(name, &Wrapper::Call, cb)) {
4519 Wrapper::release(cb);
4520 throw Error{};
4521 }
4522 return HintCallbackHandle{cb};
4523}
4524
4540 HintCallback callback,
4541 void* userdata)
4542{
4543 SDL_RemoveHintCallback(name, callback, userdata);
4544}
4545
4559{
4561}
4562
4564
4565} // namespace SDL
4566
4567#endif /* SDL3PP_HINTS_H_ */
A typesafe handle for callback.
Definition: SDL3pp_callbackWrapper.h:21
An exception that returns GetError()
Definition: SDL3pp_error.h:164
Helpers to use C++ strings parameters.
Definition: SDL3pp_strings.h:43
constexpr void CheckError(bool result)
Check and throw if returned value from SDL is an error.
Definition: SDL3pp_error.h:197
void SetHint(StringParam name, StringParam value)
Set a hint with normal priority.
Definition: SDL3pp_hints.h:4343
void AddHintCallback(StringParam name, HintCallback callback, void *userdata)
Add a function to watch a particular hint.
Definition: SDL3pp_hints.h:4489
constexpr HintPriority HINT_NORMAL
NORMAL.
Definition: SDL3pp_hints.h:4293
constexpr HintPriority HINT_OVERRIDE
OVERRIDE.
Definition: SDL3pp_hints.h:4295
bool GetHintBoolean(StringParam name, bool default_value)
Get the boolean value of a hint variable.
Definition: SDL3pp_hints.h:4417
void SetHintWithPriority(StringParam name, StringParam value, HintPriority priority)
Set a hint with a specific priority.
Definition: SDL3pp_hints.h:4317
std::function< void(const char *, const char *, const char *)> HintCB
A callback used to send notifications of hint value changes.
Definition: SDL3pp_hints.h:4463
void RemoveHintCallback(StringParam name, HintCallback callback, void *userdata)
Remove a function watching a particular hint.
Definition: SDL3pp_hints.h:4539
const char * GetHint(StringParam name)
Get the value of a hint.
Definition: SDL3pp_hints.h:4400
void ResetHint(StringParam name)
Reset a hint to the default value.
Definition: SDL3pp_hints.h:4365
void ResetHints()
Reset all hints to the default values.
Definition: SDL3pp_hints.h:4380
SDL_HintPriority HintPriority
An enumeration of hint priorities.
Definition: SDL3pp_hints.h:4289
constexpr HintPriority HINT_DEFAULT
DEFAULT.
Definition: SDL3pp_hints.h:4291
SDL_HintCallback HintCallback
A callback used to send notifications of hint value changes.
Definition: SDL3pp_hints.h:4441
Main include header for the SDL3pp library.
Definition: SDL3pp_callbackWrapper.h:66
Handle returned by AddHintCallback()
Definition: SDL3pp_hints.h:4467