Commit Graph

15122 Commits (17d4f8d6990d2bd92d6a8be4b23c4dc1626fb923)

Author SHA1 Message Date
Sam Lantinga 96fbd10de0 Added a script to trigger the release workflow 2024-03-24 07:22:58 -07:00
Sam Lantinga 36e73bdda4 Updated to version 3.1.0 for the preview release 2024-03-24 06:16:02 -07:00
Sam Lantinga a20eec1415 Tweaking documentation for the SDL 3.0 preview release 2024-03-24 06:16:02 -07:00
Frank Praznik 9e460ce6a6 wayland: Pass the keyboard ID through to repeat events 2024-03-24 08:49:29 -04:00
Christoph Reichenbach 0df0462d0a Removed all tabs in testautomation_pen.c 2024-03-24 05:05:30 -07:00
Christoph Reichenbach 615c7efd98 Fix #9279: Memory leak in pen name handling
- Fixes a leak in pen name allocation that would trigger
  for both X11 and Wayland for some non-pen input devices
  when new devices are added/removed.
- SDL_PenQuit() now deallocates and resets the table of known pens
- testautomation_pen.c now uses PenInit and PenQuit as setup and
  teardown, respectively

testautomation_pen.c was already triggering the leak, and it is
visible with --trackmem, so no new tests are added.
2024-03-24 05:04:53 -07:00
Sam Lantinga 675c9f01ff Renamed releaser.py to build-release.py 2024-03-23 16:56:26 -07:00
Sam Lantinga c83d0d87c2 Revert "Added virtual keyboard support for Xbox (thanks @ts-13512)"
This reverts commit b5d4206b30.

@nkrapivin already implemented GDK virtual keyboard support in https://github.com/libsdl-org/SDL/pull/7728
2024-03-23 16:47:59 -07:00
Anonymous Maarten f030533580 SDL_blit: remove SDL_BLIT_CPU_FEATURES override 2024-03-23 16:36:44 -07:00
Anonymous Maarten 1aa9ef7213 cpuinfo: reset cpu features on SDL_Quit 2024-03-23 16:36:44 -07:00
Anonymous Maarten 64465653b4 audio: always build fallback scalar converters 2024-03-23 16:36:44 -07:00
Anonymous Maarten 89b135e570 cmake: add automation and platform test without simd 2024-03-23 16:36:44 -07:00
Anonymous Maarten 1d0e5286aa Limit CPU features through a hint 2024-03-23 16:36:44 -07:00
Sam Lantinga b5d4206b30 Added virtual keyboard support for Xbox (thanks @ts-13512) 2024-03-23 16:34:43 -07:00
SDL Wiki Bot 675216e81b Sync SDL3 wiki -> header 2024-03-23 23:32:24 +00:00
Sylvain 1855ce68af Fix bug #9331 - SDL3 Android crash getVibrator() == null 2024-03-23 16:31:21 -07:00
Sam Lantinga 208cd434b5 Show the names of mice and keyboards when they connect 2024-03-23 16:31:00 -07:00
Sam Lantinga 7852a6c307 Added device name for evdev mice and keyboards 2024-03-23 16:31:00 -07:00
Frank Praznik 87714ce5b9 wayland: Set the keyboard and mouse names to match XWayland 2024-03-23 16:31:00 -07:00
Sam Lantinga 72fc6f86e5 Text input is no longer automatically enabled when initializing video.
Fixes https://github.com/libsdl-org/SDL/issues/9309
Fixes https://github.com/libsdl-org/SDL/issues/9268
2024-03-23 16:31:00 -07:00
Sam Lantinga 6604d423fd Added a test program for multiple mice 2024-03-23 16:31:00 -07:00
Sam Lantinga 361b7190df Track unique button states between different mice
We were already halfway doing this, but now we make that information available to the Windows driver so it can cache the button state per-mouse
2024-03-23 16:31:00 -07:00
Sam Lantinga 35756593d6 Use the correct device ID (global or default or specific) based on context 2024-03-23 16:31:00 -07:00
Sam Lantinga 9eb87ca325 Note that many things are considered mice and keyboards that you might not expect 2024-03-23 16:31:00 -07:00
Sam Lantinga c0f4565552 Added SDL_GetKeyboardName() and SDL_GetMouseName() 2024-03-23 16:31:00 -07:00
Sam Lantinga 20a860c876 Use the specific pointer device ID for X11 button and motion events 2024-03-23 16:31:00 -07:00
Sam Lantinga 476245564c Use the real device IDs for the X11 master keyboard and pointer
These always exist so they don't really help detect whether a keyboard/mouse is attached. Looking at the slave devices isn't that helpful either, as they're very permissive in what they might send.

