Commit Graph

13853 Commits (2c1fbe1967457c6b95323a5ea4136849c66bc307)

Author SHA1 Message Date
Sam Lantinga 2c1fbe1967 Revert "Check to make sure the Windows joystick device has buttons and axes"
This reverts commit ad0af48883.

It turns out the ROG PUGIO II actually enumerates as a gamepad, so this change didn't have any effect anyway. We're getting lots of reports of people's racing pedals and similar devices no longer showing up, so we'll revert this again.

Fixes https://github.com/libsdl-org/SDL/issues/8227
Fixes https://github.com/libsdl-org/SDL/issues/8484
2023-11-13 21:33:09 -08:00
Sam Lantinga edd044e901 Fixed the ROG PUGIO II showing up as a game controller
This mouse actually enumerates as a gamepad with 2 axes, 8 buttons and a hat.

We'll ignore it like the other ROG mice, unless someone specifically wants to use it as a gamepad.
2023-11-13 21:32:41 -08:00
Frank Praznik 861b1ebd12 properties: Use a mutex instead of an RWLock to guard the hash table
The hash table can be recursively locked from the same thread, which can cause issues with RWLocks, as locking them recursively can result in undefined behavior or deadlocks. Use a mutex instead, as it can be safely recursively locked.
2023-11-13 18:28:24 -05:00
Ryan C. Gordon dd8ab67bd9
Sync wiki -> headers. 2023-11-13 15:46:29 -05:00
Ryan C. Gordon 91460fc13d
include: Fixed up documentation in SDL_pen.h 2023-11-13 15:40:55 -05:00
Dimitriy Ryazantcev 876c97454a Cleanup WIN_CreateCursor() code a bit
Closes #6476
2023-11-13 11:46:50 -08:00
Ryan C. Gordon 8766aa39d6
Sync wiki -> headers. 2023-11-13 13:03:42 -05:00
Ryan C. Gordon e5ffd6d8eb
include: Removed `\link` and `\endlink` Doxygen tags. 2023-11-13 13:01:25 -05:00
Sam Lantinga 1c4723ac66 SDL_CreateWindowFrom() now takes a set of properties that describe the native window and options. 2023-11-12 21:58:58 -08:00
Sam Lantinga 6afae6681b Allow casting properties of different types 2023-11-12 21:58:58 -08:00
Sam Lantinga bd269b0f41 Added SDL_SetBooleanProperty() and SDL_GetBooleanProperty() 2023-11-12 21:58:58 -08:00
Ryan C. Gordon c47ac5b2df
include: Fixed copy/paste error 2023-11-12 23:41:22 -05:00
Ryan C. Gordon 0efb3d90e0
audio: removed a fixed FIXME comment. 2023-11-12 23:41:22 -05:00
nia 69cae07cc1 cpuinfo: Fix detection of physical memory above 2GB on NetBSD
Rework the code to clearly prefer 64-bit sysctls first, then
legacy sysctls, and eliminate a second ifdef.

Signed-off-by: Nia Alarie <nia@NetBSD.org>
2023-11-12 18:12:18 -08:00
Ozkan Sezer 45fc828c95 move SDL_EVENT_WINDOW_PEN_ENTER and SDL_EVENT_WINDOW_PEN_LEAVE down
... to preserve compatibility with sdl2-compat.
2023-11-12 12:22:43 -08:00
Sam Lantinga 0907f345cb Added property types: pointer, string, number, float 2023-11-12 10:48:38 -08:00
Christoph Reichenbach 7c80ac6df7 API for pressure-sensitive pens + XInput2/Wayland
This patch adds an API for querying pressure-
sensitive pens, cf. SDL_pen.h:
- Enumerate all pens
- Get pen capabilities, names, GUIDs
- Distinguishes pens and erasers
- Distinguish attached and detached pens
- Pressure and tilt support
- Rotation, distance, throttle wheel support
  (throttle wheel untested)
- Pen type and meta-information reporting
  (partially tested)

Pen event reporting:
- Three new event structures: PenTip, PenMotion, and
  PenButton
- Report location with sub-pixel precision
- Include axis and button status, is-eraser flag

Internal pen tracker, intended to be independent
of platform APIs, cf. SDL_pen_c.h:
- Track known pens
- Handle pen hotplugging

Automatic test:
- testautomation_pen.c

Other features:
- XInput2 implementation, incl. hotplugging
- Wayland implementation, incl. hotplugging
- Backward compatibility: pen events default to
  emulating pens with mouse ID SDL_PEN_MOUSEID
- Can be toggled via SDL_HINT_PEN_NOT_MOUSE
- Test/demo program (testpen)
- Wacom pen feature identification by pen ID

Acknowledgements:
- Ping Cheng (Wacom) provided extensive feedback
  on Wacom pen features and detection so that
  hopefully untested Wacom devices have a
  realistic chance of working out of the box.
2023-11-12 09:52:02 -08:00
Sam Lantinga d3e43668d0 Revert "Sync SDL3 wiki -> header"
This reverts commit 43571769f1.
2023-11-12 09:02:22 -08:00
SDL Wiki Bot 43571769f1 Sync SDL3 wiki -> header 2023-11-12 15:55:10 +00:00
Sam Lantinga 843873626c Handle window resizing on the render thread in D3D11 and D3D12
This prevents crashing when a separate thread is being used for rendering

