Log

Author Commit Date CI Message
Sylvain Becker 1d220401 2019-08-19T20:35:02 Fixed bug 4186 - ARM/NEON audio converters cause strange clicking noises reverse the order when storing ouput buffer
Sylvain Becker c0fc94f2 2019-08-19T16:57:15 Fixed bug 4186 - ARM/NEON audio converters cause strange clicking noises reverse the order when storing ouput buffer
Alex Szpakowski bfdb0e97 2019-08-18T10:38:32 metal renderer: optimize SDL_RenderFillRect slightly.
Alex Szpakowski ff7888e6 2019-08-18T09:35:11 render: fix colors not being set properly after the previous change
Alex Szpakowski 1be03b40 2019-08-17T22:26:33 render: avoid a couple redundant memcmp calls in all drawing functions. Improves performance slightly.
Alex Szpakowski e8278d0d 2019-08-17T16:53:08 metal renderer: use vertex attributes instead of indexing into a buffer with the vertex id in the shader. Allows for more flexibility with vertex setup in the future. Also optimize vertex buffer binding slightly.
Alex Szpakowski 55a46abf 2019-08-17T01:09:30 metal renderer: more closely match buffer data alignment requirements from the metal specification.
Alex Szpakowski 69c6924c 2019-08-17T00:43:44 render: simplify vertex and uniform data allocation. Improves performance of various SDL_Render functions (bug #4764).
Alex Szpakowski e5acccc7 2019-08-17T00:37:22 metal renderer: use the device address space instead of the constant address space for colors. It doesn't negatively impact GPU performance in my tests, and it removes the need for 256 byte memory alignment of color data on macOS.
Alex Szpakowski 3fb5cabe 2019-08-16T22:13:30 metal: Update compiled shaders based on compilation script changes
Alex Szpakowski 9e57e3e5 2019-08-16T22:11:50 metal: Update shader compilation script with fixes for newer xcode versions and for running on older platforms
Alex Szpakowski 79cd6cfc 2019-08-15T19:38:12 iOS: Fix issues with Split VIew on iPad (bugs #4586, #4705).
Sylvain Becker 7f9016f2 2019-08-15T20:38:25 Android: remove tabs/indent
Sylvain Becker 412775f5 2019-08-13T16:00:08 Android: SDL_image/SDL_mixer/SDL_ttf partially compiling with CMake (bug 3918)
Sam Lantinga 7a84dd42 2019-08-12T13:35:36 Disable HIDAPI by default, as it breaks on Linux when trying to use libusb with non-root permissions on some distributions
Sylvain Becker 155087d1 2019-08-11T15:23:37 Fixed bug 3918 - CMake support for android project
Ozkan Sezer 7f5fc74c 2019-08-08T23:35:02 fix permissions
Sam Lantinga cbdee4d6 2019-08-08T13:26:05 [ SDL ] Fix compile error building for Windows/ARM64 on Visual Studio 2017 Win10 SDK 10.0.18362.0 which requires ar,74intr.h/arm64_neon.h header instead of armintr.h/arm_neon.h for intrinsics. @saml
Ethan Lee c76f0f5b 2019-08-06T23:08:01 hidapi: Explicitly include locale.h, for setlocale
Sam Lantinga 2a1adf71 2019-08-05T23:52:16 Fixed bug 4747 - [Patch] SDL_ShowMessageBox ignores BUTTON_RETURNKEY_DEFAULT flag Caleb Cornett SDL_ShowMessageBox on UIKit doesn't do anything special with buttons that are marked with the flag SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT. According to Apple's documentation on UIAlertController, a button can respond to a return key if it's marked as the preferredAction of the controller. SDL doesn't set a preferredAction currently, so I've attached a patch to fix that.
Sam Lantinga e9ec7d41 2019-08-05T23:46:09 Fixed bug 4354 - CMake builds do not correctly enable IME on Linux Callum McGing While the CMake build checks for ibus and does enable the ibus backend with set(HAVE_IBUS_IBUS_H TRUE), this does not define SDL_USE_IME, thus CMake built SDL2 (as in Arch Linux) cannot use IME at all. The attached patch fixes this behaviour when building against ibus. IME support will still fail when only fcitx is available on the build system.
Sam Lantinga afdb40af 2019-08-05T23:38:48 Fixed bug 4689 - SDL fails to detect compositor shutdown on Wayland -- program keeps running M Stoeckl To reproduce: 1. Run any SDL-based program with a Wayland compositor, orphaning it so that it doesn't have an immediate parent process. (For example, from a terminal, running `supertux2 & disown`.) The program should use the wayland backend, i.e. by setting environment variable SDL_VIDEODRIVER=wayland. 2. Kill the compositor process. Results: - The SDL program will keep running. Expected results: - The SDL program should close. (What close should mean here, I'm not sure - is injecting an SDL_Quit the appropriate action when a video driver disconnects?) Build data: 2019-06-22, hg tip (12901:bf8d9d29cbf1), Linux, can reproduce with sway, weston, and other Wayland oompositors.
Alex Szpakowski aebaa316 2019-08-05T12:35:32 Add public APIs for creating a Metal view attached to an SDL window. Add SDL_metal.h.
Alex Szpakowski f3683d3a 2019-08-04T23:30:55 macOS: fix a typo in touch handling code.
Alex Szpakowski 109cbd6e 2019-08-04T16:56:40 Fix touch-related compile errors on Linux.
Ozkan Sezer 6f8910e3 2019-08-04T14:56:02 minor warning fixes.
Ethan Lee aa09e612 2019-08-04T00:01:38 Port libusb hid.c to SDL, add to MinGW configure
Alex Szpakowski 2fb71ac5 2019-08-04T00:34:23 Implement touch window IDs on x11/xinput2.
Ozkan Sezer 42e4219c 2019-08-03T12:50:28 fix permissions
Ozkan Sezer edc15889 2019-08-03T12:49:50 remove test/aclocal.m4
Sam Lantinga 67fa8601 2019-08-02T18:14:31 Fixed building on Mac OS X without libusb
Sam Lantinga e92fe23c 2019-08-02T17:20:00 Fix nullptr crash on android nullcheck the device coming back from InputDevice.getDevice(deviceId) in new code added to sdlactivity.onkey. java.lang.NullPointerException: at org.libsdl.app.SDLSurface.onKey (SDLActivity.java:1793) at android.view.View.dispatchKeyEvent (View.java:13321) at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1912) at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1912) at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1912) at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1912) at com.android.internal.policy.DecorView.superDispatchKeyEvent (DecorView.java:685) at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent (PhoneWindow.java:1869) at android.app.Activity.dispatchKeyEvent (Activity.java:3447) at org.libsdl.app.SDLActivity.dispatchKeyEvent (SDLActivity.java:496) @dang @saml @dave
Sam Lantinga 63197c43 2019-08-02T17:19:50 Fix bug where the wrong button was the default in the old message box because buttons were added backwards, breaking the indexing used by GetButtonIndex. Add messagebox flags to explicilty request left-to-right button order or right-to-left. If neither is specified it'll be some platform default.
Sam Lantinga d52ffcf9 2019-08-02T17:12:49 Added support for a few controllers on Android
Alex Szpakowski d5ec735a 2019-08-01T18:22:12 Add a windowID field to SDL_TouchFingerEvent (bug #4331). This is unimplemented on some platforms and will cause compile errors when building those platform backends for now.
Ozkan Sezer 59ea0735 2019-08-01T17:41:40 configury: allow libusb-less hidapi for macosx.
Ozkan Sezer c37c6cbb 2019-07-31T23:37:02 use WIN_IsWindowsVistaOrGreater() from core/windows for isVistaOrNewer
Sam Lantinga c10a8742 2019-07-31T10:20:37 Make sure HIDAPI is initialized whenever we call HIDAPI_IsDevicePresent()
Ozkan Sezer 1b7fc81e 2019-07-31T19:40:50 minor whitespace tidy-up.
Andrew Eikum e149f4c4 2019-07-31T11:34:00 cmake: Fix locating libusb header at configure-time Removing the CheckUSBHID call is necessary to avoid caching the failed header check result before we find libusb via pkg-config.
Ethan Lee f7d82e56 2019-07-31T12:20:55 hidapi: Add SDL_hidapi.c, allows support for multiple hidapi backends. This is currently supported on Linux and macOS. iOS and Android are not supported at all, Windows support could be added with some changes to the libusb backend. The Visual Studio and Xcode projects do not use this feature. Based on Valve Software's hid.cpp, written in collaboration with Andrew Eikum.
Andrew Eikum c172f36b 2019-07-31T11:14:48 joystick: Ensure HIDAPI is initialized before calling it
Sam Lantinga f8400cbb 2019-07-31T09:11:20 Fixed bug 4692 - Command line parsing Galadrim As I have seen, SDL implements its own command line parser for Windows in SDL_windows_main.c. Unfortunately, it doesn't seem to allow command line arguments with trailing backslashes if quoting is required. Usually, when you write an application that gets command line arguments passed as argc and argv, the parsing is done by parse_cmdline. The Windows API also provides the function CommandLineToArgvW, so an application can parse itself if only the command line string is provided. Both functions behave almost identically according to their documentation. If the argument "\\" (including the quotes) is passed, they both turn it into a single backslash. The SDL command line parser on the other hand doesn't recognize the second quote character as the closing character in this example and therefore includes it in the parsed argument. The parser does not count the number of backslashes preceding a quote. It always treats a quote as escaped if a backslash is in front of it. Therefore, it should be impossible to quote and escape an argument correctly, if it has a trailing backslash and contains characters that require quoting. Of course, each application is allowed to implement its own parsing rules, so SDL is free to do so. But the problem I see is that there are arguments, that are impossible to be passed to the parser correctly, as I described above. Is there a reason, why SDL does not simply use CommandLineToArgvW instead of implementing its own parser? Here are some links that show that correct argument parsing, as it is usually done in Windows, is quite complicated: https://docs.microsoft.com/en-us/windows/desktop/api/shellapi/nf-shellapi-commandlinetoargvw http://www.windowsinspired.com/how-a-windows-programs-splits-its-command-line-into-individual-arguments/
Ozkan Sezer 4953e050 2019-07-31T05:11:40 use SDL_zeroa at more places where the argument is an array.
Ozkan Sezer 7a47c292 2019-07-31T01:22:02 Fix bug 4746 - introduce SDL_zeroa macro.
Ozkan Sezer f96d7cc0 2019-07-31T01:19:26 minor build fix.
Ozkan Sezer fdc67c3c 2019-07-31T00:10:00 MS_ADPCM_Decode: fix assigning an array to a pointer (lose '&').
Ozkan Sezer 2ea0ec62 2019-07-31T00:07:15 better readability..
Ozkan Sezer 5f04ed5f 2019-07-31T00:06:50 SDL_iconv_string: add (char*) casts before SDL_malloc() calls.
Ozkan Sezer ceee7def 2019-07-31T00:05:28 minor build fixes.
Sam Lantinga 97fefd05 2019-07-30T11:00:00 Fixed bug 4538 - validate image size when loading BMP files
Sam Lantinga a5433610 2019-07-30T10:15:49 Fixed bug 4742 - SDL 2.0.10 DMG has duplicated files (instead of symlinks)
Sam Lantinga 31cb854f 2019-07-30T10:04:46 Fixed bug 4745 - 2.0.10 fails to build against macOS 10.11 SDK Joshua Root NSEventSubtypeMouseEvent was added in 10.12, so it needs to be defined on 10.11 as well
Sylvain Becker 18bcafff 2019-07-27T20:21:42 Fixed bug 4739 - Android: loading native libs, generated by bundletool (Thanks akk0rd87)
Alex Szpakowski 39e8b007 2019-07-27T14:08:51 macOS: fix atomics using deprecated functions instead of compiler intrinsics, when SDL is built with the Xcode project.
Sam Lantinga dc714389 2019-07-25T15:21:44 Don't call hid_enumerate() if the HIDAPI drivers are all disabled
Sam Lantinga aaffbb2e 2019-07-25T11:04:36 Added tag release-2.0.10 for changeset 969a6f84b061
Andrew Eikum 738dff4b 2019-07-25T08:05:13 hidapi: Update repository URLs Upstream hidapi has been re-homed. Update the repo URLs to help guide folks where to contribute fixes.
Andrew Eikum 0e9560ae 2019-07-23T14:41:00 hidapi: Zero out new hid_device_info structs
Sam Lantinga e954e32b 2019-07-18T19:33:17 Fixed bug 4726 - Fix for tvOS GetPrefPath Caleb Cornett Unlike iOS and macOS, tvOS does not have any persistent local storage. In fact, the ApplicationSupport directory pointed to by the existing Cocoa GetPrefPath() throws an error whenever any attempt is made to access it. To get any local storage on an Apple TV, our only option is to use a temporary cache directory. This patch changes the tvOS PrefPath to this cache directory and also logs a critical warning that this if developers want their save data to persist across game sessions, they must use some form of iCloud storage.
Ethan Lee bf9bf602 2019-07-17T23:20:57 Copypaste SDL_NSLog to UIKit backend, document it as such
Sam Lantinga 52e62329 2019-07-17T16:47:19 Fixed build error
Sam Lantinga a06d8cd0 2019-07-17T16:47:17 Merged latest changes from Steam into controller_type.h
Sam Lantinga 1dc24160 2019-07-17T16:47:13 Add linked list of opened HID devices to prevent accessing already freed devices in device removal callback that is sometimes called even after being unregistered
Sam Lantinga 89de2512 2019-07-17T13:01:44 Added support for the Victrix Pro Fight Stick for PS4
Sam Lantinga e7c2cf10 2019-07-15T09:36:53 Fixed bug 4704 - SDL_HINT_ANDROID_SEPERATE_MOUSE_AND_TOUCH on Windows? superfury I notice that, somehow, when locking the mouse into place(using SDL_SetRelativeMouseMode), somehow at least the movement information gets through to both mouse movement and touch movement events? My app handles both, so when moving a touched finger accross the app(using RDP from an Android device) I see the mouse moving inside the app when it shouldn't(meaning that the touch movement is ignored properly by the app(press-location dependant) but the mouse movement is still performed due to the mouse movement events)?
Sam Lantinga 064d1223 2019-07-14T16:59:39 Fixed bug 4723 - Generic Xbox pad controller bindings seem odd/broken alexrice999 I have a knock off wired xbox 360 controller called afterglow for xbox 360 controller. Despite there being a few afterglow controllers in the controller mapping the guid of my controller seems to map to Generic Xbox pad. This binding is as follows: ``` "030000006f0e00001304000000010000,Generic X-Box pad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:a0,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:a3,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,", ``` When running openmw I have a strange issue that the joysticks work for up and down movements but not for side to side. I managed to track this down to the side to side events being classified as joystick events instead of gamepad events. I believe this is due to both "leftstick" and "leftx" being bound to "a0" which seems odd to me. If I change openmw's mappings to remove these the controller works as expected. I was hoping someone who knows a lot more than me (as I have only been exploring this today trying to fix my controller) would know what is happening
Jimb Esser 6a7161dc 2019-07-14T16:48:31 Blacklist Corsair device causing hang
Alex Szpakowski 8fb8adfc 2019-07-13T17:04:02 macOS: Fix SDL_GL_CreateContext/MakeCurrent on non-main threads causing a Main Thread Checker warning when built with Xcode 11 / the macOS 10.15 SDK. Fixes bug #4714.
Ryan C. Gordon 73536d93 2019-07-12T21:28:43 ios: Fixed MFi guide button not being detected (thanks, Caleb!). Fixes Bugzilla #4721.
Ryan C. Gordon 70f0b093 2019-07-12T13:40:58 cmake: Add setupapi library to Windows build dependencies (hidapi needs it). Fixes Bugzilla #4719.
Ryan C. Gordon 27ad8e5d 2019-07-11T01:07:14 cocoa: Set keyboard mod state correctly when turning off capslock. Fixes Bugzilla #4716.
Sylvain Becker 86965eec 2019-07-10T10:06:28 x11: prevent a synthetic mouse event when using a touchscreen With multitouch, register to receive XI_Motion (which desctivates MotionNotify), so that we can distinguish real mouse motions from synthetic one. (bug 4690)
Ryan C. Gordon 6ef01e52 2019-07-09T17:28:02 x11: set some modality things on message boxes with parent windows.
Sylvain Becker 66252035 2019-07-09T11:46:42 SDL_Mouse/Touch: discard synthetic events when hints are not set. Those are generated/flagged by platform layer.
Ozkan Sezer d550867a 2019-07-09T08:55:00 fix permissions
Ryan C. Gordon 66d4d8e2 2019-07-08T16:46:52 cmake: Added HIDAPI support.
Ryan C. Gordon 4df22d81 2019-07-08T16:08:16 configure: Windows and macOS now respect --enable-hidapi. (and it defaults to "yes" on those platforms. Other places, which use libusb, still default to no because they probably need root permissions to work.)
Ryan C. Gordon e841b066 2019-07-08T13:41:01 cocoa: Another attempt at mouse vs touch support. This time, we make anything we think is a MacBook trackpad report its touches as SDL_MOUSE_TOUCHID, even though they're not _actually_ synthesized events, and let all mouse input--even if the OS synthesized it from a multitouch trackpad on our behalf--look like physical input. This is backwards from reality, but produces the results most apps will expect. Note that if you have a real touch device that doesn't appear to be the trackpad, it'll produce real touch events with unique device ids, so it's not a total loss here, but also note that the way we decide if it was the trackpad is an imperfect heuristic; it happens to work out right now, but it's not impossible that a real touchscreen could come to the Mac at some point and (incorrectly?) call it a "mouse" input, etc. But for now, good enough. Fixes Bugzilla #4690.
Cameron Gutman 7e09718d 2019-07-07T11:23:16 Ignore synthetic mouse events generated for touchscreens Windows generates fake raw mouse events for touchscreens for compatibility with legacy apps that predate touch support in Windows. We already handle touch events explicitly, so drop the synthetic events to avoid duplicates.
Sam Lantinga 680e7937 2019-07-07T09:10:56 Fixed bug 4710 - audio/alsa: avoid configuring hardware parameters with only a single period Anthony Pesch The previous code first configured the period size using snd_pcm_hw_par- ams_set_period_size_near. Then, it further narrowed the configuration space by calling snd_pcm_hw_params_set_buffer_size_near using a buffer size of 2 times the _requested_ period size in order to try and get a configuration with only 2 periods. If the configured period size was larger than the requested size, the second call could inadvertently narrow the configuration space to contain only a single period. Rather than fixing the call to snd_pcm_hw_params_set_buffer_size_near to use a size of 2 times the configured period size, the code has been changed to use snd_pcm_hw_params_set_periods_min in order to more clearly explain the intent.
Sam Lantinga 67bb882e 2019-07-03T15:57:55 Fixed bug 4707 - SDL_SetRelativeMouseMode fails on Vivante Cameron Gutman The bugfix in https://hg.libsdl.org/SDL/rev/ca9417a52f18 caused SDL_SetRelativeMouseMode() to begin failing on Vivante (Steam Link). Even though Vivante doesn't have a SetRelativeMouseMode() or WarpMouse() function, it's in relative mode already (because it uses evdev) so the function was actually working as intended. I think providing a no-op SetRelativeMouseMode() function for Vivante is a reasonable fix. Since it's already getting relative events through evdev, it really is a no-op to "enter relative mode". In fact, this is probably the right thing to do for all backends that use evdev (vivante, raspberry, and kmsdrm). Raspberry and kmsdrm both have WarpMouse() implementations so SDL_SetRelativeMouseMode() isn't failing there, but it still seems to make sense not to have to do the fake warping if they're evdev-based anyway.
Sylvain Becker f994da0e 2019-07-03T13:37:54 Fixed bug 4702 - Android back button does not send SDL_KEYDOWN event fallback when event.getSource() is SOURCE_UNKNOWN
Sam Lantinga 3fc447df 2019-07-03T02:37:15 Fixed bug 4708 - testdropfile: double-free Juha Niemim?ki SDLTest_CommonEvent seems to free the file name so testdropfile prints some garbage to console and crashes when freeing the name again.
Ryan C. Gordon b46c7719 2019-07-02T16:49:35 raspberry: Actually commit the whole patch. :) (Thanks, Joe!) Fixes Bugzilla #4699.
Ryan C. Gordon d2d06f44 2019-07-02T12:29:36 cocoa: Don't report trackpad mouse events as synthesized touches. Fixes Bugzilla #4690, sort of. I guess.
Ryan C. Gordon d2058b45 2019-07-02T10:26:54 raspberry: Fixed missing mouse cursor (thanks, Joe!) "Starting with changeset 12433, the mouse cursor is not displayed on the Raspberry Pi platform, due to a bug in the handling of the new "global_cursor" in RPI_ShowCursor(). Currently, if cursor == global_cursor, the function immediately returns 0. The function should not return here. Instead, if cursor == global_cursor, it shouldn't try to hide the current cursor and update global_cursor = cursor. However, it *should* still continue through the rest of the function." Fixes Bugzilla #4699.
Ryan C. Gordon d5ebbcb4 2019-07-02T09:43:26 dbus: Don't SimulateUserActivity if we're already inhibiting the screensaver.
Ryan C. Gordon 94658099 2019-07-02T09:38:31 dbus: Add org.freedesktop.ScreenSaver.SimulateUserActivity support.
Alex Szpakowski 027887da 2019-07-01T14:52:56 iOS: Fix the window size not being set properly when Split View is used on an iPad (bug #4586).
Sam Lantinga 972bdfb4 2019-07-01T09:05:15 Made it more explicit that 2.0.10 and newer are required for the SDL_RW* functions
Sam Lantinga 60606dfb 2019-07-01T09:02:04 Documented that the SDL_RW* macros no longer exist, and you can't use an older SDL library if you build with SDL 2.0.10.
Sam Lantinga 959cfc42 2019-06-30T23:58:31 Fixed memory barrier macro check so it isn't quite so fragile
Sam Lantinga a8bea858 2019-06-30T23:55:28 Limit the compile error to the case where we actually define the memory barrier macro as the function
Sam Lantinga cc47810d 2019-06-30T23:26:16 Fixed bug 4683 - SDL_atomic infinite recursion on armv6/armv5 w/ thumb The real problem is that SDL_atomic.c was built in thumb mode instead of ARM mode, which is required to use the mcr instruction on ARM platforms. Added a compiler error to catch this case so we don't generate code that does infinite recursion. I also added a potentially better way to handle things on Linux ARM platforms, based on comments in the Chromium headers, which we can try out after 2.0.10 ships.
Sam Lantinga 797d2c59 2019-06-30T22:48:13 Fixed bug 4436 - [OpenBSD] fix D-pad daniel.c.sinclair Hi, this patch breaks dpad/hat input on my PS4 controller. The attached patch restores functionality. Calling SDL_PrivateJoystickHat() at the end of BSD_JoystickUpdate was setting the hat state to zero on every kind of input, instead of just the HUG_DPAD events.
Sylvain Becker 22a2decf 2019-06-28T16:38:42 Android: concurrency issues, make sure Activity is in running State when calling functions like SDL_CreateWindow, SDL_CreateRenderer, Android_GLES_CreateContext Bugs 4694, 4681, 4142
Sylvain Becker cfed0b77 2019-06-28T16:14:50 Add an "error" label in SDL_CreateRenderer (no op)
Sylvain Becker aa45af7f 2019-06-28T16:05:20 Android: explicitly expand Android_GLES_MakeCurrent/Android_GLES_CreateContext from SDL_egl_c.h
Ryan C. Gordon 57e08c27 2019-06-26T13:21:43 cocoa: Check for capslock in -[NSResponder flagsChanged], not with IOKit. Using IOKit for this pops up a warning at startup on macOS 10.15 ("Catalina"), asking the user to authorize the app to listen to all keyboard input in the system, which is unacceptable. I _think_ we were using IOKit under incorrect presumptions here; the Stack Overflow link mentioned in it was complaining about not being able to use flagsChanged to differentiate between left and right mod keys, but that's not an issue for capslock. It's also possible this code was trying to deal with capslock changing when the window didn't have focus, but we handle this elsewhere now, if we didn't at the time.