src/core


Log

Author Commit Date CI Message
Sam Lantinga aa85436e 2017-08-28T14:45:19 Fixed compile warning
Sam Lantinga da84c3bf 2017-08-28T14:44:21 Added a log message for nativeRunMain()
Sam Lantinga dbb0a2aa 2017-08-28T14:34:15 Removed the need for libSDL2main.a on Android, and separated JNI initialization out for other integrations
Sam Lantinga 2a945b44 2017-08-28T10:03:39 Fixed bug 2361 - [Android] Joysticks do not have unique IDs David Brady When I attempted to make a mapping file for Android gamepads, I quickly discovered that most of the ones that I have here show up as the same device (Broadcom Bluetooth HID), meaning that it was impossible to make mappings on Android, since every device looked the same. This patch will check for the existence of the getDescriptor function added in Jelly Bean, and use it if it's there. The Android Dashboard says that the majority of Android phones should support this function, and doing it this way will not force us to bump up our API version.
Sam Lantinga 0d011ec6 2017-08-28T00:22:23 Renaming of guard header names to quiet -Wreserved-id-macro
Sam Lantinga fe21a747 2017-08-27T18:43:52 Fixed bug 2266 - please add notifications for clipboard updates on Android Sylvain Hi! here's a patch for that with two class loaded regarding API level. Test both case : before API 11 and after. I also remove now unused GetSystemServiceFromUIThread() and minor clean-up (haptic warning prototype).
Sam Lantinga e086a1c1 2017-08-14T20:25:53 Added missing files from the previous commit
Sam Lantinga fb835f9e 2017-08-14T20:22:19 Fixed bug 2330 - Debian bug report: SDL2 X11 driver buffer overflow with large X11 file descriptor manuel.montezelo Original bug report (note that it was against 2.0.0, it might have been fixed in between): http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=733015 -------------------------------------------------------- Package: libsdl2-2.0-0 Version: 2.0.0+dfsg1-3 Severity: normal Tags: patch I have occasional crashes here caused by the X11 backend of SDL2. It seems to be caused by the X11_Pending function trying to add a high number (> 1024) file descriptor to a fd_set before doing a select on it to avoid busy waiting on X11 events. This causes a buffer overflow because the file descriptor is larger (or equal) than the limit FD_SETSIZE. Attached is a possible workaround patch. Please also keep in mind that fd_set are also used in following files which may have similar problems. src/audio/bsd/SDL_bsdaudio.c src/audio/paudio/SDL_paudio.c src/audio/qsa/SDL_qsa_audio.c src/audio/sun/SDL_sunaudio.c src/joystick/linux/SDL_sysjoystick.c -------------------------------------------------------- On Tuesday 24 December 2013 00:43:13 Sven Eckelmann wrote: > I have occasional crashes here caused by the X11 backend of SDL2. It seems > to be caused by the X11_Pending function trying to add a high number (> > 1024) file descriptor to a fd_set before doing a select on it to avoid busy > waiting on X11 events. This causes a buffer overflow because the file > descriptor is larger (or equal) than the limit FD_SETSIZE. I personally experienced this problem while hacking on the python bindings package for SDL2 [1] (while doing make runtest). But it easier to reproduce in a smaller, synthetic testcase.
Sam Lantinga e9d4e310 2017-08-14T14:14:45 Fixed bug 3753 - Android : load methodID during initialization Sylvain Small patch to load some java methodID at start-up (and avoid a potential crash at run-time).
Sam Lantinga de91b124 2017-08-14T06:28:21 Fixed bug 3745 - specify SDLCALL as the calling convention for API callbacks Patches contributed by Ozkan Sezer
Sam Lantinga e54eede2 2017-08-13T21:05:15 Provide the correct state of the on-screen keyboard to the API (patch from Sylvain)
Sam Lantinga 6ee66139 2017-08-13T20:55:59 Fixed bug 3235 - Make the Android window creation similar to iOS' window creation Sylvain Here's a patch. It tries to get the hint first. Resizable will allow any orientation. Otherwise it uses width/height window. setOrientation method is splitted in static and non-static, so that it can be overloaded in a user subclass. Some artefact observed : surfaceChanged() can be called twice at the beginning. When the phone starts in portrait and run a landscape application.
Sam Lantinga c0862512 2017-08-12T12:24:59 Fixed bug 3128 - Removing all the static variables from android SDLActivity and accompanying JNI calls. owen I removed all the static variables from SDLActivity.java Updated all the SDL_android.c jni calls as well I added a new function to SDL_android.c/ h void Android_JNI_SeparateEventsHint(const char* c); This is called by SDL_androidtouch.c so that this TU doesn't need to call any JNI functions.
Sam Lantinga 0a52db54 2017-08-12T08:15:09 Fixed bug 3191 - haptic system on android? Patch provided by jintiao and Milan Nikolic, thanks!
Brandon Schaefer be005b7c 2017-07-28T12:00:10 evdev: Fix 'Syscall param ioctl(TIOCLINUX) points to uninitialised byte' https://pastebin.com/raw/tQjG0kG0
Sam Lantinga 3c09265d 2017-07-10T18:31:28 Fixed bug 3609 - Windows build fails due to conflicting types for 'XINPUT_GAMEPAD_EX' Ozkan Sezer (In reply to Ryan C. Gordon from comment #9) > I've put this patch in as https://hg.libsdl.org/SDL/rev/7213ae46e870 ...can > you verify this works on the latest MinGW? > > Thanks, > --ryan. This patch is wrong: the structure in question has nothing to do with any gcc version in use. I suggest reverting this adding a conigury check for it, instead. Something like the following should do it: (configure needs regenerating.)
Philipp Wiesemann a725efa4 2017-06-15T23:30:50 linux: Fixed using wrong constant for input text size.
Philipp Wiesemann 22c221f3 2017-06-11T22:30:58 linux: Changed internal functions to be static.
Ryan C. Gordon d8444877 2017-06-06T12:35:35 windows: Fix compiling of XInput code on newer MinGW installs. Fixes Bugzilla #3609.
Philipp Wiesemann 4b47fa38 2017-06-04T23:15:47 Removed duplicate includes.
Philipp Wiesemann fc436a3a 2017-06-03T23:00:40 android: Moved internal function to new position. It was grouped with functions for the public system header.
Ryan C. Gordon b135557d 2017-05-29T02:48:51 linux: Don't crash if fcitx support is requested but unavailable. Fixes Bugzilla #3642.
Ryan C. Gordon a1faea98 2017-05-29T00:54:08 fcitx: removed incompatibly-licensed code.
Ryan C. Gordon 1c5f483a 2017-05-29T00:51:02 linux: removed IBus_utf8_strlen(), use SDL_utf8strlen() instead.
Ryan C. Gordon 643f1cb7 2017-05-28T07:14:11 power: Add Linux org.freedesktop.UPower D-Bus implementation. Fixes Bugzilla #3485. (I think.)
Ryan C. Gordon b3f94acb 2017-05-28T07:11:52 linux: Simplify D-Bus interface, remove lots of boilerplate.
Ryan C. Gordon 191f578b 2017-05-28T07:08:10 linux: Make system D-Bus connection available (in addition to session).
Philipp Wiesemann 90ed3daa 2017-05-26T22:45:52 Changed messages about not recognized keys to include discourse link.
Philipp Wiesemann 189b5851 2017-05-25T23:01:16 android: Fixed parameter list in function definitions.
Philipp Wiesemann f6eb23a6 2017-04-09T23:00:42 linux: Changed two variables to be static.
Philipp Wiesemann 42d02890 2017-03-04T23:05:11 Linux: Fixed error message.
Ryan C. Gordon 6046fd4c 2017-02-14T03:03:27 wasapi: Initial WASAPI support, for Windows Vista and later. This should remain binary compatible with Windows XP, as we dynamically load anything we need and fall back to DirectSound/WinMM/XAudio2 if not available.
Ryan C. Gordon 70c0400b 2017-02-13T17:00:46 windows: Try to unify all the GUID comparison code into a core helper function. There are likely several more I missed.
Sam Lantinga ad7c26ff 2017-01-09T11:58:01 We only need the first few keymaps corresponding to the following constants: K_NORMTAB, K_SHIFTTAB, K_ALTTAB, K_ALTSHIFTTAB In the normal case we'll load all the keymaps from the kernel, but this reduces the size of the SDL library for the fallback case when we can't get to the tty.
Sam Lantinga e0a40fb6 2017-01-09T02:54:42 Implemented full evdev keyboard text support This is based on the Linux kernel driver, and has fallback mapping tables in case we aren't connected to a virtual terminal.
Sam Lantinga 49292705 2017-01-08T20:03:18 Fixed bug 3545 - SDL_EVDEV_do_text_input() may be too eager to find error cases Rob I've ran into an issue where I successfully receive SDL_KEY[UP,DOWN] events but not SDL_TEXTINPUT or SDL_TEXTEDITING. In my case the code in SDL_EVDEV_do_text_input() is returning early (on error) prior to calling SDL_SendKeyboardText(). I'm running on the RaspberryPi 3, without X11. In SDL_EVDEV_do_text_input() there is a condition to check keysyms with a type value below 0xf0, then subtract 0xf0 from type. Without understanding the purpose of this code, I disabled it, recompiled, and I'm getting correct SDL_TEXTINPUT events. I'm going to guess that my hack/fix is going to be problematic in some other environment, but after some initial testing it looks like everything is running fine in my setup.
Sam Lantinga 7b66295e 2017-01-08T19:04:38 Removed console check, let the kernel decide whether muting is appropriate on this terminal. We don't fail the init if we can't mute the terminal (we might be running from ssh, or on a system without virtual terminals, etc.)
Sam Lantinga b8ab4eb9 2017-01-08T10:15:22 SDL_evdev.c: fix building against old kernel headers (K_OFF may not be defined.)
Sam Lantinga 7e505b0d 2017-01-07T16:49:23 Don't fail if we can't open the tty, this can be a legitimate use case.
Ryan C. Gordon 61a3ba30 2017-01-07T17:09:14 Replaced a few single-line "//" comments.
Sam Lantinga e9c2dcda 2017-01-07T10:13:04 Fixed bug 3469 - Keypresses leak to the console with 2.0.5 tvc I believe this patch should fix it, instead of looping through all the tty's and seemingly selecting the wrong one and corrupting the console I've just made SDL open /dev/tty which is the console attached to the current process anyway.
Sam Lantinga 41be9756 2017-01-05T23:26:13 Fixed bug 3546 - SDL_EVDEV_is_console() uses type of wrong size when calling ioctl Rob When calling ioctl(fd, KDGKBTYPE, &type) in SDL_EVDEV_is_console(), we declare type as an 'int'. This should be a 'char'. The subsequent syscall, and kernel code, only writes the lower byte of the word. See: http://lxr.free-electrons.com/source/drivers/tty/vt/vt_ioctl.c?v=4.4#L399 ucval = KB_101; ret = put_user(ucval, (char __user *)arg); I've observed intermittent behavior related to this, and I can force an error condition by using an int initialized to 0xFFFFFFFF. The resulting ioctl will set type to 0XFFFFFF02, and the conditional return in SDL_EVDEV_is_console() will fail. Recommend changing to char, or masking off unused bits.
Sam Lantinga 45b774e3 2017-01-01T18:33:28 Updated copyright for 2017
Sam Lantinga b4e069e7 2016-12-26T02:12:21 Fixed bug 3517 - Compiler warnings with gcc -Wstrict-prototypes felix Compiling even a simple SDL2 'hello world' program with gcc -Wstrict-prototypes (GCC 6.2.1) results in warnings like: /usr/include/SDL2/SDL_gamecontroller.h:143:1: attention : function declaration isn't a prototype [-Wstrict-prototypes] extern DECLSPEC int SDLCALL SDL_GameControllerNumMappings(); ^~~~~~ It seems there is a missing 'void' between the parentheses.
Sam Lantinga 26f05ecb 2016-12-02T02:25:12 Fixed missing prototypes on Android, patch from Sylvain
Sam Lantinga 1e8f074c 2016-11-29T05:34:20 Avoid conflicts with multiple versions of udev by first trying the library that is linked with the executable, if any, and then picking the one that is in the build environment. This fixes joystick detection for applications using the Steam Linux Runtime
Sam Lantinga 36156335 2016-11-20T21:34:54 Renaming of guard header names to quiet -Wreserved-id-macro Patch contributed by Sylvain
Sam Lantinga 0d24495b 2016-11-15T01:24:58 Removed unused constants Except for SDL_bmp.c where they are historically interesting and I've left them in.
Sam Lantinga 57d01d7d 2016-11-13T22:57:41 Patch from Sylvain to fix clang warnings
Sam Lantinga 539afc5d 2016-11-01T10:33:44 Fixed bug 3473 - can't build on linux with an old kernel
Philipp Wiesemann 099e8a68 2016-10-15T20:02:17 Linux: Fixed compile warnings about unused variables.
Sam Lantinga 3f38bd91 2016-10-14T08:22:48 Fixed warning about redefining DECLSPEC
Sam Lantinga 3663dbe8 2016-10-14T08:20:40 Fixed warning about missing field initializers in SDL_DBusContext Static variables are automatically initialized to zero.
Sam Lantinga f3502c3c 2016-10-14T01:04:21 Fixed building with cmake when fcitx isn't installed
Philipp Wiesemann 9d0e0749 2016-10-12T23:36:29 Linux: Removed redundant function call.
Sam Lantinga cfb24c76 2016-10-12T00:01:17 Fixed pointer signedness warning
Sam Lantinga 42f85aa2 2016-10-08T11:30:07 Fixed building and using fcitx IME support on Linux
Sam Lantinga 27d4f099 2016-10-07T23:40:44 Implemented SDL_GetHintBoolean() to make it easier to check boolean hints
Sam Lantinga 808c75d1 2016-10-07T18:57:40 Fixed bug 2824 - Add Fcitx Input Method Support Weitian Leung Just moved ibus direct call to SDL_IME_* related functions, and adds fcitx IME support (uses DBus, too), enable with env: SDL_IM_MODULE=fcitx (ibus still the default one)
Sam Lantinga 1051dceb 2016-10-04T03:42:42 Fixed compiler warning about missing field initializers
Sam Lantinga ac7d1174 2016-10-01T15:04:13 Fixed build on older Raspberry Pi environments
Sam Lantinga a0d3e0d6 2016-10-01T14:56:53 Fixed warning and code style in SDL_evdev.c
Sam Lantinga 1a31bbe2 2016-10-01T13:51:56 Fixed bug 3157 - Rudimentary touchscreen support in SDL_evdev (supports Raspberry Pi) tvc I've spent the last few days implementing touchscreen support in core/linux/SDL_evdev.c. It's fairly rudimentary at the moment, as can be seen from the multiple TODO's and FIXME's littered throughout, but I'm mainly submitting this patch for review. I've tested this patch on my Raspberry Pi 2 with the official touchscreen and it works fantastically, reporting all 10 multitouch points. I'm happy to work on this further, the evdev logic also needs a bit of a cleanup I think (I may have included a few changes). But if it's good enough in its current state to be committed then I'm sure there'd be plenty of people pleased, as currently the only other framework/library that supports touchscreens on the Raspberry Pi is Kivy.
Philipp Wiesemann 85588ea0 2016-09-21T23:06:26 Android: Fixed two warnings about unused variables.
Philipp Wiesemann 9581d4a5 2016-08-30T21:15:18 Android: Fixed misleading warning in log output (thanks, Sylvain!). Fixes Bugzilla #3418.
David Ludwig b65763c0 2016-08-29T10:48:56 WinRT: patched to compile
Ryan C. Gordon 8f0af773 2016-08-11T22:04:49 android: implement audio capture support.
Ryan C. Gordon 21c7fe00 2016-08-10T15:34:24 windows: directsound should also map audio device GUIDs to proper names. Moved this code from winmm into core so both can use it. DirectSound (at least on Win10) also returns truncated device names, even though it's handed in as a string pointer and not a static-sized buffer. :/
Philipp Wiesemann 58b323f1 2016-07-17T21:43:12 Android: Fixed missing export of a JNI function (thanks, Andrii!). Fixes Bugzilla #3393.
David Ludwig 8b65d225 2016-04-11T00:22:39 WinRT: bug hack-fix - gamepad detection was failing on Xbox One Win10's 'GamepadAdded' event seems to need to have something registered with it in order for Xinput-based gamepad detection to work. This 'fix' simply causes a dummy event-handler to be added for this event, in case an app wants to use gamepads on Xbox One (most likely).
Eric Wing 704298c0 2016-02-09T17:36:42 Android: C89 cleanup to avoid warnings/errors since the default gcc mode on Android is still pre-C99.
Ryan C. Gordon 881ccccb 2016-01-05T05:31:33 Android: Fixed up drop events for new interface.
Sam Lantinga 42065e78 2016-01-02T10:10:34 Updated copyright to 2016
David Ludwig 44c0b2da 2015-12-31T01:54:11 WinRT: minor code-comment cleanups
David Ludwig 6823a221 2015-12-31T01:50:30 WinRT: fixed bug whereby a Win8.x app's SDL_Window wasn't getting de-marked as maximized (on window restore)
David Ludwig d8aa0662 2015-12-31T01:40:50 Fixed Bug 3217 - WinRT: after alt-tab'ing back into fullscreen app, mouse cursor is sometimes wrong
David Ludwig fa7c15ce 2015-12-27T22:26:27 WinRT: made bug 3202/3213's fix apply for WinRT apps
David Ludwig f2f435ee 2015-12-09T21:34:56 WinRT: fixed bug: Back button(s) weren't working on Win10 Many thanks go to Sylvain Becker for providing details on the fix!
David Ludwig 25abce51 2015-11-29T19:33:11 WinRT: added Win10/UWP (Universal Windows Platform) support "UWP" appears to be Microsoft's new name for WinRT/Windows-Store APIs. This set of changes updates SDL's WinRT backends to support the Win10 flavor of WinRT. It has been tested on Win10 on a desktop. In theory, it should also support Win10 on other devices (phone, Xbox One, etc.), however further patches may be necessary. This adds: - a set of MSVC 2015 project files, for use in creating UWP apps - modifications to various pieces of SDL, in order to compile via MSVC 2015 + the Win10 API set - enables SDL_Window resizing and programmatic-fullscreen toggling, when using the WinRT backend - WinRT README updates
David Ludwig 623898f7 2015-11-26T00:41:39 WinRT: lots of display and windowing related fixes This change-set fixes a lot of windowing related bugs, especially with regards to Windows 8.x apps running on Windows 10 (which was the driver for this work). The primary fixes include: * listed display modes were wrong, especially when launching apps into a non-fullscreen space * reported window flags were often wrong, especially on Windows 10 * fullscreen/windowed mode switches weren't failing (they are not programmatically possible in Win 8.x apps).
Sam Lantinga 11f2a9f8 2015-11-16T21:20:38 Fixed bug 3168 - xinput build failure with dxsdk Ozkan Sezer Yes, the annotations can actually be removed. They are used only by MSVC and aren't vital.
David Ludwig dc804c0e 2015-11-14T21:29:14 WinRT: fixed build error in latest XInput code This change has also been tested as buildable + runnable on Win32 + MSVC 2015, 2013, 2012, and 2010. It may fix similar build errors (in XInput code) that are appearing in MingW builds (on buildbot).
Sam Lantinga a0c4b56f 2015-09-30T15:39:30 SDL - added new SDL_JoystickCurrentPowerLevel() API that returns the battery level of the selected joystick. Currently only implemented for XInput devices, other platforms are a TODO. CR: Sam
Philipp Wiesemann 10daf1f4 2015-09-27T20:12:47 Android: Removed three internal functions not used by SDL. They were not needed internally since the switch to the common EGL backend. Thanks to the SDL mailing list for pointing out that the functions seem unused.
Philipp Wiesemann efad04c3 2015-09-18T21:26:46 Android: Added check if Java method for APK expansion file exists.
Philipp Wiesemann 6e7c479e 2015-09-17T22:30:24 Android: Fixed trying to read from APK expansion files without version hint set. This also fixed overwriting the asset error message which is more useful if no APK expansion files are available and the requested file was not found.
Philipp Wiesemann 92ca42d9 2015-09-17T22:24:54 Android: Renamed SDLActivity's Java method used for APK expansion files. The name was not correct.
Alex Szpakowski a506f1cb 2015-09-14T22:50:55 Windows: Try to use xinput9_1_0.dll if XInput 1.4 and 1.3 are not available. XInput "9.1.0" ships with Windows Vista and 7 systems, but it lacks some features, including support for detecting Guide button presses.
Philipp Wiesemann e8757e87 2015-09-05T20:21:52 Android: Changed return type of four JNI functions from int to jint.
Sam Lantinga 82eec4b6 2015-06-24T17:55:38 Fixed whitespace in SDL_evdev.c
Sam Lantinga 9f50d63d 2015-06-24T17:54:39 Fixed an issue with mouse/keyboard removal Sometimes, on removal SDL_EVDEV_udev_callback() gets called with zero udev_class. This in turn seems to be caused the SDL_udev.c:guess_device_class() failing to find the attributes of the parent device. Apparently this is normal, attributes are not guaranteed to be in place during removal, depending on timing. This lack of attributes causes guess_device_class() to return zero. This fix mimics the code in linux/SDL_sysjoystick.c:joystick_udev_callback() which effectively has the same fix already in place.
Philipp Wiesemann 0e45984f 2015-06-21T17:33:46 Fixed crash if initialization of EGL failed but was tried again later. The internal function SDL_EGL_LoadLibrary() did not delete and remove a mostly uninitialized data structure if loading the library first failed. A later try to use EGL then skipped initialization and assumed it was previously successful because the data structure now already existed. This led to at least one crash in the internal function SDL_EGL_ChooseConfig() because a NULL pointer was dereferenced to make a call to eglBindAPI().
Ryan C. Gordon 71468742 2015-06-12T11:58:31 Make some string literals "const char *", not "char *" (thanks, Martin!). Fixes Bugzilla #3007.
Ryan C. Gordon 699f879a 2015-06-07T17:54:39 Fixed a memory leak (thanks, Zack!). We should probably rework this piece of code a little more after 2.0.4 ships, though. Fixes Bugzilla #3004.
Philipp Wiesemann fd8b7c1c 2015-06-05T19:41:18 Fixed comments at conditional compilation macros.
Ryan C. Gordon 36ecb766 2015-06-01T01:25:22 Changed a static function to match the naming scheme of rest of source file.
Ryan C. Gordon 72a244da 2015-05-26T20:36:45 Android: Added basic drop file support (thanks, "noxalus"!). This lets SDL-based apps respond to "Open With" commands properly, as they can now obtain the requested path via a standard SDL dropfile event. This is only checked on startup, so apps don't get drop events at any other time, even if Android supports that, but this is still a definite improvement. Fixes Bugzilla #2762.
Sam Lantinga 2c4a6ea0 2015-05-26T06:27:46 Updated the copyright year to 2015
Sam Lantinga 507157ab 2015-05-25T16:22:09 Wait for devices to finish initializing when inserted, before using them. Fixes hotplug issue with XBox 360 game controller.
Philipp Wiesemann 5919a859 2015-05-09T22:42:23 Android: Fixed empty parameter list in signatures of internal functions.