Commit Graph
100 Commits
Author SHA1 Message Date
Sam Lantinga a3f0c373d3 Clean up any renderer in SDL_DestroyWindowSurface()
Also added an automated test to verify window surface functionality.

Fixes https://github.com/libsdl-org/SDL/issues/10133

(cherry picked from commit a522bfe3f1)
2024-06-29 11:04:15 -07:00
Sam Lantinga ee3b2b7de1 Make sure we don't try to use the XInput DLL after it's unloaded
Steam ran into a crash SDL_XINPUT_JoystickDetect() with XINPUTGETCAPABILITIES being NULL. I'm not sure how that happened, and there may still be a race condition if this is a multi-threaded issue, but at least this is more correct.

(cherry picked from commit 0ae4fd0ec9)
2024-06-26 15:55:31 -07:00
Sam Lantinga 88bbab275f Fixed building with older libdrm headers
(cherry picked from commit 8949de3978)
2024-06-26 15:55:08 -07:00
Sam Lantinga ecde0ca6b6 Fixed building with the steamrt/scout SDK
(cherry picked from commit 4b82bed259)
2024-06-26 15:54:53 -07:00
Sam Lantinga 64d4baccb5 Fix building with the steamrt/scout SDK
(cherry picked from commit b552f26e6a)
2024-06-26 15:54:20 -07:00
Sam Lantinga 5a26b26880 Fixed requesting USB permission on Android 14 (thanks @ikhoeyZX!)
Fixes https://github.com/libsdl-org/SDL/issues/9831

(cherry picked from commit 8ab1ffca8a)
2024-06-17 15:11:48 -07:00
Sam Lantinga a6fdd155fb Pass through the original name used by the Steam Virtual Gamepad
Proton uses this on Linux to determine what the XInput slot is for the gamepad. Other applications will get the real controller name and VID/PID by virtue of the code in SDL_steam_virtual_gamepad.c

(cherry picked from commit 361cae0874)
2024-06-17 12:14:59 -07:00
Sam Lantinga 169f77ed5e Re-enable full controller reports for Joy-Con controllers
When they are in simple report mode, the thumbstick gets turned into a digital hat, so let's use them in full report mode.

(cherry picked from commit bf27269952)
2024-06-13 00:02:00 -07:00
Sam Lantinga 6b9bf71133 Try to guess the type of a Nintendo Switch controller if we can't read the device info
(cherry picked from commit 6619de8f24)
2024-06-13 00:01:40 -07:00
Sam Lantinga f1b19aa744 Ignore spurious reply packets when reading Nintendo Switch controller reports
(cherry picked from commit 5ee9a840b1)
2024-06-12 23:59:07 -07:00
Sam Lantinga 477c718744 Added wiki-style documentation for SDL_JoystickGUID 2024-06-08 08:50:24 -07:00
Sam Lantinga 7fce9f3fd0 Minor cleanup for SDL style 2024-06-07 09:26:55 -07:00
Sam Lantinga 2e8bd8f1f3 Fixed build 2024-06-07 09:05:10 -07:00
Sam Lantinga f520062ad1 Fixed PlayStation detection interrupting input for the Logitech K400 keyboard
Also added the Logitech Chillstream to the list of PS3 controllers and fixed the right shoulder axis.

(cherry picked from commit b6d7adfec1)
2024-06-05 19:29:48 -07:00
Sam Lantinga e2f597de84 Added support for the Saitek Cyborg V.3 Rumble Pad in PS3 mode
(cherry picked from commit b6ca360228)
2024-06-05 19:28:26 -07:00
Sam Lantinga 997ef88605 Sort joystick drivers in Android.mk
(cherry picked from commit 27728db41d)
2024-06-05 12:09:45 -07:00
Sam Lantinga f725ce492c Build the dummy joystick driver on Android
Fixes https://github.com/libsdl-org/SDL/issues/9978