For example, on my system with a single mouse and keyboard attached, xinput -list shows:
 Virtual core pointer                    	id=2	[master pointer  (3)]
   - Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
   - Generic USB Mouse                       	id=10	[slave  pointer  (2)]
   - Generic USB Consumer Control            	id=11	[slave  pointer  (2)]
   - KINESIS CORPORATION KB800HM Kinesis Freestyle2 for Mac	id=18	[slave  pointer  (2)]
   - Logitech Gaming Mouse G502 Consumer Control	id=15	[slave  pointer  (2)]
   - Logitech Gaming Mouse G502              	id=17	[slave  pointer  (2)]
 Virtual core keyboard                   	id=3	[master keyboard (2)]
   - Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
   - Power Button                            	id=6	[slave  keyboard (3)]
   - Power Button                            	id=7	[slave  keyboard (3)]
   - Sleep Button                            	id=8	[slave  keyboard (3)]
   - Generic USB                             	id=9	[slave  keyboard (3)]
   - Generic USB System Control              	id=12	[slave  keyboard (3)]
   - Generic USB Consumer Control            	id=19	[slave  keyboard (3)]
   - KINESIS CORPORATION KB800HM Kinesis Freestyle2 for Mac	id=20	[slave  keyboard (3)]
   - KINESIS CORPORATION KB800HM Kinesis Freestyle2 for Mac	id=21	[slave  keyboard (3)]
   - Logitech Gaming Mouse G502 Keyboard     	id=13	[slave  keyboard (3)]
   - Logitech Gaming Mouse G502 System Control	id=14	[slave  keyboard (3)]
   - Logitech Gaming Mouse G502 Consumer Control	id=16	[slave  keyboard (3)]
