Log

Author Commit Date CI Message
Simon McVittie dba79ade 2022-05-04T13:57:30 workflows: Run build-time tests Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie 40bef98f 2022-05-04T19:16:01 test: Add a mode to skip tests that involve arbitrary delays This can be used as a quick acceptance test for CI workflows. Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie b299f74d 2022-05-04T15:34:41 test: Make testevdev succeed if the feature is disabled "Not applicable" is more like success than it is like failure. Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie 6fc7aa28 2022-05-04T13:15:12 cmake: Add some missing test-cases These were built by Autotools but not by CMake. Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie 7d2808e3 2022-04-12T13:33:58 test: Run selected noninteractive tests at build-time In Autotools, these are run by `make -C ${builddir}/test check`. In CMake, they're run by `make -C ${builddir} test` or `ninja -C ${builddir} test` or `ctest --test-dir ${builddir}`. Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie 4da47601 2022-05-04T18:13:38 workflows: Remove redundant `cmake --build` Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie a4594797 2022-05-04T18:13:25 workflows: Only run `cmake --install` on Unix platforms The syntax used in this step assumes a Unix shell. Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie 79a16da6 2022-05-04T18:14:22 workflows: Change how we make CMake verbose Some CI workers don't seem to understand `cmake -v`, and Windows' shell doesn't understand `VERBOSE=1 cmake`. Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie ba6f9627 2022-05-03T13:17:41 Document SDL_VERSIONNUM as able to encode larger minor versions Now that we've said this will be removed from SDL 3, we're free to use any encoding that is compatible with existing SDL versions and will still compare correctly for all SDL 2 version numbers. This allows the SDL 2 minor version to go beyond 1 digit, limited only by the size of SDL_version.minor (which is 8 bits), making the largest possible version number 2.255.99. The patchlevel (micro version) is still limited to 2 digits. Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie e0daa2a5 2022-05-03T13:08:38 Deprecate SDL_COMPILEDVERSION and SDL_VERSIONNUM, to be removed in 3.x The encoding used in SDL_VERSIONNUM (e.g. 2.0.22 -> 2022) cannot represent 2-digit minor versions without overflowing from the hundreds digit into the thousands digit, which produces confusing version numbers that will compare incorrectly when the major version is increased to 3. However, we can sidestep this problem by declaring that SDL_VERSIONNUM will no longer be present in SDL 3, which means it only needs to be able to represent SDL 2 version numbers losslessly. Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie 2a8297e4 2022-05-04T16:43:59 workflows: Add a test to assert that all the version numbers agree Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie f9a5cf77 2022-05-03T13:05:02 Make SDL_VERSION_ATLEAST future-proof against larger version numbers This comparison normally happens at compile-time, not at runtime, so it doesn't matter if it isn't optimal. This avoids incorrect comparison if the minor version in SDL_COMPILEDVERSION and SDL_VERSIONNUM has more than one digit, which would cause it to overflow from the hundreds place into the thousands place. Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie 50bc0136 2022-05-04T17:45:26 workflows: Tell CMake and Makefile.in to show compiler command-lines This is usually desirable for batch processing: it lets us see exactly what is happening in the logs. Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie fff97c95 2022-05-04T16:40:11 build: Mechanically generate ABI versions from version number If we're strict about applying something resembling semantic versioning to the "marketing" version number, then we can mechanically generate the ABI version from it. This limits the range of valid micro versions (patchlevels) to 0-99. Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie 60d702ac 2022-05-04T16:39:05 docs: Document new versioning scheme Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie cd7c2f1d 2022-05-03T15:16:11 Switch versioning scheme to be the same as GLib and Flatpak For stable releases, this gives us the ability to make bugfix-only point releases such as 2.24.1 if we want to, and distinguish between them programmatically. For example, this ability could have been useful after 2.0.16 to fix Xwayland regressions, and after 2.0.18 to fix event loop regressions. For development releases, this gives us the ability to make multiple prereleases during the same feature cycle, and distinguish between them programmatically. For example, this would have been useful during 2.0.22 development, which went through three prereleases before reaching the final release. Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie 63814ec7 2022-05-03T14:39:00 Add static assertions that the version number is consistent Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie 22002d91 2022-05-03T14:09:12 docs/release_checklist.md: Document how/where to bump version numbers Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie d4b82bfa 2022-05-03T13:17:59 Add static assertions for version numbers' limits Signed-off-by: Simon McVittie <smcv@collabora.com>
Cameron Cawley b398a847 2022-05-03T23:21:10 Add SDL_FLOATWORDORDER for older ARM toolchains
Alexander Kanavin adac3bd1 2022-05-03T12:31:50 video: restore ability to disable fb accel via hint Somewhere in code refactoring between .20 and .22 this check was lost, and so the hint had no effect anymore.
Simon McVittie 85a77fb5 2022-05-03T20:22:48 workflows: List files installed by CMake This lets us compare them with Autotools more easily. Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie 90da399b 2022-04-12T14:54:24 workflows: Add a workflow to exercise the Autotools build on Linux This builds the tests, but does not run them (for now). Signed-off-by: Simon McVittie <smcv@collabora.com>
Ozkan Sezer 3f813cf1 2022-05-04T10:05:56 SDL_rawinputjoystick.c: fixed -Werror=declaration-after-statement
Simon McVittie 2021a109 2022-05-03T20:37:03 cmake: Defer test subproject until after defining install/uninstall It looks as though something in the test subproject "leaks" into the main build system, causing us to try to install ${builddir}/test/sdl2.pc instead of the correct ${builddir}/sdl2.pc. Moving the tests subproject further down avoids this. Resolves: https://github.com/libsdl-org/SDL/issues/5604 Signed-off-by: Simon McVittie <smcv@collabora.com>
atfrase db9e14e5 2022-01-31T13:55:37 disabled linux joystick debugging outputs and reverted unnecessary comment edit
atfrase 3b53555b 2022-01-28T14:53:28 copied default Steam Controller mapping for wired and wireless-dongle USB pids
atfrase 13b1bf4f 2022-01-28T13:31:08 added default gamepad mapping for Steam Controller with new GUID (possibly caused by the firmware update to enable BLE?)
atfrase f7a19f9e 2022-01-14T13:14:42 relaxed the digital hat deadzone slightly, and fixed typo in DEBUG_GAMEPAD_MAPPING define
atfrase 3696e23d 2022-01-14T10:45:16 added hints SDL_HINT_LINUX_DIGITAL_HATS and SDL_HINT_LINUX_HAT_DEADZONES to control the new Linux hat handling; added define DEBUG_GAMEPAD_MAPPINGS to log messages when generating default gamepad mapings for Linux joysticks
atfrase 0b8e796e 2022-01-12T22:00:46 added hueristic to differentiate digital vs analog 'hat' input axes and expose the latter as regular axes; added automatic deadzones to hat outputs, in case analog axes are still mapped to digital hats; updated automatic gamepad control mapping to more completely follow the spec
Michael Fitzmayer fbd230bb 2022-05-03T17:51:49 Add support for the Nokia N-Gage (#5597) * Add initial support for the Nokia N-Gage * N-Gage: disable clipping for the time being, issue needs to be resolved later * Move va_copy definition to SDL_internal.h * Move stdlib.h include to SDL_config_ngage.h, much cleaner this way * Remove redundant include, add HAVE_STDLIB_H * Revert "N-Gage: disable clipping for the time being, issue needs to be resolved later" This reverts commit 4f5f0fc36cc7f34fad05e45671dfa7b8dc32fd51. * N-Gage: fix clipping issue by providing proper math functions
emily 3fcc2cb5 2022-05-03T11:19:39 x11: get x1/x2 button state in GetGlobalMouseState
Susko3 f25a78ee 2022-05-03T00:40:42 Enable `SDL_TEXTEDITING_EXT` events in `checkkeys` test
Susko3 6150245d 2022-05-03T00:11:44 Add new verbosity level for logging of `SDL_SysWMEvent`s Now logged only if SDL_HINT_EVENT_LOGGING is set to "3" or above.
Daniel Brookman d1a3981b 2022-05-02T15:22:46 Fix crash when reading background events for MFi controllers on macOS Enabling GCController.shouldMonitorBackgroundEvents to read background events for MFi controllers before receiving the first GCControllerDidConnectNotification is apparently a no-go on macOS (12.3.1 for me), and would crash on attempt. Apple's documentation is... not great, and doesn't point this out. This waits for IOS_AddMFIJoystickDevice() to get called down the chain from GCControllerDidConnectNotification, and enables GCController.shouldMonitorBackgroundEvents if it hadn't been already. On iOS and tvOS, GCController.shouldMonitorBackgroundEvents is ignored, so there's no need to check their versions.
Jan200101 bb0b6dd4 2022-05-02T20:12:13 Fixed using WGI without XInput
Sam Lantinga 5394238c 2022-04-30T11:40:26 Don't include the internal header for a file intended for use by applications
Sam Lantinga 41b91985 2022-04-30T11:39:44 Fixed Xcode warning about Framework include style
Sam Lantinga 829f6b3d 2022-04-30T11:32:04 These headers are system headers, not local headers
Sam Lantinga 0687128c 2022-04-29T20:57:00 Reduce CPU usage in testgamecontroller
Eddy Jansson 9e5cbf03 2022-04-29T22:36:12 Disallow non-positive allocation. Ensure that we're not trying to call SDL_small_alloc() with a count of zero. Transforming the code like this fixes a -Wmaybe-uninitialized warning from GCC 12.0.1
Sam Lantinga f8141970 2022-04-29T11:28:59 Document that SDL_MAX_LOG_MESSAGE is no longer meaningful
Eddy Jansson 6c2928b4 2022-04-29T19:30:47 Switch uses of MIN() to SDL_min() We're excluding files in src/hidapi to minimize the diff against the upstream project.
Eddy Jansson ca26df34 2022-04-29T16:44:32 assert: Allow messages of any length. Messages are no longer truncated to SDL_MAX_LOG_MESSAGE.
Eddy Jansson 88889924 2022-04-29T16:30:30 log: Allow log messages of any length. Log messages are no longer truncated to SDL_MAX_LOG_MESSAGE.
Eddy Jansson 645db217 2022-04-29T14:06:05 log: Use malloc for long messages. For short messages, use a stack buffer that is significantly smaller than SDL_MAX_LOG_MESSAGE. The rationale for this is that we don't want to risk blowing the stack, while at the same time we would like to not put pressure on the memory allocator unless absolutely necessary.
Eddy Jansson 73448fe2 2022-04-29T14:05:15 assert: Remove use of alloca() For short messages, use a stack buffer that is significantly smaller than SDL_MAX_LOG_MESSAGE. For larger messages, fall back to allocation.
Eddy Jansson 97774cdf 2022-04-29T14:01:03 Move in va_copy() define block from stdlib.
Sam Lantinga 7e636b03 2022-04-29T10:16:14 Removed log message length limitation for Apple platforms This works in conjunction with https://github.com/libsdl-org/SDL/pull/5584
Kelly Gravelyn 1aa9754d 2022-04-29T08:47:28 Add missing backslashes in README-linux.md command
Carl Friess 2ccb0dfd 2022-04-13T15:39:29 Check for macOS 10.16 to support apps built with older macOS SDKs
Sam Lantinga a0cdc1fc 2022-04-28T15:01:34 Added declaration of SDL_LogInit() and SDL_LogQuit() Fixes compile warning on Android
Ryan C. Gordon 29694869 2022-04-28T15:56:52 audio: Revert one of the resampler optimizations. This is the one that splits the "left wing" into two for loops to bubble out the conditional that decides if it should read from the left padding or the input buffer. I still believe the optimization is good, but the basic logic of it was incorrect, and needs to be reexamined and fixed before going back into revision control.
Eddy Jansson 5c1f5a73 2022-04-28T20:57:20 test: Correct invalid enum length. Ensure that they can't break like this again.
Ryan C. Gordon 0f45a4e3 2022-04-27T12:22:37 log: Don't try to SDL_free the static array. :) I shouldn't be allowed near computers, I swear.
Ryan C. Gordon 31e83cd1 2022-04-27T12:13:44 log: Fixed build (sorry!)
Ryan C. Gordon fde9a708 2022-04-27T12:05:07 log: Make the message buffer static. Now we don't have to worry about allocation failure, or performance issues or changes to the allocation layout when trying to track down subtle bugs.
Ryan C. Gordon c4141bc1 2022-04-27T09:39:24 log: Wrap the call to the logging implementation in a mutex. Fixes #2463.
Ryan C. Gordon 2a429522 2022-04-27T08:06:28 log: Don't stack-allocate the message buffer. It's 4 kilobytes, so I could see this failing if you have a thread with a tiny stack that unexpectedly logs something.
Ozkan Sezer 12f15aaa 2022-04-27T10:03:32 fix build
Ryan C. Gordon 05bd225a 2022-04-26T23:14:44 x11: If XRandR isn't available, add a generic display. We can get _some_ of the info we need out of standard Xlib and report a single display (which might actually be multiple physical displays mushed into a single desktop). This is better than nothing, but you should really just build with XRandR support and get a better X server. :)
Ryan C. Gordon 7d7ec9c9 2022-04-26T16:41:28 x11: Remove XVidMode and Xinerama support. Fixes #1782.
Ryan C. Gordon ccc70e64 2022-04-26T23:14:21 x11: Fixed some compiler warnings.
Sam Lantinga e551384a 2022-04-26T14:54:14 Added functions to get the platform dependent name for a joystick or game controller
Mirko Galimberti b293888c 2022-04-26T19:44:34 Fixes an issue introduced via #5573 when building for i686
Ryan C. Gordon 5066910b 2022-04-10T13:44:01 audio: Make pregenerated resampler kaiser filter more precise.
Ryan C. Gordon 111c3add 2022-04-10T13:23:51 audio: Resampler optimizations. - Calculate `j * RESAMPLER_SAMPLES_PER_ZERO_CROSSING` once per loop iteration since we use it multiple times. - Do the left-wing loop in two sections: while `srcframe < 0` and then the remaining calculations when `srcframe >= 0`. This bubbles a conditional out of every iteration of a tight loop, giving us a boost. We could _probably_ do this to the right-wing loop too, but it's less straightforward there. - The real win: Use floats instead of doubles. This almost doubles the speed of the entire function on Intel CPUs, and for embedded things without hardware-level support for doubles, the speedup is enormous. This in theory might reduce audio quality, though, and I had to put a check in place to avoid a division-by-zero that we avoided at higher precision, but this is likely to be worth keeping for at least the Sony PSP and other smaller platforms, if not everyone.
Ryan C. Gordon de019568 2022-04-09T23:43:57 audio: Prebake the resampler's kaiser table instead of doing it at runtime.
Ryan C. Gordon f6eb4b07 2022-04-26T13:14:15 pulseaudio: Feed audio data in response to write callbacks. Instead of waiting until the entire buffer from the SDL callback is ready to be accepted by PulseAudio, we use pa_stream_set_write_callback and feed some portion of the buffer as callbacks come in asking for more. This lets us remove the halving of the buffer size during device open, and also (hopefully) solves several strange hangs that happen in unusual circumstances. Fixes #4387 Fixes #2262
Sam Lantinga 01ef98a5 2022-04-26T10:19:03 Don't force keyboard auto-repeat on, if the user has disabled it for some reason Fixes https://github.com/libsdl-org/SDL/issues/2400
FriendlyAI 795744fc 2022-01-07T10:11:46 Turn off relative mouse before window checks as well
FriendlyAI e2d268a3 2022-01-06T23:42:44 SDL_cocoamouse.m: SetRelativeMouseMode even if out of focus Should fix #3087
Jibb Smart d7c07d6b 2022-04-27T00:57:17 Read motion sensor scale from Switch controllers (#5555) * Read IMU scale data from Switch controllers. Up until now, SDL has used hard-coded scaling which isn't correct with some supported controllers. * Moved declarations to beginning of code blocks to better fit with SDL style requirements
Mirko Galimberti 76afb858 2022-04-25T10:35:56 Introduces Cocoa_GetWindowDisplayIndex. This enable a proper management for dpi when switching between retina and non-retina displays.
Dimitriy Ryazantcev c39df2fb 2021-12-22T18:27:10 joystick: get HID top-level collection preparsed data directly from RawInput API.
Eddy Jansson 8c1584e8 2022-04-26T17:56:33 WhatsNew: Start block for 2.0.24
Ozkan Sezer e9ff4fdd 2022-04-25T23:55:50 add SDL_bsearch
Mathieu Eyraud 0b2a55ea 2022-02-02T14:58:33 Fix typo
meyraud705 3dcfe860 2022-02-02T13:59:49 Add joystick battery event
meyraud705 0964c84d 2022-02-02T11:21:32 Always use SDL_PrivateJoystickBatteryLevel to update battery level But do not use it for initialisation.
Sam Lantinga fa29e2d7 2022-04-25T13:45:51 Updated to version 2.0.23 for development
Ryan C. Gordon 53dea983 2022-04-25T13:51:15 x11: revert checks for _NET_WM_STATE_FULLSCREEN changes. This reverts commit 85977354fbce9ecb2add660a88e6bec3532c3e26. This reverts commit 0249df9d960f9bc28b476e1171c5501fc37cca12. Fixes #5572. Reopens #5390.
Sam Lantinga 981e1e3c 2022-04-23T10:32:40 Fixed logical size synchronization issue on macOS https://discourse.libsdl.org/t/sdl-2-0-22-prerelease/35306/6
Ozkan Sezer 7a574303 2022-04-23T20:01:40 hidapi, libusb: import mainstream commit 536bad201e
Sam Lantinga fa073ed0 2022-04-22T22:31:04 Revert "Fix relative mouse input for Unvanquished (unvanquished.net)" This reverts commit 331859079674465a39b24f32a6a113959601dca3. Fixes https://github.com/libsdl-org/SDL/issues/5569
Sam Lantinga 8986efd6 2022-04-22T14:21:46 Added support for the Backbone One controller on iOS
Sam Lantinga 2ca08378 2022-04-22T14:21:41 SDL: sometimes the PS5 controller doesn't report having to power even when connected over USB. Possibly related to being completely charged? Either way we already know that it's USB or BT so let's use the driver's knowledge instead.
Sam Lantinga 04bf7c94 2022-04-22T09:36:39 Fixed build
Sam Lantinga d9b5805b 2022-04-22T09:12:48 Return a correlation error when trigger rumble is attempted without correlation
Eddy Jansson 0288de85 2022-04-22T14:24:10 SDL_Rect: Add \sa documentation block to SDL_FRect
Sam Lantinga ba62ead5 2022-04-18T13:45:41 Handle potential out of memory condition when working with hints
Cameron Gutman 145824f6 2022-04-21T01:38:53 WGI: Only call RoUninitialize() if RoInitialize() succeeded
Cameron Gutman 00b2e10a 2022-04-20T20:58:29 WGI: Keep a reference to the MTA to avoid crashing on COM teardown Fixes #5552 Fixes #5270
Cameron Gutman 8982d9f4 2022-04-18T21:19:25 windows: Fix RoInitialize() failure after a CoInitializeEx() call using apartment threading This mirrors the same codepath in WIN_CoInitialize() which handles STA and MTA.
Cameron Gutman 923cb446 2022-04-20T21:02:40 windows: Fix calling convention for RoInitialize/RoUninitialize Fixes #5563
Ryan C. Gordon d4a01bfe 2022-04-20T14:07:30 os2: SDL_DestroyMutex should ignore NULL mutexes. Every other backend does this, so this should match, now. It's possible this was harmless, but we can avoid the system call and the (likely?) debug message when it fails, though!
Eddy Jansson a40405d7 2022-04-20T18:06:02 hidapi: Wrap CopyHIDDeviceInfo in define checks. The purpose of this is to silence a 'defined but not used' warning.
Eddy Jansson 5bc29334 2022-04-20T15:53:25 test: Basic tests for SDL_FRectEquals Based on the integer version. These tests mostly check that input isn't mangled and that invalid input gives the expected negative result.
Eddy Jansson fc944859 2022-04-20T05:46:45 SDL_Rect: Use a default epsilon in SDL_FRectEquals() Add SDL_FRectEqualsEpsilon() for when more control over equality test is required.