(cherry picked from commit 69bfa5c951)
2024-06-05 12:09:39 -07:00
Sam Lantinga 35d719ef25 Added support for the Razer Kitsune in PS5 mode
(cherry picked from commit e3beaa1972)
2024-05-31 15:18:46 -07:00
Sam Lantinga 51ba036e64 Verify that the timer callback is passed the correct parameters 2024-05-30 16:53:28 -07:00
Sam Lantinga 8bc47dc3f1 Fixed compiling SDL_platform_defines.h on macOS with older compilers (thanks @sezero!)
Fixes #9632

(cherry picked from commit 36015ad5e5)
2024-05-27 14:38:41 -07:00
Sam Lantinga 964e0c9b47 Added Linux bindings for the Qanba Drone 2 Arcade Joystick
(cherry picked from commit 98a9ca5e32)
2024-05-23 15:35:03 -07:00
Sam Lantinga efaa58732a Don't enable enhanced report mode for Bluetooth Nintendo Switch controllers by default
This breaks applications using them in DirectInput mode, which isn't worth just getting battery status. We'll turn on enhanced mode if the application enables sensors.

(cherry picked from commit a87fa020ac)
2024-05-10 12:19:18 -07:00
Sam Lantinga 8c92af5e54 Added a Windows mapping for the SPEEDLINK STRIKE Gamepad
Fixes https://github.com/libsdl-org/SDL/issues/9705

(cherry picked from commit 01d560df50)
2024-05-06 10:11:39 -07:00
Sam Lantinga 1caa427035 Fixed building with GDK (thanks @Romans-I-XVI!) 2024-04-30 10:20:55 -07:00
Sam Lantinga 67c60e0b9c Fixed build error (thanks @sezero!)
(cherry picked from commit ac5a61cd60)
2024-04-25 09:45:36 -07:00
Sam Lantinga 59cc43ccbb Added a note about WIN+V for future reference (thanks @orconut!) 2024-04-24 09:38:26 -07:00
Sam Lantinga 33af02ae68 Fixed Win+V handling (pasting from clipboard history) on Windows (thanks @ocornut!)
Fixes https://github.com/libsdl-org/SDL/issues/9613
2024-04-24 09:22:57 -07:00
Sam Lantinga 4e29be814e Fixed compilation with C89 (thanks @d-s-a!)
Closes https://github.com/libsdl-org/SDL/pull/9564
2024-04-17 07:47:29 -07:00
Sam Lantinga effc16954f Fixed build 2024-04-15 09:32:00 -07:00
Sam Lantinga 5fff9bc1e3 Don't fail joystick initialization if udev isn't available 2024-03-25 11:45:41 -07:00
Sam Lantinga a9ac349846 Poll for the initial controller state when using DirectInput
This fixes getting a deflected axis as the first buffered input reading on a generic USB controller (G-Shark GS-GP702)

(cherry picked from commit 70b0d33106)
2024-03-20 10:41:56 -07:00
Sam Lantinga 2d6c100058 Added a mapping for the Defender Joystick Cobra R4 (thanks @kotenok2000!)
(cherry picked from commit d972244d3a)
2024-03-17 12:14:17 -07:00
Sam Lantinga 07f04bb35e Use the CRC as part of the unique key for mappings
(cherry picked from commit 4697153d1e)
2024-03-17 12:14:11 -07:00
Sam Lantinga b8daf14fe5 If a mapping specifies a crc, don't match for controllers that don't have that CRC
The CRC is used to distinguish between different controllers that have the same VID/PID, so if the CRC doesn't match, it's probably a different controller that we don't know about.

Fixes https://github.com/libsdl-org/SDL/issues/9265

(cherry picked from commit 30e93b40c2)
2024-03-14 13:36:12 -07:00
Sam Lantinga e54774faca Removed incorrect mapping for a HORI controller
This broke support for the Hori Fighting Stick EX2, which gets a good mapping if the automatic mapping is allowed to create one.

If the original controller needs a mapping, it should be added with a crc, since that VID/PID combination is used by several HORI controllers.

