Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| 91a55a02 | 2021-08-13 23:59:39 | Relative mouse motion is delivered to the window with keyboard focus This was the original intent (note SDL_UpdateWindowGrab() in SDL_OnWindowFocusGained() and SDL_OnWindowFocusLost()) and fixes a bug where relative motion unexpectedly stops if the task bar is covering the bottom of the game window and the mouse happens to move over it while relative mode is enabled. Another alternative would be to confine the mouse when relative mode is enabled, but that generates mouse motion which would need to be ignored, and it's possible for the user moving the mouse to combine with the mouse moving into the confined area so you can't easily tell whether to ignore the mouse motion. See https://github.com/libsdl-org/SDL/issues/4165 for a case where this is problematic. | ||
| 69477151 | 2021-08-13 23:45:01 | Get the window size for the window receiving the mouse motion This is the mouse focus except in the case where relative motion is enabled and the mouse is over a window floating on top of the application window (e.g. the taskbar) | ||
| 6a1e1ed9 | 2021-08-13 23:36:13 | Relative mouse mode grab is based on the window with the input focus This fixes restoring the cursor clip rectangle after the mouse has moved off of the window. Also try to better synchronize cursor visibility with mouse position changes when changing relative mode. This doesn't work perfectly, but it seems to improve things on Windows. | ||
| e42e9a12 | 2021-08-13 20:48:56 | Fixed build | ||
| 441fbcaa | 2021-08-13 20:48:54 | Added HIDAPI support for the Xbox Adaptive Controller | ||
| b5e5c1ef | 2021-08-13 17:53:39 | Added Ctrl-T to toggle topmost mode in test programs | ||
| 4d9efcb5 | 2021-08-13 11:52:25 | Fixed flag test for boolean correctness | ||
| b28ed028 | 2021-08-13 11:39:41 | Don't warp the mouse for relative mode when the window doesn't have focus | ||
| 629e9f82 | 2021-08-13 11:06:43 | Fixed return value of SDL_GetGrabbedWindow() when we have an internal grab because of mouse relative mode | ||
| 6aa1498b | 2021-08-13 11:03:19 | This assert wasn't correct, we set the internal grab for mouse relative mode as well. | ||
| 907943a2 | 2021-08-12 17:51:08 | Added support for the Xbox One S Controller with 5.x series firmware | ||
| 1e921352 | 2021-08-13 07:58:48 | Improve portability of SDL_Convert51ToStereo_AVX Don't rely on checking __clang_major__ since it is not comparable between different vendors. Don't use "#pragma clang attribute" since it is only available in relatively recent versions, there's no obvious way to check if it's supported, and just using __attribute__ directly (for gcc as well) results in simpler code anyway. | ||
| 7aec0b90 | 2021-08-13 01:56:56 | SDL_hidapi_xboxone.c: fix bogus 'uninitialized' warning from clang. The last 'size == 50' check is always true anyway. | ||
| cec5a129 | 2021-08-12 15:49:33 | Fixed libudev hotplug notifications in the HIDAPI driver | ||
| 6eb4ebb5 | 2021-08-12 15:49:33 | Simplified the HIDAPI Xbox One controller initialization | ||
| 25cd749a | 2021-08-12 15:12:04 | x11: Don't change mode if we are already in the correct mode If we are already in the desired mode, changing it is a no-op at best, and harmful at worst: on Xwayland, it sometimes happens that we disable the crtc and cannot re-enable it. Resolves: https://github.com/libsdl-org/SDL/issues/4630 Signed-off-by: Simon McVittie <smcv@collabora.com> | ||
| 584b89ab | 2021-08-12 08:17:10 | Added support for the color LED on the Xbox Elite Series 2 controller | ||
| 64882b24 | 2021-08-12 08:17:08 | Added support for the Xbox One Elite 2 Controller with 5.x series firmware | ||
| ed6eb07e | 2021-08-12 01:40:50 | SDL_wasapi.c: fixed build against older SDKs. | ||
| 68ca35c3 | 2021-08-11 21:40:46 | wayland: fix memleak in output listener | ||
| e9179314 | 2021-08-11 21:27:42 | joystick/linux: fix memleaks; streamline joylist item removal | ||
| 44a76710 | 2021-08-11 12:55:50 | Don't disable clang avx instrinsics on win32 if __AVX__ is defined. C.f.: https://github.com/libsdl-org/SDL/issues/4533 | ||
| ae7ee2a5 | 2021-08-11 09:59:43 | wayland: Ignore stateless/sizeless configs when starting in fullscreen mode | ||
| ac32c522 | 2021-08-10 18:11:09 | Try using the built-in WASAPI audio rate conversion Fixes https://github.com/libsdl-org/SDL/issues/4608 | ||
| cb1e20b0 | 2021-08-10 17:50:17 | Added KMOD_SCROLL to track the scroll lock state Fixes https://github.com/libsdl-org/SDL/issues/4566 | ||
| f5794f9e | 2021-08-10 15:17:59 | Added SDL_SetTextureUserData() and SDL_GetTextureUserData() to associate a user-specified pointer with an SDL texture | ||
| a0af7ce7 | 2021-08-10 15:05:49 | OSS is no longer the preferred audio backend on modern UNIX systems Fixes https://github.com/libsdl-org/SDL/issues/4207 | ||
| 3f6ebfff | 2021-08-10 15:02:36 | Updated to version 2.0.17 for development | ||
| 016b02f2 | 2021-08-10 12:16:55 | Fixed build, C89 doesn't allow non-constant static initializers | ||
| 77c8d111 | 2021-08-10 20:55:50 | configuration updates for dlopen: - cmake, configure (CheckDLOPEN): --enable-sdl-dlopen is now history.. detach the dl api discovery from SDL_LOADSO_DLOPEN functionality. define HAVE_DLOPEN. also define DYNAPI_NEEDS_DLOPEN (CheckDLOPEN is called only for relevant platforms.) - update SDL_config.in and SDL_config.cmake accordingly. - SDL_dynapi.h: set SDL_DYNAMIC_API to 0 if DYNAPI_NEEDS_DLOPEN is defined, but HAVE_DLOPEN is not. - pthread/SDL_systhread.c: conditionalize dl api use to HAVE_DLOPEN - SDL_x11opengl.c, SDL_DirectFB_opengl.c, SDL_naclopengles.c: rely on HAVE_DLOPEN, not SDL_LOADSO_DLOPEN. - SDL_config_android.h, SDL_config_iphoneos.h, SDL_config_macosx.h, SDL_config_pandora.h, and SDL_config_wiz.h: define HAVE_DLOPEN. Closes: https://github.com/libsdl-org/SDL/pull/4351 | ||
| cb0fd05e | 2021-08-07 22:41:54 | Adding a clarifying comment in case a programmer unfamiliar with UTF-16 and UTF-32's relationship chances upon the code. | ||
| 34701129 | 2021-08-07 20:51:49 | Optimizing the implementation. | ||
| 712e0d1f | 2021-08-07 16:23:15 | Fixing WM_CHAR event handling for Unicode characters outside the Basic Multilingual Plane. | ||
| fcfd19db | 2021-08-10 12:02:17 | Added support for SDL_RENDERER_PRESENTVSYNC to the software renderer This fixes https://github.com/libsdl-org/SDL/issues/4612 | ||
| 25f9ed87 | 2021-08-10 13:10:36 | audio: Fix false positives in driver name comparison Without this change, driver names don't get matched correctly; for example "a" can get matched with "alsa" since it only checks whether the string matches up to the length of the requested driver name. | ||
| b3a989d0 | 2021-08-10 13:08:27 | video: Fix false positives in driver name comparison Without this change, driver names don't get matched correctly; for example "x" can get matched with "x11" since it only checks whether the string matches up to the length of the requested driver name. | ||
| de6ba40d | 2021-08-09 11:38:22 | Added support for the Flydigi Vader 2 controller in 2.4G Android mode | ||
| 3f440daa | 2021-08-09 10:40:36 | Added support for the Flydigi Vader 2 controller in Bluetooth mode | ||
| 6ae227d0 | 2021-08-08 23:27:08 | x11/wayland: fix screensaver suspension via D-Bus b08b1bde introduced a subtle bug. Despite not using D-Bus types directly, the code used the SDL_USE_LIBDBUS definition set by SDL_dbus.h to conditionally compile calls SDL_DBus_ScreensaverTickle() and SDL_DBus_ScreensaverInhibit(). As a result, it still compiled without SDL_dbus.h included, but screensaver suspension silently failed to work. The D-Bus stuff could probably use some tweaks to be harder to accidentally break, but for now just restore the header includes. | ||
| 2e6dac87 | 2021-08-09 01:47:42 | wayland: Add a hint to allow disabling libdecor use Useful for testing xdg-shell path with compositors like Weston. | ||
| 092a20d9 | 2021-08-08 16:47:34 | wayland: Avoid busy waiting for vsync | ||
| 791d9d3f | 2021-08-07 12:41:15 | Fixed DInput mapping for NVIDIA Virtual Gamepad | ||
| 7be970db | 2021-08-06 19:51:27 | wayland: Avoid setting floating width/height when re-entering fullscreen | ||
| bec78357 | 2021-08-06 14:20:55 | Better fix for compiling using clang on Windows This fixes https://github.com/libsdl-org/SDL/issues/4533 | ||
| a91ab883 | 2021-08-06 12:28:03 | Fixed building on Windows with cmake, ninja, and clang | ||
| dd683073 | 2021-08-06 15:13:14 | hidapi: Patched to compile on QNX. Fixes #4591. | ||
| cae7bd9b | 2021-08-06 12:01:24 | Don't use AVX with clang if the compiler isn't building with AVX instructions Fixes https://github.com/libsdl-org/SDL/issues/4533 | ||
| 10979d37 | 2021-08-05 12:42:03 | wayland: Always assume configure is wrong for non-resizable windows. Configure events from compositors have an extremely annoying habit of giving us completely bogus sizes, from all sorts of places. Thankfully, the protocol gives us the ability to completely ignore the width/height and just stick with what we know, so for all windows that are not meant to be resized, pretend we never even got the width/height at all, the compositor is required to respect our dimensions whether they match configure's suggestion or not. | ||
| 88674b4a | 2021-08-04 13:17:35 | Fixed build | ||
| c14813a8 | 2021-08-04 13:00:14 | Fixed spacing | ||
| 3cad447e | 2021-08-04 12:57:51 | Only update the window size if setting the display mode succeeded | ||
| 0eb6f791 | 2021-05-21 13:48:14 | SDL_SetWindowDisplayMode(): If already fullscreen, adjust window size Otherwise only the display resolution is changed, but the SDL window size (and for example the window-surface size) aren't adjusted accordingly and thus don't fill the whole screen. See #3313 | ||
| 72d81285 | 2021-05-19 18:47:56 | Improve SDL_CreateWindow() fullscreen support on Windows .. and maybe other platforms as well (though X11 was not affected)? The issue was that passing a higher resolution than the current desktop resolution to SDL_CreateWindow() with SDL_WINDOW_FULLSCREEN didn't switch to that resolution (even though it did switch to lower resolutions). When creating a fullscreen window, window->fullscreen wasn't even set at all (only zeroed out), setting it only happened if the user explicitly called SDL_SetWindowDisplayMode(). So without that, SDL_CreateWindow() -> SDL_UpdateFullscreenMode() -> SDL_GetWindowDisplayMode() used the resolution from window->windowed.w/h which were limited to the desktop size due to some weird combination of WIN_AdjustWindowRectWithStyle() and WIN_WindowProc() being called after a call to SetWindowPos(). fixes #3313 | ||
| 9fdb0645 | 2021-08-04 11:33:28 | Added support for the Joy-Con Charging Grip when SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS is enabled | ||
| d4839702 | 2021-08-04 13:30:12 | dbus: Wrap init in a spinlock. This prevents a race if two threads that need d-bus try to init it at the same time. Note that SDL_Init will likely handle this from a single thread at startup, but there are places outside of init where one might trigger D-Bus init, like setting thread priority (a common first thing for a new thread to do) resulting in SDL trying to use RTKit. Fixes #4587. | ||
| b08b1bde | 2021-08-03 22:50:58 | linux: remove d-bus lazy init dead code Lazy init in X11/Wayland is dead code since dbdbae4 | ||
| 5fc13fcb | 2021-08-04 07:00:17 | direct3d: Commit viewport state before clearing, attempt 2. This reintroduces the fix from 0e16ee8330606603, but just marks the viewport state as dirty after a clear that needs to expand the viewport to fill the render target, as we'll need to also reset the orthographic projection state elsewhere, and that won't happen if we clear the dirty flag here. Fixes #4210. (again.) (...sorry...!) | ||
| ed6ce5cc | 2021-08-04 02:34:09 | log: Fixed compiler warnings on 64-bit Visual Studio. | ||
| 7e88e772 | 2021-08-04 02:30:47 | winrt: Fixed incorrect code in a Windows Phone #ifdef. | ||
| 32f909f7 | 2021-08-03 13:30:57 | wayland: Remove redundant waylanddyn.h includes. All files including waylanddyn.h already include waylandvideo.h first. | ||
| 124405a0 | 2021-08-03 13:17:19 | wayland: Fix building without Vulkan support | ||
| 4077f7a2 | 2021-08-03 20:55:45 | Update the Renderer dpi_scale on SIZE_CHANGED event (fix #4580) The Renderer logical scaling code scales mouse coordinates, and needs to take the window DPI into account on HIGHDPI windows. However, the variable which tracks this, renderer->dpi_scale, is set once when the renderer is created, and then not updated. In the event that the window is moved to another screen, or the screen DPI otherwise changes, this will be outdates, and potentially the coordinates will be all wrong. So let's update the dpi_scale on the SIZE_CHANGED event: it's at least a possibility that this will be issued on some OSes when DPI changes, and it's otherwise already handled by SDL_Renderer's event filter. | ||
| 9b4884d5 | 2021-08-03 09:23:54 | Warn if you're building a partially functional RAWINPUT driver without device notifications | ||
| 886eb02e | 2021-08-03 03:16:35 | Fixed detection of Steam Virtual Gamepad with the WGI driver | ||
| 7c63e1d3 | 2021-08-03 01:52:02 | Added WGI mappings for the Amazon Luna and Google Stadia controllers | ||
| 99c8972b | 2021-08-03 01:39:07 | Added WGI mappings for PS4 and PS5 controllers | ||
| 2dfc92ca | 2021-08-03 01:33:35 | Added default mapping for WGI game controllers | ||
| 350ca0f9 | 2021-08-03 04:57:53 | winrt: Don't register orientation hint callback in startup code. SDL_AddHintCallback() uses SDL_malloc(), which means this would run before main(), so the app wouldn't be able to supply its own replacement SDL_malloc() implementation in time. This code was moved to under SDL_Init. Since the hint callback already makes efforts to not override the app manifest's orientation settings, this is safe to move until after pre-main() startup. Fixes #4449. | ||
| 834a84fa | 2021-08-03 05:02:32 | winrt: Don't use LoadLibraryA on WinRT. This removes the CM_Register_Notification code on WinRT. Note that this API _is_ available to UWP apps as of Windows 10.0.17763 (version 1809, released October 2018), according to: https://docs.microsoft.com/en-us/uwp/win32-and-com/win32-apis#apis-from-api-ms-win-devices-config-l1-1-1dll So it might be worth readding with some sort of preprocessor check for minimum targeted version, or whatever is appropriate for WinRT development. | ||
| 9d64e6b4 | 2021-08-03 00:29:33 | Revert "direct3d: Commit dirty viewport state before clearing." This reverts commit 0e16ee833060660318cc324cf99c9736f4d48499. | ||
| 993a5676 | 2021-08-03 00:14:15 | Only use the default Xbox mapping on Linux On Windows, this is already covered by XInput and is the wrong mapping if we try to use it with DirectInput/RAWINPUT/WGI controllers | ||
| 0e16ee83 | 2021-08-03 02:07:47 | direct3d: Commit dirty viewport state before clearing. Otherwise you might have set the viewport to the full size of the render target in SDL's API but this change hasn't been transmitted to Direct3D yet by the time we attempt to clear. Fixes #4210. | ||
| 7edc7d53 | 2021-08-02 22:44:38 | Added a mapping for the Steam Virtual Gamepad when it's detected in DirectInput mode | ||
| 7082fb04 | 2021-08-02 22:42:28 | wayland: Only dispatch on fullscreen set when the window is visible. Fixes hang-on-startup described in #4572. | ||
| 0f5b8a99 | 2021-08-02 19:48:31 | wayland: For libdecor, dispatch immediately after setting fullscreen Reference: #4578 | ||
| 02223501 | 2021-08-02 16:40:58 | Fixed crash if WGI didn't give us the name for a controller | ||
| 4562da62 | 2021-08-02 16:40:56 | wayland: Make libdecor configure match xdg_toplevel | ||
| 1fb1aa19 | 2021-08-02 12:57:28 | wayland: Keep the fullscreen check for maximize/restore events | ||
| 584673a5 | 2021-08-02 12:51:23 | wayland: Don't ignore configs for non-fullscreen, non-resizable windows. This was causing configure events to not inform SDL of window size changes, even when they were based on resizes that we fully expected. The result was fullscreen->windowed not working at all, because it would retain the desktop resolution instead of reverting to the floating size that it had before moving to fullscreen mode. Fixes Super Hexagon fullscreen toggling. | ||
| 25067298 | 2021-08-02 08:15:10 | wayland: Flush in SetWindowFullscreen The flush has been removed in e5f9fae034df8ca305241c5a666e7702fcf9958f. Unfortunately, even though ideally the flush shouldn't be necessary, our resize sequence isn't... well, perfect, and removing that flush causes tons of troubles. We're also still flushing in other paths where the window size can be changed by the compositor and where we may potentially have to obey that change, like in Wayland_MaximizeWindow. This also removes the hack introduced in 7f261d3b7667978ced93a4fdc6aec2380df3d87f, which introduces problems with protocol violations and seems to not be necessary when flushing. | ||
| ea28187c | 2021-08-02 08:07:23 | wayland: Hack surface resize into compliance with set_window_geometry We have issues with correct resize sequence and happen to commit old-sized buffers even after configure event for the new size has been already acknowledged. While the reason for that stays unknown, let's at least workaround the problem by faking window geometry into expected size. This does not fix visual glitch on e.g. fullscreen toggling, but having a split-second glitch is still a much better outcome than being terminated by the compositor for protocol violation. | ||
| b5210cac | 2021-08-02 13:47:32 | wayland: Initialize floating size at window creation This allows the windowed size to be restored for windows initially created already in non-floating state. | ||
| dab33844 | 2021-08-02 11:58:47 | wayland: Fix a warning in handle_configure_xdg_toplevel | ||
| 754aa2d3 | 2021-08-02 11:55:02 | Mostly revert cfcdfb7be9f5c97a51ddef9ad3677a604856266b. This was causing window changes to completely break, resulting in broken decorations and bizarre frame timing, I don't know what exactly it's doing but it's not good. Kept the libdecor_frame_is_floating logic, at least. | ||
| 8803589f | 2021-08-02 12:05:06 | wayland: Avoid redundant SetWindowBordered for libdecor | ||
| b4c4060a | 2021-08-02 04:52:25 | wayland: Clean up Wayland_HandlePendingResize Commit 871c11191bfc7214061a3da37c112522a102ddf5 removed delayed resize handling, but it left the whole structure untouched that now became unnecessary. To help with code clarity, get rid of the structure where pending resize state used to be stored and pass all the data directly to Wayland_HandlePendingResize (now renamed to Wayland_HandleResize, since it's not "pending" anymore but applied immediately) | ||
| 9bb24ad0 | 2021-08-02 05:49:35 | wayland: Always call Wayland_SetWindowBordered when showing the window Otherwise our windows have no window decoration on compositors that support xdg-decoration-unstable-v1, but default to client-side mode. Contrary to what the comment was stating, there is nothing in the protocol that would make redundant calls to zxdg_toplevel_decoration_v1::set_mode problematic. | ||
| cfcdfb7b | 2021-08-01 18:14:53 | libdecor: use same fullscreen/maximised restore logic as for xdg-toplevel | ||
| 42452f8c | 2021-08-01 13:51:30 | wayland: store and restore floating states Some Wayland compositors send (0,0) as "suggested" configure event sizes to indicate that the client has to decide on its own which sizes to used. This is commonly done when restoring from maximised, fullscreen or tiles states to fullscreen. We now store the last known floating states in a new set of variables and restore them when we receive such a (0,0) configure event. | ||
| d4e1b497 | 2021-08-01 09:15:26 | unix: OpenURL: Move unsetenv above vfork From the vfork manpage: > The vfork() function has the same effect as fork(2), except that > the behavior is undefined if the process created by vfork() either > modifies any data other than a variable of type pid_t used to store > the return value from vfork(), or returns from the function in which > vfork() was called, or calls any other function before successfully > calling _exit(2) or one of the exec(3) family of functions. unsetenv is still called inside a child process, so it does not influence the rest of the application. | ||
| 9b7b9287 | 2021-07-31 23:28:41 | Clear LD_PRELOAD so Chrome opens correctly when this application is launched by Steam This fixes https://github.com/libsdl-org/SDL/issues/4565 | ||
| 54aea244 | 2021-08-01 05:36:12 | wayland: Disable key repeat when repeat rate equals 0 This fixes a crash on pressing keyboard button when compositor sends zero as repeat rate, indicating that key repeat should be disabled. From Wayland protocol spec: > Negative values for either rate or delay are illegal. A rate of zero > will disable any repeating (regardless of the value of delay). | ||
| b033cd0d | 2021-07-31 16:01:48 | Fixed XSync sequence to match other cases where we set the X11 error handler | ||
| 4c7825f6 | 2021-07-31 18:27:14 | x11: XSync while trying to catch XRRSetScreenSize error. Reference issue #4561 | ||
| cb1fd30e | 2021-07-31 13:28:54 | Updated to version 2.0.16 for release | ||
| d0effadf | 2021-07-31 15:56:30 | x11: Don't let XRRSetScreenSize fire a BadMatch error. This is a workaround and not a proper fix, but this is possibly complicated, and possibly a corner case, so this will do for 2.0.16, if not the foreseeable future. Reference issue #4561 | ||
| 3a4b217d | 2021-07-31 12:44:29 | Allow defining SDL_MAIN_HANDLED on iOS if you're using another runtime that provides an application delegate | ||
| deed21a8 | 2021-07-31 12:44:11 | Removed useless forward declaration | ||
| e5594e66 | 2021-07-30 16:03:01 | wayland: Prefer our SSD implementation if available | ||
| 2d0075ef | 2021-07-30 18:23:43 | Updated comments for third party Nintendo Switch controllers |