Log

Author Commit Date CI Message
Sam Lantinga 584b89ab 2021-08-12T08:17:10 Added support for the color LED on the Xbox Elite Series 2 controller
Sam Lantinga 64882b24 2021-08-12T08:17:08 Added support for the Xbox One Elite 2 Controller with 5.x series firmware
Ozkan Sezer ed6eb07e 2021-08-12T01:40:50 SDL_wasapi.c: fixed build against older SDKs.
Andrei Alexeyev 68ca35c3 2021-08-11T21:40:46 wayland: fix memleak in output listener
Andrei Alexeyev e9179314 2021-08-11T21:27:42 joystick/linux: fix memleaks; streamline joylist item removal
Ozkan Sezer 44a76710 2021-08-11T12:55:50 Don't disable clang avx instrinsics on win32 if __AVX__ is defined. C.f.: https://github.com/libsdl-org/SDL/issues/4533
Ethan Lee ae7ee2a5 2021-08-11T09:59:43 wayland: Ignore stateless/sizeless configs when starting in fullscreen mode
Sam Lantinga ac32c522 2021-08-10T18:11:09 Try using the built-in WASAPI audio rate conversion Fixes https://github.com/libsdl-org/SDL/issues/4608
Sam Lantinga cb1e20b0 2021-08-10T17:50:17 Added KMOD_SCROLL to track the scroll lock state Fixes https://github.com/libsdl-org/SDL/issues/4566
Sam Lantinga 609cea1e 2021-08-10T17:14:06 Enable SSE3 intrinsics when building with Visual Studio Fixes https://github.com/libsdl-org/SDL/issues/4530
Sam Lantinga d5ad6f6e 2021-08-10T16:51:03 Clarified that you should never have side-effects in the parameters to SDL_min/SDL_max
Ozkan Sezer bb91d7a5 2021-08-11T01:56:40 regenerated configure script
SDL Wiki Bot 056a42f1 2021-08-10T22:20:06 Sync wiki -> header
Sam Lantinga f5794f9e 2021-08-10T15:17:59 Added SDL_SetTextureUserData() and SDL_GetTextureUserData() to associate a user-specified pointer with an SDL texture
Sam Lantinga a0af7ce7 2021-08-10T15:05:49 OSS is no longer the preferred audio backend on modern UNIX systems Fixes https://github.com/libsdl-org/SDL/issues/4207
Sam Lantinga 3f6ebfff 2021-08-10T15:02:36 Updated to version 2.0.17 for development
Sam Lantinga 68103993 2021-08-10T14:50:43 Enable AAUDIO driver for Android I thought this was already enabled for 2.0.16, but apparently not. Fixes https://github.com/libsdl-org/SDL/issues/3710
Sam Lantinga 016b02f2 2021-08-10T12:16:55 Fixed build, C89 doesn't allow non-constant static initializers
Ozkan Sezer 77c8d111 2021-08-10T20: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
hgs3 cb0fd05e 2021-08-07T22:41:54 Adding a clarifying comment in case a programmer unfamiliar with UTF-16 and UTF-32's relationship chances upon the code.
Henry G. Stratmann III 34701129 2021-08-07T20:51:49 Optimizing the implementation.
Henry G. Stratmann III 712e0d1f 2021-08-07T16:23:15 Fixing WM_CHAR event handling for Unicode characters outside the Basic Multilingual Plane.
Sam Lantinga fcfd19db 2021-08-10T12:02:17 Added support for SDL_RENDERER_PRESENTVSYNC to the software renderer This fixes https://github.com/libsdl-org/SDL/issues/4612
Tomasz Kłoczko ea9bece5 2021-08-10T18:51:33 Fix breaking GNUInstallDirs cmake module $CMAKE_INSTALL_LIBDIR directory. Fix #4621 According to https://cmake.org/cmake/help/v3.0/module/GNUInstallDirs.html `${CMAKE_INSTALL_LIBDIR} ` is only variable which should be used as base directory. Without that patch on 64 bit archs libraries, cmake modules and pkgconfig file are installed for example in /usr/lib6464 base directory. This patch fixes #4621. Signed-off-by: Tomasz Kłoczko <koczek@github.com>
Sebastian Krzyszkowiak 25f9ed87 2021-08-10T13: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.
Sebastian Krzyszkowiak b3a989d0 2021-08-10T13: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.
Sam Lantinga de6ba40d 2021-08-09T11:38:22 Added support for the Flydigi Vader 2 controller in 2.4G Android mode
Sam Lantinga 3f440daa 2021-08-09T10:40:36 Added support for the Flydigi Vader 2 controller in Bluetooth mode
Cameron Gutman 6ae227d0 2021-08-08T23: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.
David Gow 773e1ba1 2021-08-08T11: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.
Sebastian Krzyszkowiak 2e6dac87 2021-08-09T01:47:42 wayland: Add a hint to allow disabling libdecor use Useful for testing xdg-shell path with compositors like Weston.
Cameron Gutman 092a20d9 2021-08-08T16:47:34 wayland: Avoid busy waiting for vsync
Cameron Gutman 791d9d3f 2021-08-07T12:41:15 Fixed DInput mapping for NVIDIA Virtual Gamepad
Ethan Lee 7be970db 2021-08-06T19:51:27 wayland: Avoid setting floating width/height when re-entering fullscreen
Sam Lantinga bec78357 2021-08-06T14:20:55 Better fix for compiling using clang on Windows This fixes https://github.com/libsdl-org/SDL/issues/4533
Sam Lantinga a91ab883 2021-08-06T12:28:03 Fixed building on Windows with cmake, ninja, and clang
Ryan C. Gordon dd683073 2021-08-06T15:13:14 hidapi: Patched to compile on QNX. Fixes #4591.
Sam Lantinga cae7bd9b 2021-08-06T12: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
Sam Lantinga cdac61ff 2021-08-06T12:00:53 Fixed typo
Sam Lantinga eec41d25 2021-08-06T11:30:22 Add info on how to avoid the "Prevented in-tree build" message with CMake
Ryan C. Gordon ac20167e 2021-08-06T14:08:50 configure: Fixes to make SDL link as C++ on Haiku. Fixes #4590.
Ethan Lee 10979d37 2021-08-05T12: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.
Cameron Cawley 520bc713 2021-08-05T14:33:54 Fix typo in CMake target name
Ryan C. Gordon b83a019d 2021-08-04T19:22:10 cmake: Force linker to treat input as a C++ program on Haiku. Reference issue #4590.
Sam Lantinga 88674b4a 2021-08-04T13:17:35 Fixed build
Sam Lantinga 31726150 2021-08-04T13: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
Sam Lantinga c14813a8 2021-08-04T13:00:14 Fixed spacing
Sam Lantinga 3cad447e 2021-08-04T12:57:51 Only update the window size if setting the display mode succeeded
Daniel Gibson 0eb6f791 2021-05-21T13: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
Daniel Gibson 72d81285 2021-05-19T18: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
Sam Lantinga 9fdb0645 2021-08-04T11:33:28 Added support for the Joy-Con Charging Grip when SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS is enabled
Ryan C. Gordon d4839702 2021-08-04T13: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.
Cameron Gutman b08b1bde 2021-08-03T22:50:58 linux: remove d-bus lazy init dead code Lazy init in X11/Wayland is dead code since dbdbae4
Cameron Gutman f5bc58bf 2021-08-03T18:30:08 Add note about keyboard grab to WhatsNew.txt for 2.0.16
Ryan C. Gordon 5fc13fcb 2021-08-04T07: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...!)
Ryan C. Gordon ed6ce5cc 2021-08-04T02:34:09 log: Fixed compiler warnings on 64-bit Visual Studio.
Ryan C. Gordon 7e88e772 2021-08-04T02:30:47 winrt: Fixed incorrect code in a Windows Phone #ifdef.
Ryan C. Gordon 8104c9e3 2021-08-04T00: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.
Ryan C. Gordon 57bfed79 2021-08-03T22:15:04 README-dynapi.md: Google+ link is gone, remove it. The Wayback Machine doesn't even have it. :(
Ryan C. Gordon 178c95f8 2021-08-03T21: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.
Ethan Lee 32f909f7 2021-08-03T13:30:57 wayland: Remove redundant waylanddyn.h includes. All files including waylanddyn.h already include waylandvideo.h first.
Ethan Lee 124405a0 2021-08-03T13:17:19 wayland: Fix building without Vulkan support
Ozkan Sezer 02563f75 2021-08-03T20:12:56 regenerate configure
orbea d2e8998f 2021-08-03T07: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.
David Gow 4077f7a2 2021-08-03T20: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.
Sam Lantinga 9b4884d5 2021-08-03T09:23:54 Warn if you're building a partially functional RAWINPUT driver without device notifications
Sam Lantinga 886eb02e 2021-08-03T03:16:35 Fixed detection of Steam Virtual Gamepad with the WGI driver
Sam Lantinga 7c63e1d3 2021-08-03T01:52:02 Added WGI mappings for the Amazon Luna and Google Stadia controllers
Sam Lantinga 99c8972b 2021-08-03T01:39:07 Added WGI mappings for PS4 and PS5 controllers
Sam Lantinga 2dfc92ca 2021-08-03T01:33:35 Added default mapping for WGI game controllers
Sam Lantinga 3d747078 2021-08-03T01:25:54 Run the renderer so Steam can find the main window
Ozkan Sezer 1907463a 2021-08-03T18:04:50 regenerate configure
David Gow b74bcd5d 2021-08-03T22: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
Ozkan Sezer 5b18ae29 2021-08-03T14: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.
Ryan C. Gordon 350ca0f9 2021-08-03T04: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.
Ryan C. Gordon 834a84fa 2021-08-03T05: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.
Ozkan Sezer a15ec365 2021-08-03T11:33:50 attempt to fix cmake builds with libdecor
Sam Lantinga 8726f500 2021-08-03T01:10:48 Allow quitting controllermap if there are no controllers attached
Sam Lantinga 9d64e6b4 2021-08-03T00:29:33 Revert "direct3d: Commit dirty viewport state before clearing." This reverts commit 0e16ee833060660318cc324cf99c9736f4d48499.
Sam Lantinga 993a5676 2021-08-03T00: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
Ryan C. Gordon 74aa4b63 2021-08-03T03: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.
Ryan C. Gordon c3084539 2021-08-03T02: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.
Ryan C. Gordon 0e16ee83 2021-08-03T02: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.
Sam Lantinga 7edc7d53 2021-08-02T22:44:38 Added a mapping for the Steam Virtual Gamepad when it's detected in DirectInput mode
Ethan Lee 7082fb04 2021-08-02T22:42:28 wayland: Only dispatch on fullscreen set when the window is visible. Fixes hang-on-startup described in #4572.
Ethan Lee 0f5b8a99 2021-08-02T19:48:31 wayland: For libdecor, dispatch immediately after setting fullscreen Reference: #4578
Sam Lantinga 02223501 2021-08-02T16:40:58 Fixed crash if WGI didn't give us the name for a controller
Ethan Lee 4562da62 2021-08-02T16:40:56 wayland: Make libdecor configure match xdg_toplevel
Ethan Lee 1fb1aa19 2021-08-02T12:57:28 wayland: Keep the fullscreen check for maximize/restore events
Ethan Lee 584673a5 2021-08-02T12: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.
Sebastian Krzyszkowiak 25067298 2021-08-02T08: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.
Sebastian Krzyszkowiak ea28187c 2021-08-02T08: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.
Sebastian Krzyszkowiak b5210cac 2021-08-02T13: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.
Ethan Lee dab33844 2021-08-02T11:58:47 wayland: Fix a warning in handle_configure_xdg_toplevel
Ethan Lee 754aa2d3 2021-08-02T11: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.
Ethan Lee 8803589f 2021-08-02T12:05:06 wayland: Avoid redundant SetWindowBordered for libdecor
Sebastian Krzyszkowiak b4c4060a 2021-08-02T04: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)
Sebastian Krzyszkowiak 9bb24ad0 2021-08-02T05: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.
Christian Rauch cfcdfb7b 2021-08-01T18:14:53 libdecor: use same fullscreen/maximised restore logic as for xdg-toplevel
Christian Rauch 42452f8c 2021-08-01T13: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.