Commit Graph

11392 Commits

Author SHA1 Message Date
Eric Wasylishen
76392f4fe1 Handle DPI scaling in SDL_GetWindowSurface
Fixes DPI awareness of testdrawchessboard (previously, the surface was
being created in points instead of pixels, resulting in the demo app
only drawing in a corner of the screen on High-DPI displays)

*_CreateWindowFramebuffer()/*_UpdateWindowFramebuffer(): are updated
to use SDL_GetWindowSizeInPixels instead of SDL_GetWindowSize() or
window->w/window->h.

Most of the _CreateWindowFramebuffer backends are untested except
for Windows.

Fixes #7047

(cherry picked from commit 67c91353e01f6f2c0cc80c17eeddbad6def7cb01)
2023-06-14 17:23:54 -07:00
Sam Lantinga
3a5abee512 Removed unused function
(cherry picked from commit 73927b09480fd5d664f7077a70a8b6df318cdd2d)
2023-06-14 15:16:44 -07:00
Sam Lantinga
e7ee375f22 Fixed third-party Nintendo Switch Pro controllers shutting down when we try to set the home LED.
This fixes the PDP Afterglow Wireless Deluxe Controller.

(cherry picked from commit 0c16f4faf00eb573d051cac7d60ed8dd22e5596a)
2023-06-14 15:15:27 -07:00
Sam Lantinga
4aec54988c Allow switching licensed Nintendo Switch Pro controllers into gyro input mode
(cherry picked from commit 8c95bd814bf1cf0ea1f12aa724938176a7dfd780)
2023-06-14 15:13:11 -07:00
Sam Lantinga
271e03f0d7 Added support for the PowerA Fusion Pro Wireless Controller in Bluetooth mode
This controller shows up with a VID/PID of 0, but has full functionality over Bluetooth

(cherry picked from commit cdfc0c5a3314e4e0cd5152feddd8950c7eb797f1)
2023-06-14 15:12:56 -07:00
Sam Lantinga
d4f9be4416 Updated to version 2.27.1 for release candidate 2023-06-13 19:44:26 -07:00
Sam Lantinga
1f5b21ead5 Removed more Linux Xbox mappings in favor of the automatic mapping
This fixes the Xbox Series X share button on Linux 5.x kernels.

(cherry picked from commit 0f4b15e16b7f07a46db6dc8e651f8c1849d658c5)
2023-06-13 17:06:24 -07:00
Sam Lantinga
35c7884929 Use the automatic mapping instead of a hardcoded one for Xbox controllers on Linux
This is much more robust and able to dynamically create a mapping for Xbox One S, Xbox Series X, and Xbox Elite 2 controllers.

(cherry picked from commit 9567989eb3ce9c858f0fe76806c5ccad69da89ba)
2023-06-13 17:06:21 -07:00
Sam Lantinga
3f6c4ec6d0 Cleanup for previous change, fixing typos, etc.
(cherry picked from commit 883b0f4071687f2e5c8329963f97504e9679394b)
2023-06-13 17:04:54 -07:00
Sam Lantinga
fc72f12e7f Added automatic mapping support for Xbox controllers on the 6.x Linux kernels
This automatically adds support for the share button and paddles when present.

(cherry picked from commit db1d4d3d76f5e21b2547463710b513fe0ebd7fad)
2023-06-13 17:04:17 -07:00
Ozkan Sezer
681f67d353 fixed build after commit d2372c8538. 2023-06-14 00:25:50 +03:00
Sam Lantinga
d2372c8538 Added automatic mapping for Xbox Elite paddles using the xpadneo driver
We can't actually tell yet whether a controller has paddles, so this code isn't effective, but I'll file an upstream issue and see if we can get that resolved.

(cherry picked from commit b0677f476fa43f4a113b04a959228fd38f95d740)
2023-06-13 10:12:07 -07:00
Sam Lantinga
7db23f4ef1 Fixed joystick vendor detection in Linux automatic gamepad mapping
(cherry picked from commit 071d1e29dd4f80605932f320aa2e05fda383944c)
2023-06-13 10:11:55 -07:00
Simon McVittie
36ff6327b0 linux: Improve gamepad mapping heuristic to accept Android conventions
This heuristic for gamepads without a more specific mapping already
tried two incompatible conventions for handling triggers: the Linux
Gamepad Specification uses hat switch 2 for the triggers (for whatever
reason), but the de facto standard set by the drivers for older Xbox
and Playstation controllers represents each trigger as the Z-axis of
the nearest analog stick.

Android documentation encourages Bluetooth gamepad manufacturers to use
a third incompatible convention where the left and right triggers are
represented as the brake and gas pedals of a driving simulator
controller. The Android convention also changes the representation of
the right stick: instead of using X and Y rotation as a second pair
of axes, Android uses Z position as a second horizontal axis, and
Z rotation as a second vertical axis.

Try to cope gracefully with all of these. This will hopefully resolve
the issue described in #5406 (when using unpatched kernels).

Signed-off-by: Simon McVittie <smcv@collabora.com>
(cherry picked from commit cf1dc66e2cfc7a65374c5fea681dd31c50363a2c)
2023-06-13 05:46:01 -07:00
Simon McVittie
26a38a0b20 linux: Reduce magic numbers when mapping gamepad axes
The bitfield `mapped` has two different sets of meanings, depending
whether we're setting up the triggers or the d-pad. Represent them
as symbolic constants rather than opaque integers.

Signed-off-by: Simon McVittie <smcv@collabora.com>
(cherry picked from commit c4d49fadd4500cb522b2a98e5a42d024c566d8bf)
2023-06-13 05:45:43 -07:00
Sam Lantinga
b3e1fd97b8 Fixed enumerating Steam Controllers on iOS
(cherry picked from commit dec0dbff13d4091035209016eb2d0dd82c9aba58)
2023-06-13 05:44:34 -07:00
Sam Lantinga
c77aaa5d99 Fixed n3ds build
(cherry picked from commit d95dbe78bb7a5087ecfb8d301417b1108d868738)
2023-06-12 15:41:09 -07:00
Sam Lantinga
e4e0a12901 Reduce the chance of destroying the joystick mutex while it's in use
Fixes https://github.com/libsdl-org/SDL/issues/7811

(cherry picked from commit 6390165fd4c193631d6780758a4aeec0d02b90eb)
2023-06-12 15:31:16 -07:00
Ryan C. Gordon
2afb49ba9a cocoa: Warp mouse to center of window before enabling relative mouse.
This prevents the case where the mouse might be at the edge of the
window when enabling relative mode, which confuses macOS, at it
might believe the user is attempting to resize the window.

Fixes #6994.
2023-06-11 12:47:26 -04:00
Ozkan Sezer
154ad6faa9 SDL_dynapi.c: minor cosmetics. 2023-06-10 20:50:10 +03:00
Sam Lantinga
2aa8525ecb Fixed build 2023-06-10 09:29:09 -07:00
Sam Lantinga
36033e3832 Make it clear that you can't mix 2D rendering and the window surface API
Also added functions to query and destroy the window surface so you can switch between modes if you want.

See https://github.com/pygame-community/pygame-ce/issues/2190 for more details.
2023-06-10 08:54:36 -07:00
Sam Lantinga
320f3fffbe Fixed querying device info on the MOBAPAD M073
The query packet needs to contain valid rumble data in order to be accepted by the controller.

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

(cherry picked from commit 5490873daa12a57ff4b36090f25f04530323c6e4)
2023-06-09 18:43:14 -07:00
Sam Lantinga
30b4d90f1c Only update the serial number if it hasn't already been set
This fixes the serial number for Nintendo Switch Pro, which is queried from the hardware in device initialization, and was later clobbered by the USB string which isn't correct.

(cherry picked from commit 2042e9c4e3cba6ffa9c34abac14828e31365f98b)
2023-06-09 17:36:06 -07:00
Sam Lantinga
1cdd6dc829 Fixed reading input from the Razer Atrox Arcade Stick using Windows Gaming Input
(cherry picked from commit 172cfca51332a845abf9c141ae56aa121fe4ada5)
2023-06-09 14:36:12 -07:00
Ozkan Sezer
f5b3247aae further mouse relative motion fix for os/2 (thanks Andrey Vasilkin) 2023-06-08 03:40:32 +03:00
Ryan C. Gordon
aa536217b3
x11: check if window size/position has changed during SDL_ShowWindow.
Fixes #4216.

(cherry picked from commit 49b5cfa6c5cb9bb8cecce508e12fa7f8e0cc302f)
2023-06-07 15:46:59 -04:00
Anonymous Maarten
14f4fd3f11 git commit -m "cmake: set maximum policy to 3.5
This fixes the following warning when configuring with CMake 3.27+:
```
CMake Deprecation Warning at CMakeLists.txt:3190 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.

Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
```
2023-06-07 20:35:32 +02:00
Ozkan Sezer
b1324fbc9f fixed os/2 mouse relative motion not working (thanks Andrey Vasilkin,)
for issue reported at https://github.com/bitwiseworks/SDL2-os2/issues/5
2023-06-05 11:50:50 +03:00
Sam Lantinga
4700fbcbdf Don't bother re-encoding Latin1 characters in the ASCII range
(cherry picked from commit 6150b5b3cbde0e592c4ffe822f66aa5f9c90c3d9)
2023-06-04 05:40:07 -07:00
Eddy Jansson
2660da6f5c Always allocate zt in output of SDL_iconv_string()
Before this, the function could not be used on buffers,
as it would not account for the zero-termination unless
it was included in the input.

(cherry picked from commit 5f5abb680523e1adedd3fca2a8e252db01fc1c52)
2023-06-04 05:17:15 -07:00
Sam Lantinga
7c86d96e86 Fixed SDL_iconv_string() truncation when handling SDL_ICONV_E2BIG
(cherry picked from commit c369b900199f905c51edb372bd7780f67a544a8c)
2023-06-04 05:14:44 -07:00
Ozkan Sezer
a1dea11d32 fix MSVC build error. 2023-06-04 14:29:10 +03:00
Sam Lantinga
bfef7c302c Only convert the result of XLookupString() if it's not already UTF-8
Fixes https://github.com/libsdl-org/SDL/issues/7766

(cherry picked from commit 491ae20d963cff397b5980b31d142d576e74becb)
2023-06-04 02:54:21 -07:00
Sam Lantinga
b9d1c483b9 Fixed building with the 16.1.4479499 Android toolchain 2023-06-03 23:55:56 -07:00
Sam Lantinga
dc94cca8dd Fixed typo in cherry-pick (thanks @HadesD!) 2023-06-03 11:57:08 -07:00
Sam Lantinga
97fe777ab4 Steam uses a different VID/PID for the Steam Virtual Gamepad on Windows
(cherry picked from commit 6815e75cafee8e7caaacf1f428b6539c8bbc7f7d)
2023-06-03 11:40:58 -07:00
Sam Lantinga
f1bad83a21 Revert "Fixed detection of the Steam Virtual Gamepad on macOS"
This reverts commit 7aa28ce279.

Steam has been updated to send a version of 1 to avoid conflicts with controllers that report a version of 0.
2023-06-03 11:36:38 -07:00
Sam Lantinga
7aa28ce279 Fixed detection of the Steam Virtual Gamepad on macOS
(cherry picked from commit 5fcd70578bdde3eaaa51aa4ab6c24ed08bd49db3)
2023-06-02 18:39:22 -07:00
Sam Lantinga
c89a460672 Fixed build if SDL_JOYSTICK_RAWINPUT_MATCHING isn't enabled
(cherry picked from commit 7c55845c804e2272df8bc111dea5d3e9d11670a0)
2023-06-02 11:20:55 -07:00
Sam Lantinga
e3bfacde3e Don't use raw input while Remote Desktop is active
Raw input will not send game controller events while Remote Desktop is active, so dynamically switch between XInput and raw input when Remote Desktop state changes.

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

(cherry picked from commit 767507fcf6f4607edb413acb53a6c029863701ed)
2023-06-02 11:19:44 -07:00
Sam Lantinga
9c05098ed9 Fixed WGI immediately being correlated with raw input devices with no input
The at rest match state is 0x0000008800000000, not 0

(cherry picked from commit e8b5b4881c8eb31bb7de5adef3479305a73fb0bf)
2023-06-02 09:39:57 -07:00
Alibek Omarov
c395240425 hints: clarify support for comma-separated values for QtWayland orientation that's available since 2.0.22
Signed-off-by: Alibek Omarov <a1ba.omarov@gmail.com>
2023-06-02 07:41:08 -07:00
Alibek Omarov
68e3e99087 wayland: reset orientation bitmask before reading values from hint on QtWayland
Signed-off-by: Alibek Omarov <a1ba.omarov@gmail.com>
2023-06-02 07:41:08 -07:00
Ozkan Sezer
7f7ea909bc testautomation_guid.c: fix integer warning in 32 bit builds. 2023-05-31 04:50:02 +03:00
Ryan C. Gordon
379a6f4dab
x11: Attempt to wait for SDL_MaximizeWindow to complete before returning.
Fixes #7070.
2023-05-30 17:04:31 -04:00
Ryan C. Gordon
d275851dfb
windows: Don't allow non-resizable windows to be maximized.
Fixes #6346.
2023-05-29 14:47:53 -04:00
Ryan C. Gordon
a9ded76dff
VisualC: turn on multi-processor compilation.
This makes SDL2 build in 12 seconds, instead of 50, on my Windows
workstation, with Visual Studio.
2023-05-29 14:47:52 -04:00
Sam Lantinga
5007b96363 Fixed build warning 2023-05-28 19:23:56 -07:00
Sam Lantinga
b2e88ecfeb Disable SDL_JOYSTICK_RAWINPUT_XINPUT
Apparently when using the Xbox One Wireless Adapter, using XInput at the same time as raw input will cause the controller to turn off immediately after connecting. This appears to be a bug in the Windows 11 driver stack, but since WGI provides all the extended functionality we need, this can be turned off for now.

Fixes https://github.com/libsdl-org/SDL/issues/3468
2023-05-28 18:41:21 -07:00