SDL/include
David Gow ad29875ee6 Wayland: Emulate mouse warp using relative mouse mode
Several games (including Source and GoldSrc games, and Bioshock
Infinite) attempt to "fake" relative mouse mode by repeatedly warping
the cursor to the centre of the screen. Since mouse warping is not
supported under Wayland, the viewport ends up "stuck" in a rectangular
area.

Detect this case (mouse warp while the cursor is not visible), and
enable relative mouse mode, which tracks the cursor position
independently, and so can Warp successfully.

This is behind the SDL_HINT_VIDEO_WAYLAND_EMULATE_MOUSE_WARP hint, which
is enabled by default, unless the application enables relative mouse
mode itself using SDL_SetRelativeMouseMode(SDL_TRUE).

Note that there is a behavoural difference, in that relative mouse mode
typically doesn't take mouse accelleration into account, but the
repeated-warping technique does, so mouse movement can seem very slow
with this (unless the game has its own mouse accelleration option, such
as in Portal 2).
2022-10-03 19:11:18 -07:00
..
SDL.h Add SDL_guid.h to the global SDL header 2022-07-25 19:53:04 -07:00
SDL_assert.h Check if GNC is defined before checking its value to solve warns in msvc 2022-07-03 00:56:09 -07:00
SDL_atomic.h Use __ARM_ARCH instead of __ARM_ARCH__ 2022-08-19 13:15:28 -07:00
SDL_audio.h audio: Headers said 5 channel is quad+center, but it's 4.1. 2022-07-20 18:41:53 -04:00
SDL_bits.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_blendmode.h direct3d: Implement missing blend operations. 2022-03-27 09:14:07 -04:00
SDL_clipboard.h Sync SDL wiki -> header 2022-09-14 16:29:16 +00:00
SDL_config.h Xbox GDKX support (#5869) 2022-07-01 13:59:14 -07:00
SDL_config.h.cmake Assume that stdint.h is available on Windows with compilers other than MSVC <= 2008 2022-09-05 09:01:31 -07:00
SDL_config.h.in Fixed building with libusb not dynamicaly loaded 2022-09-01 11:30:02 -07:00
SDL_config_android.h add SDL_bsearch 2022-04-26 04:03:25 +03:00
SDL_config_emscripten.h add SDL_bsearch 2022-04-26 04:03:25 +03:00
SDL_config_iphoneos.h add SDL_bsearch 2022-04-26 04:03:25 +03:00
SDL_config_macosx.h Remove unused SDL_ASSEMBLY_ROUTINES define 2022-05-12 14:37:00 +03:00
SDL_config_minimal.h Assume that stdint.h is available on Windows with compilers other than MSVC <= 2008 2022-09-05 09:01:31 -07:00
SDL_config_ngage.h N-Gage port: add changes from code reviews, overall cleanup (#5618) 2022-05-11 09:31:34 -07:00
SDL_config_os2.h updated os2 config file after commit 3f89d1704d 2022-09-01 21:56:50 +03:00
SDL_config_pandora.h add SDL_bsearch 2022-04-26 04:03:25 +03:00
SDL_config_windows.h Assume that stdint.h is available on Windows with compilers other than MSVC <= 2008 2022-09-05 09:01:31 -07:00
SDL_config_wingdk.h Assume that stdint.h is available on Windows with compilers other than MSVC <= 2008 2022-09-05 09:01:31 -07:00
SDL_config_winrt.h Assume that stdint.h is available on Windows with compilers other than MSVC <= 2008 2022-09-05 09:01:31 -07:00
SDL_config_xbox.h Assume that stdint.h is available on Windows with compilers other than MSVC <= 2008 2022-09-05 09:01:31 -07:00
SDL_copying.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_cpuinfo.h Sync SDL wiki -> header 2022-07-29 13:24:05 +00:00
SDL_egl.h Updated to the latest version of OpenGL and Vulkan headers from the Khronos registry 2022-09-14 09:14:47 -07:00
SDL_endian.h Applied DragonFly BSD patch 2022-07-30 16:32:21 -07:00
SDL_error.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_events.h Added microsecond timestamp to sensor values for PS4 and PS5 controllers using the HIDAPI driver 2022-09-27 09:56:49 -07:00
SDL_filesystem.h Fixed typo in description 2022-07-11 08:44:49 -07:00
SDL_gamecontroller.h Sync SDL wiki -> header 2022-09-27 16:57:17 +00:00
SDL_gesture.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_guid.h Sync wiki -> header 2022-06-05 00:24:04 +00:00
SDL_haptic.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_hidapi.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_hints.h Wayland: Emulate mouse warp using relative mouse mode 2022-10-03 19:11:18 -07:00
SDL_joystick.h Fixed documentation to match function parameter 2022-08-31 15:04:12 -07:00
SDL_keyboard.h Exposed SDL_ResetKeyboard() as a public function 2022-07-11 09:49:00 -07:00
SDL_keycode.h Add SDL_SCANCODE_CALL and SDL_SCANCODE_ENDCALL 2022-05-10 16:12:10 -07:00
SDL_loadso.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_locale.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_log.h Document that SDL_MAX_LOG_MESSAGE is no longer meaningful 2022-04-29 11:28:59 -07:00
SDL_main.h Add a way to avoid IOP reset 2022-08-08 08:32:38 -07:00
SDL_messagebox.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_metal.h Sync wiki -> header 2022-03-27 16:49:05 +00:00
SDL_misc.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_mouse.h Sync SDL wiki -> header 2022-08-11 21:11:11 +00:00
SDL_mutex.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_name.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_opengl.h Removed obsolete extension definitions 2022-09-15 06:19:18 -07:00
SDL_opengl_glext.h fix permissions of SDL_opengl_glext.h 2022-09-15 11:55:04 +03:00
SDL_opengles.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_opengles2.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_opengles2_gl2.h Updated to the latest version of OpenGL and Vulkan headers from the Khronos registry 2022-09-14 09:14:47 -07:00
SDL_opengles2_gl2ext.h Updated to the latest version of OpenGL and Vulkan headers from the Khronos registry 2022-09-14 09:14:47 -07:00
SDL_opengles2_gl2platform.h Updated to the latest version of OpenGL and Vulkan headers from the Khronos registry 2022-09-14 09:14:47 -07:00
SDL_opengles2_khrplatform.h Updated to the latest version of OpenGL and Vulkan headers from the Khronos registry 2022-09-14 09:14:47 -07:00
SDL_pixels.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_platform.h Xbox GDKX support (#5869) 2022-07-01 13:59:14 -07:00
SDL_power.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_quit.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_rect.h Avoid unintended float -> double conversion in SDL_FRectEqualsEpsilon 2022-05-19 11:47:03 -07:00
SDL_render.h Sync SDL wiki -> header 2022-08-21 14:05:04 +00:00
SDL_revision.h The revision defaults to the empty string 2021-02-12 08:54:08 -08:00
SDL_revision.h.cmake cmake: Retrieve the git revision on platforms without bash 2021-09-09 22:34:42 -04:00
SDL_rwops.h Windows GDK Support (#5830) 2022-06-27 10:19:39 -07:00
SDL_scancode.h Add SDL_SCANCODE_CALL and SDL_SCANCODE_ENDCALL 2022-05-10 16:12:10 -07:00
SDL_sensor.h Sync SDL wiki -> header 2022-09-27 16:57:17 +00:00
SDL_shape.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_stdinc.h Always define SDL_COMPILE_TIME_ASSERT as static_assert() in C++ 2022-08-18 16:06:42 -07:00
SDL_surface.h SDL_Surface: don't implicitly declare struct SDL_BlitMap. 2022-06-20 18:31:39 -04:00
SDL_system.h Sync SDL wiki -> header 2022-06-27 17:20:12 +00:00
SDL_syswm.h wayland: Add support for TOOLTIP/POPUP_MENU 2022-04-18 12:31:02 -04:00
SDL_test.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_test_assert.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_test_common.h Added a command line option `--info event_motion` to show mouse and finger motion events 2022-07-29 20:37:38 -07:00
SDL_test_compare.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_test_crc32.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_test_font.h Removed comment text that looks like doxygen commands 2022-07-01 14:04:07 -07:00
SDL_test_fuzzer.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_test_harness.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_test_images.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_test_log.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_test_md5.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_test_memory.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_test_random.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_thread.h Windows GDK Support (#5830) 2022-06-27 10:19:39 -07:00
SDL_timer.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_touch.h Sync wiki -> header 2022-02-08 10:37:04 +00:00
SDL_types.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_version.h Updated to version 2.25.0 for development 2022-08-19 09:38:42 -07:00
SDL_video.h Adding SDL_GetWindowSizeInPixels for window size in pixels (#6112) 2022-08-24 11:25:13 -07:00
SDL_vulkan.h Sync wiki -> header 2021-10-27 01:36:05 +00:00
begin_code.h Check if GNC is defined before checking its value to solve warns in msvc 2022-07-03 00:56:09 -07:00
close_code.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00