(cherry picked from commit d79f865251)
2024-03-11 17:14:11 -07:00
Sam Lantinga 66054a6515 Turn HIDAPI joystick support off by default on mobile platforms
On Android, HIDAPI prompts for permissions and acquires exclusive access to the device, and on Apple mobile platforms it doesn't do anything except for handling Bluetooth Steam Controllers.

Fixes https://github.com/libsdl-org/SDL/issues/9241

(cherry picked from commit e3cf2e4794)
2024-03-10 15:03:47 -07:00
Sam Lantinga cd197be53b Fixed crash if joystick functions are passed a NULL joystick
In particular this affects the doomsday game engine if no joystick or
gamepad is attached.

(cherry picked from commit 0dfdf1f3f2)
[smcv: Also included minor adjustment from https://github.com/libsdl-org/SDL/pull/9233]
2024-03-09 08:40:49 -08:00
Sam Lantinga 528b71284f Added support for the 6-button SEGA Mega Drive Control Pad for Nintendo Online 2024-03-08 12:38:05 -08:00
Sam Lantinga 26054d9934 Fixed mapping for the Sanwa Supply JY-P76USV controller
(cherry picked from commit 57a160c9ab)
2024-03-06 20:54:33 -08:00
Sam Lantinga bdc7ad8f56 Keep track of whether the Android on-screen keyboard was opened by the application
Fixes https://github.com/libsdl-org/SDL/issues/9202

(cherry picked from commit edbcef11ff)
2024-03-05 13:53:56 -08:00
Sam Lantinga 75c5cff0bf Fixed "${folder^}Activity: bad substitution" with bash 3.2 on macOS
(cherry picked from commit c36f773eb4)
2024-03-05 13:47:59 -08:00
Sam Lantinga a842bc29fa Uppercase the first letter of the class name to match Java conventions
Fixes https://github.com/libsdl-org/SDL/issues/8930

(cherry picked from commit 4189edaeb7)
2024-03-03 16:57:16 -08:00
Sam Lantinga d35dee76c7 Added a mapping for the Sanwa Supply JY-P76USV controller
Fixes https://github.com/libsdl-org/SDL/issues/8644

(cherry picked from commit ccd309c433)
2024-03-03 12:23:59 -08:00
Sam Lantinga 9e1e0fb92f Removed the mapping for the G-Shark GS-GP702
This uses the same chipset as the DragonRise Inc. Generic USB Joystick, which many manufacturers use for different products with different mappings.

In order to add a mapping for a controller using this chipset, we need a unique crc for the device name.

(cherry picked from commit 8d8076263e)
2024-03-03 12:20:43 -08:00
Sam Lantinga 627e15871a SDL_GameControllerGetAppleSFSymbolsNameForAxis() returns NULL if the symbol isn't found 2024-03-03 11:56:29 -08:00
Sam Lantinga b87116ff03 SDL_GameControllerGetAppleSFSymbolsNameForButton() returns NULL if the symbol isn't found
Fixes https://github.com/libsdl-org/SDL/issues/9071
2024-03-03 11:09:03 -08:00
Sam Lantinga 05f6709617 If the viewport changes the cliprect should be updated
The clip rectangle is defined to be viewport relative, so if the viewport changes we need to update it.

Fixes https://github.com/libsdl-org/SDL/issues/9094

(cherry picked from commit d0af01e7d4)
2024-02-28 08:48:40 -08:00
Sam Lantinga 69fb802a90 Fixed Visual Studio warning 4459
(cherry picked from commit d135daad5b)
2024-02-21 23:33:11 +03:00
Sam Lantinga 903d888cc3 Convert mouse wheel coordinates to renderer view
Fixes https://github.com/libsdl-org/SDL/issues/9097
2024-02-20 15:44:26 -08:00
Sam Lantinga 120b8d4189 Revert "wayland: Don't initialize OpenGL when the window flags didn't specify it"
This reverts commit f522c5380c.

We don't want this change for SDL2, and we're doing further investigation for SDL3.

Fixes https://github.com/libsdl-org/SDL/issues/9035
2024-02-12 16:01:48 -08:00
Sam Lantinga 6669d04ea6 Fixed error: unused variable 'axes' [-Werror,-Wunused-variable]
(cherry picked from commit 814a94c349)
2024-02-12 11:18:41 -08:00
Sam Lantinga 971c5c2610 Explicitly retain and release NSObjects in C structures
Fixes https://github.com/libsdl-org/SDL/issues/9021
Fixes https://github.com/libsdl-org/SDL/issues/9042

(cherry picked from commit 42cdbf6b21)
2024-02-12 10:21:34 -08:00
Sam Lantinga 646cccede7 Guarded ElementAlreadyHandled with #ifdef ENABLE_PHYSICAL_INPUT_PROFILE (thanks @Donione!)
Fixes https://github.com/libsdl-org/SDL/issues/9033

(cherry picked from commit 3ebbf0f409)
2024-02-09 16:12:57 -08:00
Sam Lantinga 93d7b6e50c Redefine XINPUT_CAPABILITIES_EX as an SDL typedef
mingw-w64 has added this from Proton (which added this from SDL), so we need to re-define it as a local symbol to avoid conflicting with mingw-w64 headers.

Fixes https://github.com/libsdl-org/SDL/issues/9031

(cherry picked from commit b7c61569f8)
2024-02-09 01:28:15 -08:00
Sam Lantinga 40b61b81f1 Added VIDPID for OpenFFBoard wheel (thanks @groybe!)
Closes https://github.com/libsdl-org/SDL/pull/7987

(cherry picked from commit 26e947f8ea)
2024-02-07 16:35:49 -08:00
Sam Lantinga fc787a41dc vulkan_metal.h: Make compatible with ObjC ARC (thanks @jmroot!)
(re)Fixes #6598

We need to remember to apply this again once we update from upstream headers.

(cherry picked from commit e67e0c5d55)
2024-02-02 18:31:14 -08:00
Sam Lantinga 05bb182a53 Don't test 10-bit pixel format conversion
We either need to explicitly test using the sRGB colorspace or update the tests for HDR10 color conversion. We'll just disable them for now, as these formats aren't commonly used in games.

(cherry picked from commit f9c57e16b0)
2024-02-02 18:26:01 -08:00
Sam Lantinga 8eed915dfa Don't use the system iconv on Apple mobile platforms
Fixes https://github.com/libsdl-org/SDL/issues/8964

(cherry picked from commit d6a48e4958)
2024-02-01 15:55:00 -08:00
Sam Lantinga 8ce6fb2513 Use the exact motion associated with the warp
When Windows DPI scaling is enabled, the warp coordinates will be modified, so make sure we send exactly the coordinates that the warp attempted.

Fixes https://github.com/libsdl-org/SDL/issues/8940
2024-01-30 11:11:10 -08:00
Sam Lantinga c55bd24827 Fixed testautomation log callback calling convention
(cherry picked from commit 9f7eb6c4c1)
2024-01-27 22:44:55 -08:00
Sam Lantinga bb30a35364 Fixed Watcom build 2024-01-27 20:28:43 -08:00
Sam Lantinga 11c932bf1d Fixed build 2024-01-27 20:18:39 -08:00
Sam Lantinga f0b8fee88f Added the environment variable SDL_LOGGING to control default log output
(cherry picked from commit 12bdb2b4d0)
2024-01-27 19:46:25 -08:00
Sam Lantinga 6ec3f5a28e Simplified the default log category logic
Now it's much clearer and easier to tweak the defaults

(cherry picked from commit 4fba663368)
2024-01-27 19:34:24 -08:00
Sam Lantinga 2c11068569 Document that the default log priority is error, not critical
(cherry picked from commit a7a98d8bbb)
2024-01-27 19:31:48 -08:00
Sam Lantinga 5297596132 Report out of memory instead of crashing in SDL_LoadFile_RW()
Fixes https://github.com/libsdl-org/SDL/issues/8935
2024-01-27 12:15:43 -08:00
Sam Lantinga 332213163c Fixed N3DS build 2024-01-27 11:56:33 -08:00
Sam Lantinga 4ff3b28273 Enable text input on video initialization without popping up an on-screen keyboard
Fixes https://github.com/libsdl-org/SDL/issues/8561
2024-01-27 11:52:58 -08:00
Sam Lantinga 08caafe2f1 Improved timing accuracy of SDL_WaitEventTimeout() on Windows
We don't need to use the hack of setting a timer and waiting for a timer message, MsgWaitForMultipleObjects() will allow us to wait for input directly with a timeout.

Before this change, sleeping for 20 ms would actually sleep for around 30 ms, with this change the sleep time is pretty accurate at 20-21 ms.

(cherry picked from commit 2670eb44af)
2024-01-25 06:34:29 -08:00
Sam Lantinga b16ef14c7c Make sure we include the matching copy of vk_video headers
(cherry picked from commit 1ac9602909)
2024-01-24 09:41:48 -08:00
Sam Lantinga 0f5a815657 Update to the latest version of the Khronos headers
(cherry picked from commit fc74bf8455)
2024-01-24 09:41:48 -08:00
Sam Lantinga 9196584773 Fixed ambiguity between std::byte and byte in rpcndr.h
Fixes https://github.com/libsdl-org/SDL/issues/8911

(cherry picked from commit a71f99c71f)
2024-01-23 09:02:00 -08:00
Sam Lantinga 4845027cad Updated to version 2.31.0 for development 2024-01-22 09:12:34 -08:00
Sam Lantinga ef7261bc41 Updated to version 2.29.2 for RC build 2024-01-22 08:43:05 -08:00
Sam Lantinga 12bab1c981 Fixed warning C4244: '=': conversion from 'Sint64' to 'int', possible loss of data 2024-01-22 08:39:22 -08:00
Sam Lantinga e3203278f4 Updated tests so they'll pass if we enable the C runtime in SDL2.dll
This isn't needed here, but will be necessary for sdl2-compat
2024-01-21 11:23:50 -08:00
Sam Lantinga 83f3045ee8 Revert "updated WhatsNew.txt"
This reverts commit c3a3f18076.
2024-01-20 05:28:05 -08:00
Sam Lantinga cfc22ac7d7 Added patch notes for the SDL 2.30.0 release 2024-01-19 20:11:07 -08:00
Sam Lantinga b4f99deb9e Updated to version 2.29.1 for RC build 2024-01-19 19:58:24 -08:00
Sam Lantinga 109bb2f17e Make sure the render target isn't bound as a resource
Fixes https://github.com/libsdl-org/SDL/issues/3380

(cherry picked from commit a73132177d)
2024-01-19 15:18:14 -08:00
Sam Lantinga f7ab765b84 Fixed crash scaling very large surfaces
Fixes https://github.com/libsdl-org/SDL/issues/8878

(cherry picked from commit 09ba55b462)
2024-01-19 13:06:57 -08:00
Sam Lantinga 87b5bb5840 Fixed potential overflow in software triangle rendering
(cherry picked from commit bd5d4d61ed)
2024-01-19 08:33:39 -08:00
Sam Lantinga 11b111e1f8 Fixed types used in documentation (thanks @Dragon-Baroque!) 2024-01-19 05:26:44 -08:00
Sam Lantinga be576c5fe7 Updated Xcode projects after https://github.com/libsdl-org/SDL/commit/472a415c8fa0a77c26765ce0bee0ca2330f7d179 2024-01-18 17:08:20 -08:00
Sam Lantinga eae81ec80e Touchpads already have their right/left buttons swapped in raw input
Fixes https://github.com/libsdl-org/SDL/issues/8597

(cherry picked from commit cf5e0637b5)
2024-01-15 19:46:31 -08:00
Sam Lantinga f641d91f67 Restore window minimum and maximum size if it is recreated
Fixes https://github.com/libsdl-org/SDL/issues/8805

(cherry picked from commit fb2d7ed83e)
2024-01-15 16:35:03 -08:00
Sam Lantinga b6e97d9ff0 Fixed Xcode warnings 2024-01-13 08:15:41 -08:00
Sam Lantinga 5db6eb7742 Removed reference to deleted header from Xcode project 2024-01-13 08:10:04 -08:00
Sam Lantinga 970ed36de5 Only force X11 if SDL_VIDEO_DRIVER_X11 is available 2024-01-09 11:56:26 -08:00
Sam Lantinga bd2f1e9ea6 Use the X11 driver if the application uses X11-based graphics frameworks
Fixes https://github.com/libsdl-org/SDL/issues/8812
2024-01-09 11:24:10 -08:00
Sam Lantinga f62d1220ac Restore the previously initialized subsystems after the Init/Quit test
Fixes https://github.com/libsdl-org/SDL/issues/8796
2024-01-08 14:32:52 -08:00
Sam Lantinga 4c11307a4e Only initialize audio drivers that have been requested
If testautomation is running with only a specific audio driver enabled, we shouldn't try to open other ones, as they might fail.

Fixes https://github.com/libsdl-org/SDL/issues/8797
2024-01-08 13:38:29 -08:00
Sam Lantinga d3c21666de gamepad: Clarify range and direction of axes
It would be easy to assume that all APIs that reference
SDL_JOYSTICK_AXIS_MAX work the same way, but they do not: triggers
generally use the full signed 16-bit range in the lower-level joystick
API, but are normalized to be non-negative by the higher-level gamepad
API.

We also never said explicitly which direction is positive here.
Experimentally, it's right (X), down (Y), and pressed (triggers).

Resolves: https://github.com/libsdl-org/SDL/issues/8793
Signed-off-by: Simon McVittie <smcv@collabora.com>

(cherry picked from commit 059fb560ba)
2024-01-08 09:48:04 -08:00
Sam Lantinga 5e12e4b813 Updated documentation for SDL_HINT_SHUTDOWN_DBUS_ON_QUIT
(cherry picked from commit 3deefa6b43)
2024-01-07 14:24:56 -08:00
Sam Lantinga ca3b8fe91d Fixed build 2024-01-06 08:33:30 -08:00
Sam Lantinga e1c3dcb403 Don't try to send the PS third-party feature request to the Logitech G815 keyboard
Fixes https://github.com/libsdl-org/SDL/issues/8373

(cherry picked from commit d3daba791a)
2024-01-06 08:30:20 -08:00
Sam Lantinga c309546e8c Fixed warning: no previous prototype for function 'SDL_GetGameControllerTypeFromString' [-Wmissing-prototypes] 2024-01-06 08:23:55 -08:00
Sam Lantinga 0e913a22db Renamed ShowTextInput/HideTextInput to ShowScreenKeyboard/HideScreenKeyboard on Android
This better reflects the actual implementation and makes SDL_HINT_ENABLE_SCREEN_KEYBOARD work on Android.

Fixes https://github.com/libsdl-org/SDL/issues/8652

(cherry picked from commit 014a63b4b5)
2024-01-06 08:23:11 -08:00
Sam Lantinga be29ca0189 Use the application requested size to determine automatic orientation on iOS
Fixes https://github.com/libsdl-org/SDL/issues/8201

(cherry picked from commit e3b5999bb4)
2024-01-06 07:39:25 -08:00
Sam Lantinga f892ae10d6 updateKeyboard should use the SDL window's screen instead of the view window's screen, which may be nil.
Fixes https://github.com/libsdl-org/SDL/issues/8200

(cherry picked from commit 3a9a52fe6c)
2024-01-06 07:37:14 -08:00