Log

Author Commit Date CI Message
Sam Lantinga d46dd103 2020-12-09T07:49:07 Fixed typo in Vulkan load logic
Sam Lantinga 45e3521d 2020-12-09T07:32:10 Backed out changes for 5366 - cmake build doesn't detect Metal on macOS These changes introduce regressions for other build environments, so I'm backing them out until we sort out the correct fix.
Sam Lantinga bd032c1f 2020-12-09T07:26:59 Fixed bug 5221 - libusb isn't detected correctly in CMake Sven-Hendrik Haase In CMake I currently have trouble activating hidapi support as libusb-1.0 isn't ever correctly detected as it's searched for by the wrong name. configure.ac correctly does this: PKG_CHECK_MODULES([LIBUSB], [libusb-1.0], have_libusb=yes, have_libusb=no) However, sdlchecks.cmake does this: pkg_check_modules(LIBUSB libusb) but it needs to be: pkg_check_modules(LIBUSB libusb-1.0)
Sam Lantinga 7fa5e95b 2020-12-09T07:23:47 Fixed bug 5213 - Add support to metal in iOS/tvOS simulator Vincent Hamm Xcode11 and ios13 added support for metal simulator. Here is a quick and dirty patch to enable it. Pretty early and only tested on a few samples for now. Required mostly to enable metal support on correct version of ios, generate simulator compatible shaders and enforce buffer alignments on simulator (same as osx).
Sam Lantinga cb361896 2020-12-09T07:16:22 Fixed bug 5235 - All internal sources should include SDL_assert.h Ryan C. Gordon We should really stick this in SDL_internal.h or something so it's always available.
Sam Lantinga 479db430 2020-12-09T06:56:34 Fixed bug 5250 - updaterev.sh failed using CMake Tools on VSCode Remote Sebastian Vargas Vargas Running CMake configure from a Windows Subsystem for Linux using Visual Studio Code Remote doesn't generate the header file with the current source revision, it throws "/home/sebva/SDL/build-scripts/updaterev.sh: 13: cannot create /mnt/c/Users/sebva/.vscode/extensions/ms-vscode-remote.remote-wsl-0.44.4/include/SDL_revision.h.new: Directory nonexistent".
Sam Lantinga 88cb4962 2020-12-09T06:42:31 Fixed bug 5291 - SDL_SetRenderTarget unnecessarily changes target when current target is the native texture of the passed in texture
Sam Lantinga f2fff217 2020-12-09T06:24:40 Fixed bug 5374 - WGI: Use fast-pass strings. Joel Linn Eliminate additional heap allocation for short-lived HSTRINGs. Uses `WindowsCreateStringReference()` to disable reference counting and memory management by the Window Runtime.
Sam Lantinga 42c5b4ac 2020-12-09T06:17:55 Fixed bug 5366 - cmake build doesn't detect Metal on macOS Tom Seddon 2nd time lucky, perhaps. patch 2 applies to current HEAD at time of writing - 4eb049c9bb1ca94efe3c40b57beda3169984d0cb from https://github.com/SDL-mirror/SDL. This basically goes back to what was there originally, but now manually adding "-x objective-c" to the clang command line rather than "-ObjC". clang is then invoked without the "-x c" that was causing the problem, the snippet builds, and Metal is detected. (I had a quick trawl through the cmake code, but I couldn't see where this is handled.) I was moved to try this after finding SDL's own CHECK_OBJC_SOURCE_COMPILES macro, and noting what it does: https://github.com/SDL-mirror/SDL/blob/4eb049c9bb1ca94efe3c40b57beda3169984d0cb/cmake/macros.cmake#L67 An alternative fix of course would be to use CHECK_OBJC_SOURCE_COMPILES instead of cmake's check_objc_source_compiles - but that had the same problem of getting confused by "return 0;". (Maybe that's because it's a macro? I'll defer to a cmake expert on this one.) I decided in the end to err on the side of leaving things looking basically the same as they were before my first patch.
Ozkan Sezer 475405e0 2020-12-09T12:03:24 CMakeLists.txt: sync DYLIB_CURRENT_VERSION to Xcode project
Ozkan Sezer 250a0557 2020-12-09T12:01:10 fix bug #5384 -- define DLL_EXPORT in DLL builds and adjust begin_code.h
Sam Lantinga 50203d58 2020-12-08T22:00:06 Fixed bug 5329 - SDL_SetWindowGrab(SDL_FALSE) fails to unlock cursor if window is partially offscreen Ivan Mogilko With SDL 2.0.12 under MS Windows, if the window is partially offscreen calling SDL_SetWindowGrab(w, SDL_TRUE) works, but subsequent call to SDL_SetWindowGrab(w, SDL_FALSE) does not work. I tested this in both real program, and a small test app, where unlocking cursor worked perfectly while window is fully in desktop bounds, but did not work if it was at least few pixels outside. For the reference, following code is enough to reproduce the issue: #include <windows.h> #include <SDL.h> int WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { SDL_Init(SDL_INIT_VIDEO); SDL_Window* w = SDL_CreateWindow("", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 400, 0); bool grabbed = false; bool want_quit = false; while (!want_quit) { SDL_Event event; while (SDL_PollEvent(&event)) { switch (event.type) { case SDL_QUIT: want_quit = true; break; case SDL_KEYDOWN: if (event.key.keysym.scancode == SDL_SCANCODE_SPACE) { SDL_SetWindowGrab(w, static_cast<SDL_bool>(!grabbed)); grabbed = !grabbed; } } } } SDL_DestroyWindow(w); SDL_Quit(); return 0; }
Sam Lantinga 43aad966 2020-12-08T19:03:50 Fixed bug 5222 - Crash when running with -DHIDAPI=ON Mathieu Eyraud SDL dynamically loads libusb but does not check the return value of 'SDL_LoadFunction'. Also libusb is loaded and initialized several time because 'SDL_hidapi_wasinit' is never set to true. I made a patch if you want to test: - check that 'hid_init' is called once and only once, - check return value of 'hid_init', - check return value of 'SDL_LoadFunction', - check return value of 'SDL_malloc', - add some debug logging.
Sam Lantinga a2098a47 2020-12-08T18:56:06 Updated SDL to 2.0.14 in preparation for release candidate
Sam Lantinga 2a9591a9 2020-12-08T09:16:34 Accepted patch https://github.com/microsoft/vcpkg/blob/master/ports/sdl2/fix-space-in-path.patch
Sam Lantinga 7f1c6e82 2020-12-08T09:13:08 Accepted patch https://github.com/microsoft/vcpkg/blob/master/ports/sdl2/enable-winrt-cmake.patch
Sam Lantinga 7665f887 2020-12-08T09:07:21 Accepted patch https://github.com/microsoft/vcpkg/blob/master/ports/sdl2/disable-wcslcpy-and-wcslcat-for-windows.patch
Sam Lantinga 695499ae 2020-12-08T09:04:28 Accepted patch https://github.com/microsoft/vcpkg/blob/master/ports/sdl2/disable-hidapi-for-uwp.patch
Ozkan Sezer 5610e5ae 2020-12-08T00:11:10 Makefile.os2: disable W303 (add -wcd=303 to CFLAGS) newer OpenWatcom versions enable W303 by default. without this, we get multiple "Parameter '%s' has been defined, but not referenced" warnings.
Sam Lantinga c9723c40 2020-12-07T09:38:21 Fixed potential hang in joystick close if the rumble thread is blocked for some reason It's still possible to hang when shutting down, if the rumble thread is still hung, but it won't block indefinitely at runtime.
Sam Lantinga 3c68051e 2020-12-04T15:47:28 Allow background input when testing game controllers
Sam Lantinga 09909d02 2020-12-03T19:44:47 Fixed handling of BACK button on newer Xbox One S controllers
Sam Lantinga 54e5136b 2020-12-03T18:17:04 Refactored Xbox One Bluetooth protocol and verified Xbox One S, Xbox Series X, and Xbox One Elite Series 2 controllers
Sam Lantinga 1031231b 2020-12-03T18:17:03 Fixed duplicating a device between XInput and HIDAPI
Sam Lantinga 59f28b7f 2020-12-03T18:17:01 Fixed whitespace
Sam Lantinga f487d63a 2020-12-03T18:16:56 Fixed crash when printing NULL wide character string
Sylvain Becker 754286c6 2020-12-02T13:45:24 SDL Renderer: specify the correct flag when recreating the window
Sylvain Becker 035f8f23 2020-12-02T13:37:59 SDL_RecreateWindow: allow clearing VULKAN when recreating the window
Sylvain Becker 93fbab0f 2020-12-02T11:04:53 SDL_ReCreateWindow: allow to unload METAL window and switch back to OpenGL. On older mac, where METAL Renderer METAL fails to create, it allows to switch back to OpenGL SDL_Renderer by re-creating the window (METAL flags was previously persistent).
Sam Lantinga 7854f43b 2020-12-01T14:43:15 Disable SDL_JOYSTICK_HIDAPI on iOS and tvOS by default It's only needed for Steam Controller support, and introduces a Bluetooth framework dependency which requires additional permissions on the App Store.
Sam Lantinga ebf315e0 2020-12-01T14:01:12 Fixed bug 5369 - iOS static library build copies public headers files into xcode archive Dominik Reichardt Trying to integrate the latest SDL2 changes into our iOS project of Exult I've stumbled over the fact that when I added the static iOS library the public header files were copied to the archive of our project when you let Xcode build the archive. This makes the archive invalid for upload to the AppStore Connect. To fix this you need to delete the public headers from the build phase: Open the xcode project, select the target "Static Library-ios", got to build phases, and in "headers" delete all the headers in the "public" group. This is safe to do as this actually just copies the public headers for some odd counterintuitive reason. I think this needs to be done for all the library build targets but likely not for the framework targets.
Sam Lantinga 4b35a18d 2020-12-01T13:50:42 Fixed bug 5366 - cmake build doesn't detect Metal on macOS Tom Seddon This is as of commit 50d804ea729accf9e3a9ce83238d0a2976a17545 from https://github.com/SDL-mirror/SDL, which is HEAD as I write (apologies, not confident with Mercurial) # Config macOS: 10.14.6 (18G6042) cmake --version: cmake version 3.16.20200101-g23e782c clang --version: Apple clang version 11.0.0 (clang-1100.0.33.17) Xcode version: Version 11.3.1 (11C504) # Repro steps Run the following commands in the shell. cd /tmp/ git clone https://github.com/SDL-mirror/SDL mkdir build.SDL cd build.SDL cmake -G ../SDL/ Examine cmake output. # Expected result Metal is detected. # Actual result It appears that Metal is not detected! Note this line in the summary: -- RENDER_METAL (Wanted: 0): OFF # Fix Change check_c_source_compiles to check_objc_source_compiles. The cmake script tries to add -ObjC to the clang command line, but, for whatever reason, this doesn't seem to work. Change the test source to have an empty main. The "return 0;" line seems to confuse cmake somehow, causing it to crap out with an error about HAVE_FRAMEWORK_METAL being an unknown argument. (Maybe I'm just dense, but it's not obvious to me what the problem is here.) With these two changes: -- RENDER_METAL (Wanted: ON): ON Patch attached.
Sam Lantinga 798b2288 2020-12-01T13:46:34 Fixed bug 5367 - SDL_OpenUrl disabled on iOS due to unified Xcode project file Dominik Reichardt When you unified the Xcode project file you forgot to add the iOS file (/src/misc/ios/SDL_sysurl.m) to the project file, so the dummy in that folder takes over and the call does not work. Relevant commits: http://hg.libsdl.org/SDL/rev/c86bbf75f55e (SDL_OpenUrl enabled for macOS/iOS) http://hg.libsdl.org/SDL/rev/282c3dc1cf65 (and following: unified Xcode project files) Adding an ios group in the misc group of the project file and then adding /src/misc/ios/SDL_sysurl.m to it fixes the problem.
Sam Lantinga c78ca2d1 2020-12-01T13:38:42 Fixed bug 5371 - Rawinput: Fix truncating cast of string length. Joel Linn Fixes an implicit truncation of a string length on 64bit systems.
Sam Lantinga a3ccf9ad 2020-12-01T13:36:41 Fixed bug 5373 - [PATCH] Rawinput: Get correlated XInput battery info Joel Linn Currently the rawinput driver always reports a device as "wired". This changes that to "unknown" and updates it once the device is correlated with xinput.
Sam Lantinga e3966e25 2020-11-30T13:04:30 Use the correct internal API for updating the battery level for PS5 controllers
Sam Lantinga f4ed07de 2020-11-30T13:02:34 We don't know whether the PS5 controller is Bluetooth or not when we open it
Sam Lantinga 04f0fd13 2020-11-27T18:57:42 Remember to close the game controller when we're done with it
Sam Lantinga 1f2f536b 2020-11-27T18:57:40 Fixed XInput correlation for raw input controllers after hotplug events
Sam Lantinga 012471e9 2020-11-27T18:57:38 Open and test all connected controllers
Sam Lantinga 1c865c46 2020-11-27T18:57:36 Load the raw input device list at init time so it's available when DirectInput is doing device detection
Sam Lantinga a0c5bfa3 2020-11-27T13:08:40 Moved raw input event processing from the main thread to the joystick thread This allows fast joystick event delivery regardless of what the main thread is doing.
Sam Lantinga 4fbefbe2 2020-11-27T11:33:53 Sort the raw input axes by usage, so X comes before Y, etc.
Sam Lantinga 4ddac485 2020-11-27T11:33:51 Backed out minor optimization that prevented correlation_id from being set
Sam Lantinga 8973a258 2020-11-27T10:44:56 Enable dispatching of WM_INPUT_DEVICE_CHANGE events directly, in case the application hasn't created a window with the normal message loop
Sam Lantinga e8adc648 2020-11-27T10:44:55 Enable dispatching of WM_INPUT events directly, in case the application hasn't created a window with the normal message loop
Sam Lantinga 0252235e 2020-11-27T10:44:53 Recheck devices if another API queries raw input for a new device
Sam Lantinga a7dede7e 2020-11-27T10:44:51 Re-enable axis correlation for raw input controllers, for twin stick shooters that don't need face buttons
Sam Lantinga ce77966d 2020-11-27T10:44:49 Fixed RAWINPUT_IsDevicePresent() not returning TRUE for Xbox One controllers
Sam Lantinga 8a449de2 2020-11-27T10:44:47 Fixed Xbox 360 wireless controller being picked up by WGI when it's being managed by RAWINPUT
Sam Lantinga 37c9e4af 2020-11-27T06:03:15 Fixed processing WM_INPUT_DEVICE_CHANGE at startup
Sam Lantinga 248fc75b 2020-11-27T05:53:56 Correlate just based on buttons, joystick axes are not as precise and could potentially cause incorrect uncorrelation. It's okay if the triggers aren't precise until someone presses a button on their controller.
Sam Lantinga e7e615de 2020-11-27T05:53:54 Removed extraneous windows message pumping Most of the raw input events are dispatched in the main windows message loop. We only dispatch device change messages separately when we need them to be completely up to date.
Sam Lantinga 2931eccd 2020-11-27T05:53:52 Fixed detecting Bluetooth raw input devices, which have device names longer than 128 characters
Sam Lantinga 849ce803 2020-11-27T05:53:50 Renamed SDL_JOYSTICK_RAWINPUT_GAMING_INPUT to SDL_JOYSTICK_RAWINPUT_WGI
Sam Lantinga 219a28dd 2020-11-27T03:45:05 Fixed D-pad uncorrelating raw input controllers (thanks Jimbly!)
Sylvain Becker 2c079a2f 2020-11-27T09:42:14 SDL_FillRects: prevent empty SDL_surface from raising an error message It's legitimate to have a surface with 0 width or height (null 'pixels' pointer). But calling SDL_FillRects would wrongly set the error "You must lock the surface".
Ozkan Sezer 3fbff2a4 2020-11-26T10:47:33 SDL_rawinputjoystick.c: fix ambiguous 'else' warning src/joystick/windows/SDL_rawinputjoystick.c: In function 'RAWINPUT_HandleStatePacket': src/joystick/windows/SDL_rawinputjoystick.c:1343:9: warning: suggest explicit braces to avoid ambiguous 'else'
Sam Lantinga 845b9033 2020-11-25T16:46:42 Implemented trigger rumble for raw input controllers
Sam Lantinga 517be808 2020-11-25T16:05:19 Implemented battery status for Bluetooth Xbox One controllers Also switched the rumble loop count to 0xEB (one hour) to match Windows driver
Sam Lantinga 24cc0012 2020-11-25T16:05:15 Some controllers don't always reset their triggers to zero when they are released (e.g. Xbox One S in Bluetooth mode), so only trigger rumble if the trigger is pulled halfway or more.
Sam Lantinga 6a7f29cd 2020-11-25T11:31:17 Fixed compiling on tvOS
Sam Lantinga 9ec2cf56 2020-11-25T10:31:59 Fixed building with Windows.Gaming.Input enabled
Sam Lantinga 3c07dd12 2020-11-25T10:28:48 Strip an extra '.' off of the HORI manufacturer name
Ozkan Sezer e5783e11 2020-11-25T14:51:56 cmake: add missing checks for wcscasecmp, _wcsicmp, wcsncasecmp, _wcsnicmp
Ozkan Sezer 7c18088f 2020-11-25T14:51:56 SDL_config_os2.h: define HAVE__WCSICMP and HAVE__WCSNICMP
Sam Lantinga 159d1b3d 2020-11-25T01:35:45 Don't set the serial number after the controller is opened We'll use the USB value instead so it's available as soon as it's opened.
Sam Lantinga 7d92b14f 2020-11-25T01:18:18 Simplified Xbox One controller initialization state, and don't query for the serial number.
Sam Lantinga 9fc4a4c9 2020-11-24T22:25:26 Revamped Xbox One HIDAPI init sequence Added support for querying the controller serial number on newer firmware
Sam Lantinga e16afa79 2020-11-24T16:38:49 Automatically switch to testing a new controller when it's plugged in
Sam Lantinga 46a84478 2020-11-24T12:43:01 Added SDL_wcscasecmp() and SDL_wcsncasecmp()
Sam Lantinga e4b7d9a2 2020-11-24T07:56:59 Removed usage of TARGET_OS_OSX for building with older SDKs
Sam Lantinga 16d789fb 2020-11-24T07:30:39 Disable compiler warning when using -fobjc-weak building C code
Sam Lantinga a5cde4cb 2020-11-24T07:29:55 Fixed trying to use @available() on older SDK
Sam Lantinga b4338dda 2020-11-24T07:22:29 Enable -fobjc-weak when building MFI controller code
Sam Lantinga 97782e6c 2020-11-24T07:11:49 Don't try to call IOS_SupportedHIDDevice() if it's not defined
Sam Lantinga a063b9fb 2020-11-24T07:06:31 Fixed compiler warning
Sam Lantinga c63bbb06 2020-11-24T06:55:33 Including SDL_config_iphoneos.h enables MFI controller code
Sam Lantinga eba069ea 2020-11-24T06:53:48 It looks like the Objective C support needed to build MFI controller code is in 10.8
Sam Lantinga 7a05dbf4 2020-11-24T06:42:53 Fixed building on FreeBSD Alex S Looks like we have a collision with https://hg.libsdl.org/SDL/rev/cd774daff9f6. (Again, the headers in the base system are intended for drivers and should not be used for compiling non-base applications. At least that's the policy for now: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240964#c19.)
Sam Lantinga feab9d42 2020-11-24T06:40:13 5363 - Memory leak of joystick->sensors in SDL_JoystickClose Mathieu Eyraud Joystick->sensors is never freed.
Ozkan Sezer 23ad4f4b 2020-11-24T14:10:30 configure.ac: check GameController framework support when targeting Darwin disables SDL_JOYSTICK_MFI for i386 or if MAC_OS_X_VERSION_MIN_REQUIRED < 1090 --disable-joystick-mfi disables it unconditionally.
Ozkan Sezer 711d4090 2020-11-24T14:10:30 CMakeLists.txt: add src/joystick/iphoneos/*.m to Darwin joystick sources .. so that there won't be missing symbols. TODO: add checks for SDL_JOYSTICK_MFI ???
Sam Lantinga 34bea84a 2020-11-23T23:03:55 Fixed bug 5335 - Patch: enable joystick/haptic/evdev support by default on FreeBSD Alex S Ah, that's not quite enough. You need to: 1. rename src/joystick/bsd/SDL_sysjoystick.c to something; 2. regenerate configure.
Sam Lantinga 1e943e2a 2020-11-23T22:59:22 Fixed building with an older SDK and macOS target
Sam Lantinga 1fc5ca64 2020-11-23T22:24:54 Fixed building with an older SDK and macOS target
Sam Lantinga 4121ab62 2020-11-23T21:25:07 Fixed bug 5354 - DirectFB: Add Vulkan support Nicolas Caramelli This patch adds Vulkan support for the DirectFB video driver. A screenshot with SDL tests running on DirectFB is available on the HiGFXback project: https://github.com/caramelli/higfxback/wiki/DirectFB#sdl
Sam Lantinga e44bf8a0 2020-11-23T21:18:37 Fixed bug 5359 - Incorrect sensor data from DualShock4 multiply gyro values by sensitivity When the hardware calibration fails, values read from sensors need to be multiplied by default sensitivity (16 for gyro, 1 for accelerometer).
Sam Lantinga c8c818d7 2020-11-23T21:14:37 Fixed bug 5360 - non-libudev joystick detection doesn't see controllers that were already connected Simon McVittie When watching for hotplug events we can poll the inotify fd, but we still need to scan /dev/input once per process, otherwise we'll fail to detect devices that were already connected.
Simon McVittie 8e2746cf 2020-11-23T21:10:48 joystick: Don't use udev in Flatpak or pressure-vessel container Flatpak[1] and pressure-vessel[2] are known to use user namespaces, therefore udev event notification via netlink won't work reliably. Both frameworks provide a filesystem API that libraries can use to detect them. Do that, and automatically fall back from udev-based device discovery to the inotify-based fallback introduced in Bug #5337. [1] <https://flatpak.org/> [2] <https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tree/master/pressure-vessel> Signed-off-by: Simon McVittie <smcv@collabora.com>
Sam Lantinga e9869e07 2020-11-23T21:08:19 Fixed bug 5335 - enable joystick/haptic/evdev support by default on FreeBSD Alex S Evdev headers aren't actually included in the base system (well, it has a private copy), they are available through the devel/evdev-proto port instead. We also have devel/libinotify and devel/libudev-devd shims, I didn't verify whether they work with SDL.
Sam Lantinga 38ab8bf7 2020-11-23T21:03:43 Fixed bug 5362 - Mac OS ARM doesn't build Metal/Vulkan back-end/renderers C.W. Betts As it is, SDL2's built-in config on macOS for Metal excludes Apple Silicon. This is due to thinking that the 64-bit Mac platform would always be x86_64. My patch fixes this by using the catch-all of 64-bit platforms.
Sam Lantinga 62e39b5f 2020-11-23T20:57:14 Fixed building with an older SDK and macOS target
Sam Lantinga 268aa456 2020-11-23T20:26:28 Fixed compiling with SDL_JOYSTICK_RAWINPUT disabled
Ryan C. Gordon eaa53a19 2020-11-23T22:16:07 joystick: On Linux, don't try to close an invalid inotify file descriptor.
Ryan C. Gordon 5c957747 2020-11-23T22:14:22 joystick: Fix up Linux joystick code to (mostly) compile on FreeBSD.
Sam Lantinga 179bd665 2020-11-23T18:27:43 Don't enable PS5 controller support if DS4Windows is running - they conflict.
Sam Lantinga 5b3616c3 2020-11-23T18:24:05 Generalized the raw input controller driver and moved XInput/WGI detection into it for XInput devices This fixes bad report parsing for various newer Xbox controllers, and this driver is now preferred over XInput, since it handles more than 4 controllers.
Ryan C. Gordon 0ff5d55a 2020-11-23T21:07:28 x11: Don't try to grab the pointer on an unmapped window (thanks, Lee!) Fixes Bugzilla #5352.
Sam Lantinga 04b45b55 2020-11-23T14:28:30 Allow testing a specific controller