Log

Author Commit Date CI Message
Charlie Birks 0a870756 2021-07-08T12:47:57 Update SDL_config_emscripten.h for upstream
Sam Clegg d4488962 2021-05-19T08:24:33 Add SDL_config_emscripten.h Currently we maintain a config file in the emscripten repo, but this seems like what other embedded/cross platforms do.
David Gow 35c1bbfa 2021-08-13T21:43:00 SDL_stdinc.h: Add an SDL_clamp() function Add a function to clamp a value to a range. SDL_clamp(x, a, b) is equivalent to SDL_min(a, SDL_max(x, b)): it ensures that x is not smaller than a, nor larger than b. While, as best I can tell, this isn't actually standardised anywhere, it's a very useful function/macro to have.
David Gow fbc36490 2021-08-14T22:29:05 Use the new SDL_clamp() macro where sensible There were a few places throughout the SDL code where values were clamped using SDL_min() and SDL_max(). Now that we have an SDL_clamp() macro, use this instead.
Charlie Birks 07a2d71e 2021-03-30T11:56:38 emscripten: Feed silence to device when paused
Sam Lantinga dcc5eef0 2021-08-14T00:31:46 Clarify that one of the PIDs of the Xbox Elite Series 2 controller is used in Bluetooth mode
Sam Lantinga 69477151 2021-08-13T23: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)
Sam Lantinga 6a1e1ed9 2021-08-13T23: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.
Sam Lantinga 91a55a02 2021-08-13T23: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.
Sam Lantinga e42e9a12 2021-08-13T20:48:56 Fixed build
Sam Lantinga 441fbcaa 2021-08-13T20:48:54 Added HIDAPI support for the Xbox Adaptive Controller
Sam Lantinga b5e5c1ef 2021-08-13T17:53:39 Added Ctrl-T to toggle topmost mode in test programs
Sam Lantinga 4d9efcb5 2021-08-13T11:52:25 Fixed flag test for boolean correctness
Sam Lantinga b28ed028 2021-08-13T11:39:41 Don't warp the mouse for relative mode when the window doesn't have focus
Sam Lantinga 629e9f82 2021-08-13T11:06:43 Fixed return value of SDL_GetGrabbedWindow() when we have an internal grab because of mouse relative mode
Sam Lantinga 6aa1498b 2021-08-13T11:03:19 This assert wasn't correct, we set the internal grab for mouse relative mode as well.
David Gow 105f1206 2021-08-13T21:25:35 checkkeys: Create a renderer for window display on Wayland On Wayland -- or at least on some Wayland implementations -- windows aren't shown until something has been rendered into them. For the 'checkkeys' test program, this means that keyboard input isn't registered, making the program rather useless. By creating a renderer and presenting once, the window is properly displayed, and the test behaves as it does under X11 (including XWayland). The exact same thing was done with testmessge in 1cd97e2695 (PR #4252)
Sam Lantinga 907943a2 2021-08-12T17:51:08 Added support for the Xbox One S Controller with 5.x series firmware
Joshua Root 1e921352 2021-08-13T07: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.
Joshua Root 9bf65575 2021-08-13T06:36:49 Correctly check for bswap builtins before using The __clang_major__ and __clang_minor__ macros provide a marketing version, which is not necessarily comparable for clang distributions from different vendors[1]. In practice, the versioning scheme for Apple's clang is indeed completely different to that of the llvm.org releases. It is thus preferable to check for features directly rather than comparing versions. In this specific case, __builtin_bswap16 was being used with older Apple clang versions that don't support it. [1] https://clang.llvm.org/docs/LanguageExtensions.html#builtin-macros
Ozkan Sezer 7aec0b90 2021-08-13T01:56:56 SDL_hidapi_xboxone.c: fix bogus 'uninitialized' warning from clang. The last 'size == 50' check is always true anyway.
Sam Lantinga cec5a129 2021-08-12T15:49:33 Fixed libudev hotplug notifications in the HIDAPI driver
Sam Lantinga 6eb4ebb5 2021-08-12T15:49:33 Simplified the HIDAPI Xbox One controller initialization
Simon McVittie 25cd749a 2021-08-12T15: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>
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.