Log

Author Commit Date CI Message
nia 98f2e38b 2021-06-12T09:42:54 Use <sys/endian.h> for endian detection on NetBSD Signed-off-by: Nia Alarie <nia@NetBSD.org>
Ozkan Sezer bc9888c9 2021-06-12T14:55:24 OS2_GetDisplayModes: malloc a new copy of mode's driver data. Based on a patch by Jochen Schäfer <josch1710@live.de> : The problem is, that in the initialization code uses the same structure for desktop_mode and current_mode. See SDL_os2video.c:OS2_VideoInit(): stSDLDisplay.desktop_mode = stSDLDisplayMode; stSDLDisplay.current_mode = stSDLDisplayMode; ... stSDLDisplayMode.driverdata = pDisplayData; Then, if you call GetDisplayModes, current_mode will added to the modes list, with the same driverdata pointer to desktop_mode. SDL_AddDisplayMode( display, &display->current_mode ); When VideoQuit gets called, first the modes list gets freed including the driverdata, the desktop_mode gets freed. See SDL_video.c:SDL_VideoQuit(): for (j = display->num_display_modes; j--;) { SDL_free(display->display_modes[j].driverdata); display->display_modes[j].driverdata = NULL; } SDL_free(display->display_modes); display->display_modes = NULL; SDL_free(display->desktop_mode.driverdata); display->desktop_mode.driverdata = NULL; So, the display_modes[j].driverdata gets freed, but desktop_mode->driverdata points to the same memory, but is not NULL'ed. When desktop_mode->driverdata gets freed the memory is already freed, and libcx crashes the application on SDL_Quit.
Ozkan Sezer d28437de 2021-06-12T08:00:50 SDL_keyboard.c: Add bounds guards when assigning to the scancode array. Based on a patch by Jochen Schäfer <josch1710@live.de> : On a T420 pressing the ACPI button for volume control, big scancodes were emitted. This was causing an overflow, because missing guards.
Ethan Lee eb15b4e9 2021-06-11T23:40:09 wayland: Drop SwapWindow calls for hidden windows
Ryan C. Gordon 37d35a3e 2021-06-11T21:02:49 kmsdrm: hook up KMSDRM_GLES_DefaultProfileConfig for use. Fixes #3678.
Ivan Epifanov a4442476 2021-06-10T12:14:14 Cleanup dead and duplicate code
Ivan Epifanov c2b8b556 2021-06-10T12:06:28 Older api, not needed
Ivan Epifanov dd2a2858 2021-06-10T12:00:56 Remove leftovers
Ivan Epifanov 3c028141 2021-06-10T13:26:38 Update docs and fix typos
Ivan Epifanov bbdd08e0 2021-06-10T13:20:39 Build without PIB support by default and add flag to enable it
Ozkan Sezer 2f248a2a 2021-06-11T04:00:32 SDL_cocoaevents.m: fix build against SDK < 10.12 after commit 0dd7024d.
Dimitriy Ryazantcev f2f759dc 2021-02-26T15:34:34 Remove not used DirectInput ignored_devices list
Dimitriy Ryazantcev adc2d362 2021-02-26T15:33:41 Remove outdated and not used WIN_IsXInputDevice code
Dimitriy Ryazantcev f5122377 2021-06-10T14:06:32 Move SDL_IsXInputDevice check above actual joystick allocation
Dimitriy Ryazantcev 766d81ec 2021-06-10T14:01:04 Rewrite SDL_DINPUT_JoystickPresent method to avoid costly IDirectInput8_CreateDevice calls
Dimitriy Ryazantcev a6da2fbf 2021-05-25T12:33:23 Rename haptic methods to avoid confusion with joystick: `SDL_DINPUT_MaybeAddDevice`->`SDL_DINPUT_HapticMaybeAddDevice` `SDL_DINPUT_MaybeRemoveDevice`->`SDL_DINPUT_HapticMaybeRemoveDevice` `SDL_XINPUT_MaybeAddDevice`->`SDL_XINPUT_HapticMaybeAddDevice` `SDL_XINPUT_MaybeRemoveDevice`->`SDL_XINPUT_HapticMaybeRemoveDevice`
Dimitriy Ryazantcev 73dc68a7 2021-05-19T17:52:08 Simplify and cleanup DirectInput joystick backend code: - Do not call IDirectInputDevice8_QueryInterface(device, &IID_IDirectInputDevice8,...) on DIRECTINPUTDEVICE8 device - Get joystick VendorID and ProductID via IDirectInputDevice8_GetProperty(.., DIPROP_VIDPID, ..) call instead of messing with DIDEVICEINSTANCE.guidProduct - Normalize HID device interface path to upper case for stable operation of XInput check - Remove useless RawInput calls in SDL_IsXInputDevice() - just check for "IG_" string in HID device interface path that we already have There shouldn't be any observable behavior changes.
Sam Lantinga 0e62926e 2021-06-10T16:28:32 Fixed crash if vendor or product strings are empty
Ryan C. Gordon 25fc40b0 2021-06-10T13:56:22 stdinc: Silence clang warning for -Wimplicit-fallthrough. In a more ideal world, we'd use the appropriate `__attribute__` here, but it's one thing in a public header that probably shouldn't be there at all, so this is good enough for now. Fixes #4307.
Ryan C. Gordon e65a6583 2021-06-09T22:10:20 x11: Add a hint to force override-redirect. Fixes #3776.
Ryan C. Gordon 642fa0e3 2021-06-09T21:18:11 configure: Enable KMSDRM target by default.
Ryan C. Gordon 56e96254 2021-06-09T13:38:05 build-scripts: modernized gcc-fat.sh for Big Sur and ARM64. Put these in "clang-fat.sh" and "clang++-fat.sh" in case someone still needs 32-bit x86 support from the old scripts. Fixes #4350.
Sam Lantinga cb5e8635 2021-06-08T13:15:24 Fixed crash after reinitializing libusb HID support
Eric Wasylishen c33e3c15 2021-06-07T18:24:57 testwm2: draw various debug logging into the window itself Renderer output size, window position/size, display bounds, etc. Uses new SDLTest_CommonDrawWindowInfo function in test_common.
Cameron Gutman e13b43ac 2021-06-05T12:44:08 Don't skip sending wakeups for the current thread We can be in a situation where we receive a win32 hook callback on the same thread that is currently waiting. In that case, we do still need to trigger a wakeup when an event is pushed because the hook itself won't necessarily do that (depending on what we return from the hook).
Cameron Gutman b992b915 2021-06-05T11:57:30 Optimize SDL_WaitEventTimeout() for the SDL_PollEvent() case There's no sense in doing all the setup for waiting if we're just polling.
Cameron Gutman 85b51e6c 2021-06-05T11:46:47 Fall back to polling normally if not operating the win32 message loop In this condition, we cannot safely wait/wake on events.
Cameron Gutman e13d5df0 2021-06-05T11:41:55 Call SDL_SendWakeupEvent() directly from SDL_PeepEvent() SDL_PeepEvent() is a documented public API, so we must properly support waking a waiting thread in SDL_WaitEventTimeout() with SDL_PeepEvent().
Ethan Lee d956636c 2021-06-04T18:39:47 wayland: Implement FlashWindow
Jupeyy 64724db0 2021-06-04T19:55:30 Implement bare minimum for SDL_FlashWindow
Sam Lantinga 64c40b90 2021-06-04T14:34:21 Updated copyright date
Ozkan Sezer 37b093ea 2021-06-05T00:05:56 test/checkkeysthreads: build fixes, and add to os2 makefile.
Francesco Abbate 0dd7024d 2021-03-12T21:58:20 Modifies WaitEvent and WaitEventTimeout to actually wait instead of polling When possible use native os functions to make a blocking call waiting for an incoming event. Previous behavior was to continuously poll the event queue with a small delay between each poll. The blocking call uses a new optional video driver event, WaitEventTimeout, if available. It is called only if an window already shown is available. If present the window is designated using the variable wakeup_window to receive a wakeup event if needed. The WaitEventTimeout function accept a timeout parameter. If positive the call will wait for an event or return if the timeout expired without any event. If the timeout is zero it will implement a polling behavior. If the timeout is negative the function will block indefinetely waiting for an event. To let the main thread sees events sent form a different thread a "wake-up" signal is sent to the main thread if the main thread is in a blocking state. The wake-up event is sent to the designated wakeup_window if present. The wake-up event is sent only if the PushEvent call is coming from a different thread. Before sending the wake-up event the ID of the thread making the blocking call is saved using the variable blocking_thread_id and it is compared to the current thread's id to decide if the wake-up event should be sent. Two new optional video device methods are introduced: WaitEventTimeout SendWakeupEvent in addition the mutex wakeup_lock which is defined and initialized but only for the drivers supporting the methods above. If the methods are not present the system behaves as previously performing a periodic polling of the events queue. The blocking call is disabled if a joystick or sensor is detected and falls back to previous behavior.
Sam Lantinga 40e5ce7f 2021-06-04T13:23:54 This delay is no longer needed on Steam Link hardware
Andrew Murray cd67f42d 2021-06-04T12:20:47 add Linux mapping for brook fighting board (#4416) * added controller mapping for Brook fighting board * fixed formatting on Brook Universal Fighting Board controller mapping entry
Sjoerd Simons 89fd9821 2021-05-26T21:33:25 Add controller mapping for Atari vcs controllers This add controller mappings for the Atari vcs (modern) controller as well as the classic controller, for both bluetooth and USB connectivity. Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
Sjoerd Simons de4ba6eb 2021-05-27T12:41:41 Ignore the device version for Atari vcs controllers At least on bluetooth the guid user the version reported by the bluetooth device. Which for Atari vcs controllers is the firmware version. However the mapping will stay the same regardless of firmware version, so ignore the version entirely to avoid needing a new mapping entry for each firmware version. Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
Sam Lantinga 6de33c09 2021-06-03T09:05:33 Clarify why we're skipping Game Controller framework supported devices in hid.c
Patrick Hogan 28da6c5d 2021-05-27T14:42:03 Have HIDAPI skip MFI supported HID devices on macOS to avoid duplicate devices.
Ethan Lee 2af3f64e 2021-06-02T14:37:09 wayland: Activate the window on first ShowWindow, if possible
Ethan Lee 151f9538 2021-06-02T11:41:44 wayland: Implement RaiseWindow with xdg-activation
Ozkan Sezer f498c281 2021-06-02T14:10:50 fixed build with SDL_JOYSTICK_RAWINPUT enabled after commit b81969d46f4b See: https://github.com/libsdl-org/SDL/pull/4388#issuecomment-852713792
Sylvain f5b87273 2021-06-02T08:32:43 Fixed bug #4397 - update IOS documentation
Kyle Schaefer 4522cb1d 2021-05-25T03:17:03 Changing variable from float to int, this way we can check it's value without having to do an unnecessary conversion. Then do explicit conversions later on if we need.
Kyle Schaefer c289bad9 2021-03-22T11:22:31 In x11, GetDisplayDPI can give incorrect or unusable DPI information. Using XGetDefaults to get the Xft DPI if it's available and returning that. This could allow you to figure out DPI scale.
Nicolas Caramelli 6a2af48a 2021-05-06T15:43:16 CMake: Generic check for desktop GL and EGL on Linux systems
Benson Muite fd121b5e 2021-05-13T17:46:55 development list has moved to forum
Cacodemon345 ded02387 2021-05-16T17:16:54 Make CMake script more accurate to autoconf script DBus, IBus and inotify is now able to be used outside Linux like in configure. KMSDRM input is now working on FreeBSD with CMake compilation.
Ethan Lee d3244035 2021-05-17T01:24:35 wayland: Add support for maximized/restored events
Anthony Pesch fc508eab 2021-05-23T15:59:20 kmsdrm: remove redundant modeset_pending flag this variable was added in commit 2067a7db8e4a36ba40ab34a55b3166ca28638a60 and ultimately tracks if this is a surface's first present. checking if the current bo is NULL provides the same functionality and cuts down on a redundant piece of state potentially getting out of sync in the future
Anthony Pesch 4c965b7a 2021-05-23T16:09:27 kmsdrm: fix SetDisplayMode binding the the wrong surface / context SetDisplayMode needs to recreate the EGL surfaces, which then need to be bound along with the correct context in each rendering thread commit 3a1d7d9c9ac670bf35cfa8ebf3706a1e2a3e5de4 removed this behavior which has broken using SetDisplayMode when rendering with multiple contexts the commit message was rather vague, but if the surfaces do need to be created immediately, this process probably needs to be split such that surface is created immediately, but the binding is deferred
Anthony Pesch 0219928d 2021-05-23T16:06:40 kmsdrm: honor mode previously set by SDL_SetWindowDisplayMode when enabling fullscreen and remove duplicate SDL_WINDOWEVENT_RESIZED event commit 2067a7db8e4a36ba40ab34a55b3166ca28638a60 made SDL_SetWindowSize and SDL_SetWindowFullscreen modify the display mode previously set by a call to SDL_SetWindowDisplayMode as far as I understand the SDL API, calling SDL_SetWindowDisplayMode followed by calling SDL_SetWindowFullscreen(..., SDL_WINDOW_FULLSCREEN) is the correct way to mode set / switch to fullscreen this change restores that functionaliy when switching to SDL_WINDOW_FULLSCREEN, but other cases are still modifying the display mode set by the user. rather than modifying the display mode set by the user, it seems this logic inside of KMSDRM_ReconfigureWindow should be pushed further down into KMSDRM_CreateSurfaces (as it was originally) to only modify the final mode that's set (based on the fullscreen flags), but not override the mode requested by the user
Anthony Pesch fd5de93a 2021-05-23T16:05:39 kmsdrm: fix gbm surface dimensions not matching the mode being set commit 2067a7db8e4a36ba40ab34a55b3166ca28638a60 introduced new surface_w and surface_h variables which were passed to gbm_surface_create rather than the dimensions from the drmModeModeInfo structure. commit 5105ecf8b1b37ab4e4b8344550c90dd69f49909e further refactored this code and no longer synchronized these variables inside KMSDRM_SetDisplayMode, breaking it this change removes the variables since they're seemingly redundant to begin with
Sylvain 30359a68 2021-06-01T20:11:59 Android: document workaround to use JNI on native thread (see bug #4406)
Timo Gurr b63cb822 2021-05-30T01:57:56 Added T500RS to known wheel list
Dimitriy Ryazantcev b81969d4 2021-05-17T14:50:33 Be more explicit about Xbox 360/One device ids. When Xbox One/Series Controllers are connected via USB on Windows they all are using `XBOXGIP` driver and produce a special ProductID `0x02FF` (GIP software PID) for any connected controller. On the other hand `Xbox 360 Wireless Controller Reciever` (PID 0x0719) is using `XUSB` driver and produces special ProductID `0x02A1` (XUSB software PID) for each connected Xbox 360 Wireless Controller. Also fixed Xbox One Series X Controller comment.
Per Nyblom 86ee383f 2021-05-25T09:59:45 Removed duplicate SDL_AtomicGet()
Ryan C. Gordon fed84650 2021-05-27T10:40:41 loadbmp: Attempt to handle small palettes better. Only adjust the biClrUsed field if it is set to zero in the bitmap, and make some effort to make sure we don't overflow a buffer in any case. This was triggering an issue with the sailboat bmp used for testpalette.c in SDL 1.2, which is an 8-bit paletted image with 66 palette entries instead of 256. See discussion at https://github.com/libsdl-org/sdl12-compat/issues/63 This change might be a problem, but there's no indication this code, which originally landed in SDL_image 17 years ago with a large rewrite, is actually fixing a specific issue. I'm also not sure we should actually make an effort to accept a bmp that has a biClrUsed field that is both non-zero and _also_ incorrect.
Sam Lantinga db146e66 2021-05-25T10:34:04 Fixed warnings building with Visual Studio
Sam Lantinga 3fcaf5b4 2021-05-25T10:33:30 Fixed incorrect axis scaling for Nintendo Switch controllers
Ozkan Sezer 75725608 2021-05-25T14:56:56 SDL_thread.h: move libc header includes before begin_code.h.
Ozkan Sezer 7a7cba4b 2021-05-25T14:56:37 config.guess, config.sub: fix permissions
Sam Lantinga 157c3f80 2021-05-21T09:45:08 [SDL] Minimize number of system calls when handling WM_INPUT raw input messages. Details: Currently doing 4 system calls per WM_INPUT message, which can cause the thread handling the message loop to be swapped out several times: * GetProp - to get window data from the window handle * GetRawInputData - to retrieve the raw input data * 2 calls to GetMessageExtraInfo - to ignore synthetic mouse events generated for touchscreens In this change: * Replaced GetProp by iterating the list of windows maintained by SDL (with a fallback to GetProp). Note that this will affect all messages and not just WM_INPUT * only calling GetMessageExtraInfo if a touchscreen has been detected Fix for https://jira.valve.org/browse/CSGO-4855 @saml
Cacodemon345 dbbc725f 2021-05-19T14:25:48 Remove WSCONS mouse scaling
Cacodemon345 2aa14b38 2021-05-19T14:24:58 Add missing key to WSCONS-to-SDL conversion table
Ozkan Sezer c63a62ae 2021-05-18T23:51:50 updates to config.guess and config.sub from mainstream.
Sam Lantinga 333c8e75 2021-05-17T11:54:05 The PS5 driver supports Joystick LED
Ozkan Sezer b5b7804e 2021-05-15T00:50:20 minor update to os2 makefile. (binary output doesn't change.)
Ozkan Sezer 646ddfb7 2021-05-15T00:22:50 minor watcom build fixes.
Ethan Lee be5356af 2021-05-14T14:44:13 winrt: Fix support for multiple simultaneous mouse button presses
Sylvain 62a562de 2021-05-12T23:37:18 X11: use x11sym loaded functions (see bug #3978)
Sylvain 531d83bf 2021-05-12T23:13:48 X11: allow using touchscreen, while pointer is grabbed (see bug #3978)
Cacodemon345 ddc6be35 2021-05-12T20:43:10 KMSDRM on Dragonfly BSD doesn't work without being root
Kimplul 9e1d7bae 2021-05-12T17:43:39 Added T300RS to known wheel list
Ryan C. Gordon e1db4b82 2021-05-11T14:08:17 egl: Don't crash if we failed halfway through SDL_CreateWindow.
Ethan Lee f2f451a5 2021-05-10T13:29:54 wayland: Call SetWindowBordered at the end of ShowWindow
Fredrick Brennan c5dd9964 2021-04-07T12:14:16 Copied X11 error handler code from SDL_x11opengl.c Avoids needing to malloc to hold the error string.
Fredrick Brennan b3b4677e 2021-04-07T11:17:52 (X11) Set _NET_WM_NAME properly, fixes Unicode window titles Removes deprecated code meant to support extremely ancient, pre-UTF-8 versions of Xorg. Uses new xlib API's for doing this same thing. Closes #4288.
Ryan C. Gordon f4ab1c94 2021-05-10T13:08:34 gamecontrollerdb: Add entry for the 8BitDo Receiver for Linux. Fixes #3048.
Ryan C. Gordon bedc509a 2021-05-10T13:04:59 gamecontrollerdb: added entry for PowerA XBox One Controller for Linux. Fixes #3910.
Ethan Lee efbb6ff9 2021-05-10T12:42:28 wayland: Create the server decorations after the toplevel has been configured
Ryan C. Gordon 9dc97afa 2021-05-08T12:39:50 cocoa: Report an error if SDL_SetClipboardText() isn't using UTF-8 encoding. Fixes #4110.
Sam Lantinga 107db2d8 2021-05-07T12:43:35 Enable TV game mode by default on Android
Sam Lantinga 9231f1f1 2021-05-07T12:29:03 Added support for the PS5 controller on iOS and tvOS
Sam Lantinga 2ad73db6 2021-05-07T12:28:57 Merge commit '889cebb7c20d4195e5d4ac344a2175f2490354cc' into main
Sam Lantinga e589810c 2021-05-07T12:28:55 Merge commit '31637ddeea1e302c77193341b2006d45dc54de98' into main
Sam Lantinga 6d4991b8 2021-05-07T12:28:53 Merge commit 'f309d0649d37022ad49bc468c77dd87bf82f261b' into main
Sam Lantinga e8eb0b15 2021-05-07T12:28:51 Merge commit '58884e4c1bb455db90a35df3f7480cfd355eb8c6' into main
Sam Lantinga 19a9e81c 2021-05-07T12:28:50 Merge commit 'c69fde348fafcb90200a148b711137c464ffa7de' into main
Sam Lantinga 71e45a0b 2021-05-07T12:28:48 Merge commit '006378b9213e3e04ea2b9c591afe2a44e75e6867' into main
Sam Lantinga 981532fb 2021-05-07T12:28:47 Merge commit '424bbaec069f0d94857095dcdfacba6246282936' into main
Sam Lantinga 95b7b879 2021-05-07T12:28:45 Merge commit '20928550350d4d4c5d78f98b61e7e08d219a5475' into main
Sam Lantinga 8b8956da 2021-05-07T12:28:43 Merge commit '3d47ddc422de1a4209525a759b3bc46a4ac69116' into main
Sam Lantinga 069a68a5 2021-05-07T12:28:42 Merge commit '7b284dbb34a8c34f5d6f79c58c860c9f7894fd56' into main
Sam Lantinga 12b7b821 2021-05-07T12:28:40 Merge commit '9161f95166f3d8e42248c1156e35255d4ebdc6a0' into main
Sam Lantinga 2b203add 2021-05-07T12:28:38 Merge commit 'c54c16d353f206162cdbb125c0847b4645e096a3' into main
Sam Lantinga 1e208c64 2021-05-07T12:28:37 Merge commit '227021b6470d07f86e209d89f176ec8e6d952a17' into main
Sam Lantinga f1fa836b 2021-05-07T12:28:35 Merge commit '13472cec6764aec2e06a3c66ec1b139baa680aa3' into main
Sam Lantinga cf1e8503 2021-05-07T12:28:33 Merge commit 'a74f888ff9ed1254e9b9965a27d68e0526e2c0f8' into main
Sam Lantinga 63015e44 2021-05-07T12:28:32 Merge commit '8ac0fb52cb13e5856aa7f4a3fd0598d3ec58283f' into main