2024-03-23 16:31:00 -07:00
Sam Lantinga d1eb4adb16 Be explicit about the event mouse and keyboard ID 2024-03-23 16:31:00 -07:00
Frank Praznik 1c54455353 wayland: Send keyboard and mouse added/removed events
Send keyboard and mouse added/removed events when seat capabilities change. Note that Wayland only supports one global keyboard and mouse object per seat, so events coming from different keyboards and mice on the same seat can't be distinguished.
2024-03-23 16:31:00 -07:00
Sam Lantinga 2fe1a6a279 Initial support for hotplugging mice and keyboards 2024-03-23 16:31:00 -07:00
Sam Lantinga c33e4c998d Clear the subsystem ref count when shutting down subsystems in the main quit
This prevents dependent subsystems from being deinitialized multiple times
2024-03-23 16:31:00 -07:00
Sam Lantinga 171ff041d0 Removed invalid ascii from headers 2024-03-23 16:31:00 -07:00
Anonymous Maarten e19b6c0b95 Add releaser script + workflow 2024-03-23 21:41:23 +01:00
Anonymous Maarten c81d11fae4 mingw: add pkg-support files (INSTALL.txt and Makefile) 2024-03-23 21:41:20 +01:00
Anonymous Maarten 4defea47e1 dmg: fix sdl3-config.cmake 2024-03-23 21:41:20 +01:00
Anonymous Maarten 2ed0143425 visualc: fix sdl3-config.cmake 2024-03-23 21:41:20 +01:00
Anonymous Maarten 75a71bde4b cmake: build tests against installed SDL prefix 2024-03-23 21:41:20 +01:00
Anonymous Maarten 7f888f98f7 gles2: only build tests when building SDL3 or when the headers are available 2024-03-23 21:41:20 +01:00
Frank Praznik 297f8e41af wayland: Factor out the general SHM buffer allocation/free functions from the cursor code
It will be necessary for a forthcoming toplevel icon setting protocol that will likely soon call for implementations, and is cleaner in general.
2024-03-23 14:17:13 -04:00
Sam Lantinga 3d96c2426f PSP: improve performance counter res to us granularity (thanks @rofl0r!) 2024-03-23 09:34:07 -07:00
Anonymous Maarten c493b40cc3 testffmpeg_vulkan: fix -Wincompatible-pointer-types warning
```
[1/1] Building C object test/CMakeFiles/testffmpeg.dir/testffmpeg_vulkan.c.o
/src/SDL/test/testffmpeg_vulkan.c: In function ‘BeginVulkanFrameRendering’:
/src/SDL/test/testffmpeg_vulkan.c:787:20: warning: passing argument 1 of ‘vk->lock_frame’ from incompatible pointer type [-Wincompatible-pointer-types]
  787 |     vk->lock_frame(frames, pVkFrame);
      |                    ^~~~~~
      |                    |
      |                    AVHWFramesContext *
/src/SDL/test/testffmpeg_vulkan.c:787:20: note: expected ‘struct AVHWFramesContext *’ but argument is of type ‘AVHWFramesContext *’
/src/SDL/test/testffmpeg_vulkan.c: In function ‘FinishVulkanFrameRendering’:
/src/SDL/test/testffmpeg_vulkan.c:885:22: warning: passing argument 1 of ‘vk->unlock_frame’ from incompatible pointer type [-Wincompatible-pointer-types]
  885 |     vk->unlock_frame(frames, pVkFrame);
      |                      ^~~~~~
      |                      |
      |                      AVHWFramesContext *
/src/SDL/test/testffmpeg_vulkan.c:885:22: note: expected ‘struct AVHWFramesContext *’ but argument is of type ‘AVHWFramesContext *’
```
2024-03-22 11:05:13 -07:00
Marcel Hild 67e425bcf8 Add support for MadCatz Saitek Side Panel Control Deck
Signed-off-by: Marcel Hild <hild@b4mad.net>
2024-03-22 09:15:39 -07:00
Sam Lantinga 05b57f6c2c Simplified SDL_SYS_RemovePath()
If we get ENOENT we call that success. If the parent directory doesn't exist, that's fine, other operations on it will fail if it matters to the application.
2024-03-21 21:16:14 -07:00
Anonymous Maarten 2521ba47fe jack: set error message when failing to open jack client 2024-03-22 01:22:39 +01:00
Mark Delk dd4636e3fd SDL_sysmutex.c: fix void return compile error 2024-03-21 13:25:01 -07:00
Sam Lantinga 917d683811 Moved SDL_JoyBallEvent together with the other joystick events 2024-03-21 12:51:59 -07:00
Ozkan Sezer 888cc29df6 add missing `reserved` field to struct SDL_JoyBallEvent,
Fixes https://github.com/libsdl-org/SDL/issues/9327
2024-03-21 20:10:50 +03:00
Sam Lantinga 70b0d33106 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)
2024-03-20 10:45:11 -07:00
Frank Praznik 4a7e3beeb9 filesystem: Use high-res file times on more platforms
Some POSIX platforms don't define macros to note the presence of the POSIX.1-2008 st_*tim timespec members of the stat struct, so check if this member exists during CMake configuration and conditionally enable it.

Apple platforms use st_*timespec naming, which is supported as of OSX 10.6. SDL3 requires 10.9+, so no fallback is needed.

Android only supports the POSIX.1-2008 semantics as of API version 26 or higher, so this has to be conditionally enabled in the makefile build via an API version definition check.

In other cases, file times fall back to the legacy path with second precision.
2024-03-20 11:39:42 -04:00
Sam Lantinga 18feaa52dd Fixed comment at the top of testtime.c 2024-03-19 17:09:08 -07:00