Discussion and sample code in https://github.com/libsdl-org/SDL/issues/8528
2023-11-11 12:49:53 -08:00
Sam Lantinga f66f61de01 Fixed missing "0" in the button list 2023-11-11 08:30:13 -08:00
Sylvain Becker 04b6b2979f
Re-add SDL_assert() with non boolean ptr syntax (#8530) 2023-11-11 12:28:24 +03:00
Sam Lantinga b374105975 Replaced SDL_GetTextureDXGIResource() with texture properties
Fixes https://github.com/libsdl-org/SDL/issues/8529
2023-11-10 20:38:13 -08:00
Sam Lantinga 09d1e9defb Only update the battery status for Bluetooth Switch Pro controllers
Controllers that are plugged in are in the wired state
2023-11-10 17:09:39 -08:00
Sam Lantinga 87794d03ad Added shortened name for "Nintendo Co., Ltd." 2023-11-10 17:04:37 -08:00
Sam Lantinga fbb6934905 Added support for the Dragonrise GameCube adapter with VID 0x1843 2023-11-10 16:39:32 -08:00
Sam Lantinga d98e1bdfe1 Use the standard gamepad type for Switch Pro controllers using the GameCube form factor 2023-11-10 16:39:32 -08:00
Sam Lantinga a5a47d3bee Fixed crash if there is no controller mapping 2023-11-10 16:39:32 -08:00
Sam Lantinga 312faf9305 Updated documentation for the controller face buttons 2023-11-10 16:39:32 -08:00
Sam Lantinga 2991b9f6ac SDL now represents gamepad buttons as positional elements with a separate label
This gives applications and binding systems a clearer view of what the hardware is so they can make intelligent decisions about how to present things to the user.

Gamepad mappings continue to use abxy for the face buttons for simplicity and compatibility with earlier versions of SDL, however the "SDL_GAMECONTROLLER_USE_BUTTON_LABELS" hint no longer has any effect.

Fixes https://github.com/libsdl-org/SDL/issues/6117
2023-11-10 12:21:43 -08:00
meyraud705 8708ba7393 Don't leak if realloc fails 2023-11-10 06:33:39 -08:00
Mathieu Eyraud 36b2d2e463 Fix memory leak in SDL_SendDrop() 2023-11-10 06:32:43 -08:00
Mathieu Eyraud dfb87e1099 Fix uninitialised variable 'properties'
If SDL_CreateHashTable() fails, properties->lock is not initialised, SDL_FreeProperties() is called and destroys the uninitialised lock.
2023-11-10 06:32:15 -08:00
Mathieu Eyraud e54c5e0204 Fix condition in SDLTest_TrackAllocations() 2023-11-10 06:31:44 -08:00
Ryan C. Gordon 89408a9705
wasapi: ResetWasapiDevice no longer blocks on management thread.
It just proxies all its necessary releases and frees to these without
blocking, and sets the appropriate fields to NULL so they can be used again
immediately, regardless of when the old stuff actually gets released.
2023-11-09 20:27:58 -05:00
Ryan C. Gordon aa7baf63aa
Sync wiki -> headers. 2023-11-09 20:11:23 -05:00
Frank Praznik 74f3643bfa wayland: Add missing break to switch statement 2023-11-09 19:48:56 -05:00
Anonymous Maarten 2d6bae70b4 Older gcc does not support #pragma GCC diagnostic inside functions 2023-11-09 23:33:28 +01:00
Sylvain d8600f717e Pointer as bool (libsdl-org#7214) 2023-11-09 14:18:36 -08:00
Anonymous Maarten 23db971681 x11: Ignore deprecated declaration of XKeycodeToKeysym 2023-11-09 18:45:54 +01:00
Anonymous Maarten 61c39ce848 ci: re-enable Intel compilers on ci 2023-11-09 18:05:15 +01:00
Sam Lantinga 4ac3f5c07e Updated Xcode project with the video capture API 2023-11-09 09:01:29 -08:00
Sylvain 59f93e20a7 Add SDL Video Capture, with back-end for linux/macos/ios/android 2023-11-09 08:36:23 -08:00
Sam Lantinga 3ab98a3572 Removed debug print statements (thanks @stsp!) 2023-11-08 20:43:44 -08:00
Sam Lantinga f4b61fff30 Implemented VT switching for KMSDRM on Linux
Fixes https://github.com/libsdl-org/SDL/issues/3844
2023-11-08 20:35:16 -08:00
Anonymous Maarten 391a3d23d0 cmake: the compile-time pdb does not have a suffix, if set 2023-11-09 03:28:20 +01:00
Anonymous Maarten a6541166bc cmake: also install pdb files of static libraries 2023-11-09 02:17:07 +01:00
Anonymous Maarten 2e3f574f8f cmake: don't add the C runtime library to the .obj file (when using MSVC)
Using /Zl, the obj files will no longer add a link requirement to the C
runtime libraries. Meanwhile, also add /NODEFAULTLIB for non-UWP MSVC
toolchains.

Because /Zl is a compile option, it can also be used when building a
static SDL3 library, and SDL3_test.
2023-11-09 02:10:58 +01:00
Sam Lantinga bea34c5380 Fixed a memory leak at window creation.
Windows updates the desktop display mode once at video init (in WIN_InitModes()) and once when creating a window (in WIN_RefreshDisplays())

Fixes https://github.com/libsdl-org/SDL/issues/7982
Fixes https://github.com/libsdl-org/SDL/issues/8189
2023-11-08 14:26:07 -08:00
Sam Lantinga b5347c3364 Fixed emscripten and iOS builds 2023-11-08 14:14:41 -08:00