src


Log

Author Commit Date CI Message
Sam Lantinga fead0b24 2019-12-19T15:02:12 Added missing files from previous commits
Sam Lantinga e22e77da 2019-12-19T15:01:35 Added an untested driver for the Nintendo GameCube adapter, based on code contributed by Ethan Lee
Sam Lantinga 15d30298 2019-12-19T15:01:32 Added support for wireless Xbox 360 controllers using the HIDAPI driver
Sam Lantinga e7f7e3f4 2019-12-19T15:01:30 Refactored HIDAPI controller code to support dongles and hubs that dynamically attach controllers
Sam Lantinga 4237b183 2019-12-19T04:31:00 Fixed compiler warning
Sam Lantinga 52b6ab21 2019-12-16T17:11:23 Added support for the SteelSeries Stratus Duo
Sam Lantinga bc430d40 2019-12-16T10:26:36 Update for bug 4883 - Add approximation for display DPI on iOS Aaron Barany I realized I made a minor mistake in my patch: I changed the constructor prototype for SDL_DisplayData, but didn't update the declaration in the .h file. The compiler and linker don't complain, but it would probably be best to fix in case a later change runs into a problem from the mismatch. I have attached a patch to fix this.
Sam Lantinga a7ae9175 2019-12-16T10:20:03 Fixed bug 4898 - No rumble because of integer overflow in SDL_JoystickRumble meyraud705 On a Dualshock 4 controller using hidapi driver, calling SDL_JoystickRumble with a duration too long (SDL_HAPTIC_INFINITY for example) causes the rumble to stop immediately. This happens because of integer overflow on line 301 of SDL_hidapi_ps4.c (https://hg.libsdl.org/SDL/file/a3077169ad23/src/joystick/hidapi/SDL_hidapi_ps4.c#l301), which sets expiration time in the past.
Sam Lantinga 9f8009f2 2019-12-13T16:12:41 Added mappings for the Razer Serval on Windows and Mac OSX
Sam Lantinga cf9af481 2019-12-13T16:12:39 Added support for the 8Bitdo NES30 GamePad in wired mode
Sam Lantinga c2b6d6f9 2019-12-13T16:12:37 Enable the LED on PowerA Xbox One controllers
Sam Lantinga 511df4a5 2019-12-13T16:12:35 Added support for the BDA XB1 Spectra Pro
Sam Lantinga 55f8eabf 2019-12-13T16:12:33 Identified the BDA XB1 Classic Controller
Sam Lantinga 0352814a 2019-12-13T16:07:25 Added general remapping of controller manufacturer
Sam Lantinga b51d7f35 2019-12-13T16:07:22 Added support for the HORI PAD A
Sam Lantinga 23c39a2e 2019-12-12T19:14:37 Strip trailing whitespace on controller manufacturer identification
Sam Lantinga 4d4e5584 2019-12-12T19:07:26 Fixed binding D-pad on NES30 controller
Sam Lantinga cd515bd1 2019-12-12T14:26:34 Fixed Xbox 360 Controller support using libusb on Linux
Sam Lantinga 1ac7eaba 2019-12-12T14:25:02 Fixed comment typo
Sylvain Becker 13e10151 2019-12-12T20:33:11 Android: use SDL_arraysize()
Sylvain Becker 210f6dda 2019-12-12T18:38:36 Android: use 'RegisterNatives' to export the native methods "The advantages of RegisterNatives are that you get up-front checking that the symbols exist, plus you can have smaller and faster shared libraries by not exporting anything but JNI_OnLoad" https://developer.android.com/training/articles/perf-jni#native-libraries
Sam Lantinga a613fc7c 2019-12-11T19:24:40 Added names for official Microsoft controllers, since they don't have descriptive product names
Sam Lantinga 0f529160 2019-12-11T17:47:01 Added custom names for some controllers
Sam Lantinga e029fdbb 2019-12-11T17:46:59 Shorten "Performance Designed Products" to "PDP"
Sam Lantinga 325a2efb 2019-12-11T17:46:57 Added support for the full line of PDP Xbox 360 and Xbox One controllers
Sam Lantinga 8b50dcb2 2019-12-11T17:46:54 Use the controller product string instead of hard-coding controller names
Sam Lantinga 89401b21 2019-12-10T13:09:52 Added support for the Razer Raion Fightpad for PS4
Sam Lantinga a21f6b7a 2019-12-10T11:46:22 Add the manufacturer to the joystick name on Mac OS X, for consistency with other drivers
Sam Lantinga 2a161e7a 2019-12-10T11:30:56 Remove any duplicate manufacturer in the joystick name
Sam Lantinga 3469481e 2019-12-10T10:00:49 Don't include the manufacturer if it's already included in the product string
Sam Lantinga bb37a1eb 2019-12-10T09:38:10 Fixed the name of the Razer RAION Fightpad
Sam Lantinga 82d2c357 2019-12-09T16:52:11 Fixed rumble after Xbox controller initialization When we initialize the controller it has an internal rumble sequence number, and if our rumble sequence number doesn't match that, rumble won't happen. To fix that we cycle through the range of sequence numbers, and at some point we'll match up with the controller's sequence number and it'll roll forward until it matches our next rumble sequence number.
Sam Lantinga 3d34750c 2019-12-09T13:54:05 The PowerA Mini controller blocks while writing feature reports, so don't try to use the HIDAPI driver for it on Linux
Sam Lantinga 36265063 2019-12-09T13:54:03 Added some missing Xbox controller names
Sam Lantinga 140918bb 2019-12-08T11:36:40 Fixed bug 4883 - Add approximation for display DPI on iOS Aaron Barany There appears to be no way to directly access the display DPI on iOS, so as an approximation the DPI for the iPhone 1 is used as a base value and is multiplied by the screen's scale. This should at least give a ballpark number for the various screen scales. (based on https://stackoverflow.com/questions/25756087/detecting-iphone-6-6-screen-sizes-in-point-values it appears that both 2x and 3x are used) I have updated the patch to use a table of current devices and use a computation as a fallback. I have also updated the fallback computation to be more accurate.
Sam Lantinga 54748a39 2019-12-08T11:33:06 Fixed bug 4890 - Add hint for SDL that the graphics context is externally managed Aaron Barany Add SDL_HINT_VIDEO_EXTERNAL_CONTEXT hint to notify SDL that the graphics context is external. This disables the automatic context save/restore behavior on Android and avoids using OpenGL by default when SDL_WINDOW_VUKLAN isn't set. When the application wishes to manage the OpenGL contexts on Android, this avoids cases where SDL unbinds the context and creates new contexts, which can interfere with the application's operation. When using Vulkan and Metal renderer implementations, this avoids SDL forcing OpenGL to be enabled on certain platforms. While using the SDL_WINDOW_VULKAN flag can be used to achieve the same thing, it also causes Vulkan to be loaded. If the application uses Vulkan directly, this is not necessary, and fails window creation when using Metal due to Vulkan not being present. (assuming MoltenVK isn't installed)
Sam Lantinga 135a9053 2019-12-06T13:48:13 Fixed the Apple TV remote menu button on tvOS 13.2 (thanks Romain Tisserand)
Sam Lantinga 7a51ad6a 2019-12-06T13:48:10 Fixed the game controller menu button on tvOS 13.2 (thanks Romain Tisserand)
Ryan C. Gordon 597f11e5 2019-12-05T17:27:06 cocoa: Patched to compile on older compilers.
Sam Lantinga 8342fa7c 2019-12-05T13:48:08 Fixed controller mapping issues caused by PS3 gyro jitter
Sam Lantinga 6d001668 2019-12-05T13:18:53 Get full axis range for PS3 controller triggers on Linux
Ryan C. Gordon ca2c8609 2019-12-04T12:20:24 cocoa: SDL_GetDisplayDPI() should account for Retina displays. Fixes Bugzilla #4856.
Sam Lantinga b7576025 2019-12-03T22:07:58 Fixed bug 4882 - Fix build for iOS when disabling OpenGL Aaron Barany Since OpenGL is deprecated on iOS, it is advantageous to be able to remove all OpenGL related code when building SDL for iOS. This patch adds the necessary #if checks to compile in this case.
Sam Lantinga 7a3ae590 2019-12-03T07:12:55 Fixed bug 4877 - Add support for loading menus from a nib/xib instead of building a hardcoded minimum set Eric Shepherd Currently, SDL on Cocoa macOS creates a rudimentary menu bar programmatically if none is already present when the app is registered during setup. SDL could be much more easily and flexibly used on macOS if upon finding that no menus are currently in place, it first looked for the application's main menu nib or xib file and, if found, loaded that instead of programmatically building the menus. This would then let developers simply drop in a nib file with a menu bar defined in it and it would be installed and used automatically. Attached is a patch that does just this. It changes the SDL_cocoaevents.m file to: * In Cocoa_RegisterApp(), before calling CreateApplicationMenus(), it calls a new function, LoadMainMenuNibIfAvailable(), which attempts to load and install the main menu nib file, using the nib name fetched from the Info.plist file. If that succeeds, LoadMainMenuNibIfAvailable() returns true; otherwise false. * If LMMNIA() returns false, CreateApplicationMenus() is called to programmatically build the menus as before. * Otherwise, we're done, and using the menus from the nib/xib file! I made these changes to support a project I'm working on, and felt they were useful enough to be worth offering them for uplift. They should have zero impact on existing projects' behavior, but make Cocoa SDL development miles easier.
Ryan C. Gordon 3da6a0b2 2019-12-03T03:53:06 pulseaudio: don't let FlushCapture get stuck in an infinite loop on shutdown. Fixes Bugzilla #4645.
Ryan C. Gordon 7b08eb48 2019-12-03T03:07:34 direct3d11: Fixed incorrect texture coordinates (thanks, Martin!). Fixes Bugzilla #4860.
Gerasim Troeglazov c8a2ef86 2019-12-03T02:49:01 haiku: Disable pointer history (note from PulkoMandy on Bugzilla #4442 about why this is a desirable patch: "The event mask: note that the window and GL view run in their own thread which I don't expect to be too much CPU bound, and will quickly pop these messages and forward them to the main thread in our SDL code. Therefore the B_NO_POINTER_HISTORY should be no problem, and is the default on Haiku anyway (it was not in BeOS, but we changed that and added a B_FULL_POINTER_HISTORY flag to request the old behavior explicitly). So, this seems fine.") Partially fixes Bugzilla #4442.
Alex Smith e5af951e 2019-12-02T15:41:25 Fix sending SDL_WINDOWEVENT_RESTORED after unminimizing windows on X11 SDL_SendWindowEvent will only send a RESTORED event if the window has the minimized or maximized flag set. However, for a SHOWN event, it will clear the minimized flag. Since the SHOWN event was being sent first for a MapNotify event, the RESTORED event would never be sent. Swapping the SendWindowEvent calls around fixes this. https://bugzilla.libsdl.org/show_bug.cgi?id=4821
Sam Lantinga b98808f6 2019-11-28T14:23:24 Updated DPAD binding for 8Bitdo Zero controller
Sam Lantinga 2fd3f756 2019-11-28T11:44:17 Fixed trying to use the HIDAPI driver for the original Xbox One S Bluetooth controller
Sam Lantinga 8aaf945b 2019-11-28T11:44:15 Fixed mapping controllers that have axes that start at -32768 and then snap to 0 at the first input report
Sam Lantinga a3a8fcef 2019-11-28T10:04:05 Added support for the 8Bitdo SN30 Pro, wired connection
Sam Lantinga 4a776138 2019-11-27T18:26:57 Added the full Xbox One Elite Series 2 controller initialization sequence, to start input reports after switching out of Bluetooth mode.
Sam Lantinga b8d65da4 2019-11-27T15:27:21 Check for duplicates in the supported controller list
Sam Lantinga 0b863f8a 2019-11-27T15:27:19 Sorted controller entries by type and VID/PID to more easily find entries in the list
Sam Lantinga 84f8e53c 2019-11-27T15:27:16 Fixed detection of the Mad Catz FightPad Pro
Sam Lantinga 98cc9cf2 2019-11-27T12:38:53 Added support for the Google Stadia Controller
Sam Lantinga 43cb7b3c 2019-11-27T12:38:51 Added support for the Hori Fighting Commander
Sam Lantinga a76e5474 2019-11-27T12:38:48 Added support for the PowerA XB1 Fusion Fight Pad
Sam Lantinga a5e6b87c 2019-11-26T08:35:41 Added support for a variant of the PowerA FUSION Pro Controller
Sam Lantinga 53216436 2019-11-25T16:29:12 Use the same logic to get the config descriptor in hid_open() as in hid_enumerate()
Sam Lantinga f3d95396 2019-11-25T15:02:54 Added some missing controller names
Sam Lantinga 8243a3e8 2019-11-25T15:02:50 Added support for the Hyperkin X91
Sam Lantinga 494af7a6 2019-11-25T15:02:45 Backed out change to dynamically load udev - it's already happening in SDL_hidapi.c
Sam Lantinga 2713a1aa 2019-11-25T13:27:26 Moved the SteelSeries controllers into the "known controller" section
Sam Lantinga 26d53fbb 2019-11-25T11:12:09 Updated identification for the SteelSeries Stratus Duo
Sam Lantinga 308e7f2f 2019-11-23T12:11:20 Linux hidapi code dynamically loads udev
Sam Lantinga 359ae75b 2019-11-23T12:11:16 Fixed DragonRise Generic USB PCB showing up as a PS3 controller
Sam Lantinga 8e153922 2019-11-22T17:46:30 This packet didn't end up being needed to initialize input for the Xbox One Elite Series 2 controller
Sam Lantinga 6dce9733 2019-11-22T16:23:37 Use SDL_zeroa() appropriately
Sam Lantinga 733f2525 2019-11-22T14:09:24 Fixed build
Sam Lantinga 13006ba9 2019-11-22T13:44:40 Added support for the PDP Versus Fighting Pad
Sam Lantinga b5aff9d7 2019-11-22T13:12:12 Added SDL_GameControllerTypeForIndex() and SDL_GameControllerGetType() to return the type of controller attached.
Sam Lantinga c0650aca 2019-11-21T14:04:48 Added support for the PDP Battlefield One controller
Sam Lantinga a132b183 2019-11-21T13:09:00 Fixed the guide button on the NVIDIA Controller v01.04
Sam Lantinga cc4f8905 2019-11-21T12:11:47 Added support for the NVIDIA Controller v01.04 on Linux and Mac OS X
Sam Lantinga 2a7b635b 2019-11-21T11:52:50 Added support for the NVIDIA Controller v01.04 on Android
Sam Lantinga 51487a71 2019-11-21T10:14:57 Added support for the MOGA XP5-A Plus
Ozkan Sezer 405a3c82 2019-11-21T11:50:50 ran gendynapi.pl after newly added SDL_string.c functions.
Cameron Gutman 55eb7621 2019-11-20T20:27:45 Use stat() to minimize input device opens when not using udev Calling open() on input devices can generate device I/O which blocks the main thread and causes dropped frames. Using stat() we can avoid opening anything unless /dev/input has changed since we last polled. We could have used something fancy like inotify, but it didn't seem worth the added complexity for this uncommon non-udev case.
Sam Lantinga 65096446 2019-11-20T16:42:50 Improved XInput VID/PID detection and added SDL_wcsstr() and SDL_wcsncmp()
Ozkan Sezer eb8f14bb 2019-11-20T20:40:50 added SDL_strtokr() as a replacement for POSIX strtok_r (bug #4046.)
Sam Lantinga ce8411c5 2019-11-20T08:43:24 Fixed Xbox One Elite Series 2 showing up as 2 devices in Bluetooth mode on Windows
Ozkan Sezer 200d37da 2019-11-20T02:47:40 SDL.c (SDL_ExitProcess): unconstify its param to match its declaration.
Sam Lantinga 972a70d8 2019-11-19T15:15:00 Added support for the Xbox One Elite Series 2 controller on Mac OSX
Sam Lantinga 68d8fc5c 2019-11-18T15:46:13 Added support for the Xbox One Elite Series 2 controller in wired mode
Sam Lantinga 2bfcf5cd 2019-11-18T14:08:05 Added Linux controller mapping for the Xbox One Elite Series 2 controller in Bluetooth mode
Sam Lantinga 1e24a151 2019-11-18T11:51:39 Added names for some missing Xbox controllers
Sam Lantinga 14495644 2019-11-18T11:44:51 Added identifiers for the Xbox One Elite Series 2 controller
Sam Lantinga df728f85 2019-11-18T10:48:14 Fixed unused function warning on Android
Sam Lantinga dd7fe0af 2019-11-16T22:45:49 Fixed bug 4814 - Missing scancodes on Linux Michael Roe The mappings for keyboard scancodes on Linux do not include keypad left and right parentheses (used on some Microsoft keyboard), keypad plus/minus, LANG1 and LANG2 (used on Korean keyboards), XK86MenuKB, and F20 (remapped to Audio Mic Mute in the usual X11 config).
Sam Lantinga b1539c4c 2019-11-16T22:35:48 Fixed bug 4819 - Attempting to create an OpenGL ES context with unachievable MSAA parameters under X11 dooms the program Solra Bizna I have written a program that, in the event that the user requests more MSAA samples than their hardware supports, attempts to gracefully fall back to the best MSAA available. This code works with my conventional OpenGL renderer, but if I change nothing about the code except to make it request an OpenGL ES profile instead, Xlib kills the program with an error that looks like: X Error of failed request: BadWindow (invalid Window parameter) Major opcode of failed request: 4 (X_DestroyWindow) Resource id in failed request: 0x5c00008 Serial number of failed request: 188 Current serial number in output stream: 193 To trigger the bug, attempt to create a window with the SDL_WINDOW_OPENGL flag, with SDL_GL_CONTEXT_PROFILE_MASK set to SDL_GL_CONTEXT_PROFILE_ES, and with SDL_GL_MULTISAMPLESAMPLES set to any unsupported value. SDL_CreateWindow properly returns NULL, but at this point the program is already doomed. Xlib will shortly terminate the program with an error. Calling SDL_CreateWindow again will immediately trigger this termination. I have attached a skeletal program that reproduces this bug for me. Replacing SDL_GL_CONTEXT_PROFILE_ES with SDL_GL_CONTEXT_PROFILE_COMPATIBILITY avoids the bug (but, obviously, doesn't create an OpenGL ES context). As I suspected, the problem was with XDestroyWindow being called twice on the same window. The X11_CreateWindow function in src/video/x11/SDL_x11window.c calls SetupWindowData. If initialization fails after that point, XDestroyWindow gets called on the window by a subsequent call to X11_DestroyWindow. But, later in the same function, iff a GLES context is requested and initializing it fails, X11_XDestroyWindow (which wraps XDestroyWindow) is manually called. Shortly after, the intended call to X11_DestroyWindow occurs, which attempts to destroy the same window again. Boom. (The above confusing summary involves three separate, similarly-named functions: XDestroyWindow, X11_DestroyWindow, X11_XDestroyWindow) I have attached a simple patch that removes the redundant X11_XDestroyWindow calls. I've tested that XDestroyWindow still gets called for the windows in question, and that it only gets called once.
Sam Lantinga a9ac9e38 2019-11-16T19:58:29 Don't try to use this driver with the Xbox One S in Bluetooth mode on Linux
Sam Lantinga 9ca53730 2019-11-16T19:55:53 Added support for the Xbox One S controller in Bluetooth mode on Linux
Sylvain Becker 9d4c3f12 2019-11-16T22:59:56 Fix missing prototype warning
Sylvain Becker 2dab79bc 2019-11-16T22:55:36 Fix crash when detecting SIMD
Sam Lantinga cf33f1f0 2019-11-13T21:53:01 Added a utility function to simplify the hint handling logic
Sam Lantinga a63e93a1 2019-11-13T15:46:58 Supported Android and Apple hardware has ARM SIMD capability
Sam Lantinga 9a76bebf 2019-11-13T14:24:48 SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS defaults to true, to match Steam's default behavior
EXL b44fe0f8 2019-11-12T17:24:37 haiku: Rename BE_* entities to HAIKU_* In favor Bugzilla #2349. Update copyright years to 2019. Partially fixes Bugzilla #4442.