Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| 773e1ba1 | 2021-08-08 11:00:07 | testvulkan: Clamp the drawable size to the allowed range SDL_Vulkan_GetDrawableSize() doesn't always return a size which is within the Vulkan swapchain's allowed image extent range. (This happens on X11 a lot when resizing, which is bug #3287) Clamp the value we get back from SDL_Vulkan_GetDrawableSize() to this range. Given the range usually is just a single value, this is almost always equivalent to just using the min or max image extent, but this seems logically most correct. | ||
| 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 | ||
| cdac61ff | 2021-08-06 12:00:53 | Fixed typo | ||
| eec41d25 | 2021-08-06 11:30:22 | Add info on how to avoid the "Prevented in-tree build" message with CMake | ||
| ac20167e | 2021-08-06 14:08:50 | configure: Fixes to make SDL link as C++ on Haiku. Fixes #4590. | ||
| 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. | ||
| 520bc713 | 2021-08-05 14:33:54 | Fix typo in CMake target name | ||
| b83a019d | 2021-08-04 19:22:10 | cmake: Force linker to treat input as a C++ program on Haiku. Reference issue #4590. | ||
| 88674b4a | 2021-08-04 13:17:35 | Fixed build | ||
| 31726150 | 2021-08-04 13:13:22 | Let Android know that we can handle USB devices This is important on Android 29 and above if you don't want to be prompted for each device that you open | ||
| 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 | ||
| f5bc58bf | 2021-08-03 18:30:08 | Add note about keyboard grab to WhatsNew.txt for 2.0.16 | ||
| 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. | ||
| 8104c9e3 | 2021-08-04 00:02:39 | doxygen: manually move SDL_CloseAudioDevice docs from wiki. Apparently we don't fill these in from the wiki if the function doesn't have _any_ documentation already. That's a bug, I think. | ||
| 57bfed79 | 2021-08-03 22:15:04 | README-dynapi.md: Google+ link is gone, remove it. The Wayback Machine doesn't even have it. :( | ||
| 178c95f8 | 2021-08-03 21:52:47 | README-winrt.md: Cleaned up sample code - Fixed the markdown. - Code can now be exited by pressing ESC. - Cleans up and returns from main() - Mushed all the `if (x) { return 0; }` blocks into else ifs. | ||
| 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 | ||
| 02563f75 | 2021-08-03 20:12:56 | regenerate configure | ||
| d2e8998f | 2021-08-03 07:59:01 | build: Fix the LINKER variable. The LINKER variable is set in configure.ac as either 'CC' or 'CXX' where it is then passed to the created Makefile. This fails with slibtool which can't find the 'CC' file and can be fixed by correctly setting the LINKER variable to an actual Makefile variable like '$(CC)' or '$(CXX)' instead. Presumably GNU libtool does some magic here to hide the issue. | ||
| 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 | ||
| 3d747078 | 2021-08-03 01:25:54 | Run the renderer so Steam can find the main window | ||
| 1907463a | 2021-08-03 18:04:50 | regenerate configure | ||
| b74bcd5d | 2021-08-03 22:25:10 | configure.ac: mkdir $(objects)/ when building wayland protocols The $(objects) directory (usually build/) may not have been created by the time the wayland-scanner protocol files are being compiled. The $(gen) directory is explicitly made with mkinstalldir, but the final object file (and gcc dependency files) need to go into $(objects). For whatever reason, this only ever seemed to occur if --disable-shared was set. Note that this commit doesn't regenerate ./configure, as there were a few unexplained, unrelated differences my version of autoconf created, as as an autotools novice, I didn't want to poke that bear just yet. This hopefully should fix #3689 | ||
| 5b18ae29 | 2021-08-03 14:01:02 | improvements to libdecor support in cmake this makes it consistent with wayland support, and makes cmake side in line with autotools' libdecor support. | ||
| 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. | ||
| a15ec365 | 2021-08-03 11:33:50 | attempt to fix cmake builds with libdecor | ||
| 8726f500 | 2021-08-03 01:10:48 | Allow quitting controllermap if there are no controllers attached | ||
| 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 | ||
| 74aa4b63 | 2021-08-03 03:10:14 | cmake: don't fail if Wayland is enabled but libdecor isn't found. Instead, just disable libdecor support. This matches what the configure script does. | ||
| c3084539 | 2021-08-03 02:49:08 | cmake: Use CMAKE_INSTALL_FULL_* for libdir,bindir,etc. This makes sure sdl2.pc gets the full paths, matching what the configure script will generate. Fixes #4569. | ||
| 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). | ||
| d784dd20 | 2021-07-31 17:53:07 | Updated WhatsNew with major changes for 2.0.16 | ||
| b033cd0d | 2021-07-31 16:01:48 | Fixed XSync sequence to match other cases where we set the X11 error handler | ||
| d373af04 | 2021-08-01 01:39:20 | CMakeLists.txt: update DYLIB_CURRENT_VERSION too 2.0.16 for release | ||
| 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 | ||
| 3e76646c | 2021-07-31 13:09:53 | Added libSDLmain.a for iOS and tvOS | ||
| 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 | ||
| 1a9253f7 | 2021-07-31 12:37:28 | Removed unused IOS_DYLIB definition | ||
| 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 | ||
| 16010f75 | 2021-07-30 18:23:43 | Added support for the PowerA Nintendo Switch Fusion Arcade Stick | ||
| b33f4709 | 2021-07-30 18:23:42 | Fixed detection of the PDP Afterglow Wireless Switch Controller over Bluetooth | ||
| 6af6950d | 2021-07-30 18:23:42 | Added support for the Victrix Gambit Tournament Controller | ||
| 243a8836 | 2021-07-30 18:23:41 | The PowerA Nintendo Switch Fusion Pro Controller has a working USB mode, enabled via the switch on the underside of the controller. | ||
| 71897cc1 | 2021-07-30 15:51:43 | wayland: Always trigger a resize when handling a configure event. When we removed the OpenGL resize workaround it introduced a problem for fullscreen windows in particular: When leaving fullscreen we tried to send a resize event, but UpdateFullscreenMode would send a SIZE_CHANGED immediately after, deleting our resize event and causing the following configure event's resize to be ignored. This timing issue resulted in fullscreen windows not being resized at all when becoming a floating window. By always forcing resize events from configure events, we ensure that RESIZED always makes it through. SetWindowSize-type changes should be unaffected as they do not fire configure events. | ||
| 8f06a629 | 2021-07-30 22:31:17 | render: Fix -Wmaybe-uninitialized warning in RenderDrawLinesWithRects{,F} The RenderDrawLinesWithRects and RenderDrawLinesWithRectsF functions can sometimes call QueueCmdFillRects() with the data pointed to by frects uninitialised. This can occur if none of the lines can be replaced with rects, in which case the frects array is empty, and nrects is 0. gcc 10.3.0 will detect this possibility, and print a warning like: /home/david/Development/SDL/src/render/SDL_render.c: In function 'RenderDrawLinesWithRectsF': /home/david/Development/SDL/src/render/SDL_render.c:2725:15: warning: '<unknown>' may be used uninitialized [-Wmaybe-uninitialized] 2725 | retval += QueueCmdFillRects(renderer, frects, nrects); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/david/Development/SDL/src/render/SDL_render.c:499:1: note: by argument 2 of type 'const SDL_FRect *' to 'QueueCmdFillRects' declared here 499 | QueueCmdFillRects(SDL_Renderer *renderer, const SDL_FRect * rects, const int count) | ^~~~~~~~~~~~~~~~~ This is harmless, because when this is uninitialised, nrects is always 0, so QueueCmdFillRects() does nothing anyway. We therefore can work around this by only calling QueueCmdFillRects() when nrects is nonzero. Somewhat impressively, gcc recognises that this is now safe. | ||
| c20ab7da | 2021-07-30 00:22:50 | wayland: Fix GetWindowWMInfo for <2.0.15 | ||
| 585c11c5 | 2021-07-30 00:33:15 | direct3d: Fix possibly-incorrect scissor test when clearing. Thanks to @JayFoxRox who did the detective work on this! Fixes #3357. | ||
| 6f684f67 | 2021-07-29 18:20:36 | cocoa: Add keyboard grab support CGSSetGlobalHotKeyOperatingMode() is not a public API, so we will only compile this in if SDL_MAC_NO_SANDBOX=1 is defined during compilation. | ||
| 69518b9e | 2021-07-29 17:09:24 | Make sure we don't send a resize event while a window is being destroyed This fixes https://github.com/libsdl-org/SDL/issues/3669 | ||
| 3ababa09 | 2021-07-29 15:17:42 | Don't explicitly use any C runtime library with Visual Studio Visual Studio will still use Multi-threaded DLL by default, but since we don't link with a C runtime we won't end up with any Visual Studio runtime dependency. This fixes https://github.com/libsdl-org/SDL/issues/4328 | ||
| 659e1f0a | 2021-07-29 17:49:52 | audiocvt: The to-5.1 converters now soften FL and FR channels more. This is experimental and might be tweaked further. Reference #4104. Also reference: https://github.com/Keriew/augustus/issues/194#issuecomment-847655049 | ||
| f20a8581 | 2021-07-29 00:13:17 | commit after setting/unsetting limits | ||
| 9984891b | 2021-07-29 14:46:24 | Use the wl_touch object as a touch ID on Wayland (thanks @russelltg!) This fixes https://github.com/libsdl-org/SDL/issues/4517 |