Sam Lantinga
55b03c7493
Updated to version 2.24.2 for point release
2022-11-01 05:47:12 -07:00
Sam Lantinga
08f83f953c
Don't use RAWINPUT joystick driver on Windows XP
...
Fixes https://github.com/libsdl-org/SDL/issues/6400
(cherry-picked from commit 5025f24033 )
2022-10-24 20:37:00 +03:00
Sam Lantinga
d1dcbfe9e9
Only check to see if the ICC profile changes when the display changes or we gain focus
...
Fixes https://github.com/libsdl-org/SDL/issues/6366
(cherry-picked from commit 61b5360e17 )
2022-10-24 20:37:00 +03:00
Sam Lantinga
c0d1f73247
d3d12: actually execute the pending commands before processing resize
...
This makes sure all the resources are in the expected state
Fix the D3D12 case in https://github.com/libsdl-org/SDL/issues/6376
(cherry-picked from commit df1bd07dee )
2022-10-24 20:37:00 +03:00
Sam Lantinga
923ab93969
d3d12: fixed window resize handling
...
Fixes https://github.com/libsdl-org/SDL/issues/6355
(cherry-picked from commit f99fc3268e )
2022-10-24 20:37:00 +03:00
Sam Lantinga
1f82b4a96f
d3d12: reset the vertex buffer size when it is released
...
(cherry-picked from commit 490c20f93f )
2022-10-24 20:37:00 +03:00
Sam Lantinga
2d580f8f45
Define _USE_MATH_DEFINES for Visual Studio (thanks @pionere!)
...
Fixes https://github.com/libsdl-org/SDL/issues/3790
(cherry-picked from commit c6e8961979 )
2022-10-24 20:04:21 +03:00
Sam Lantinga
88e64108f5
Clarified that GNU sort isn't required, we just need the -V option to be supported
...
(cherry-picked from commit f687cbd4c6 )
2022-10-24 20:04:20 +03:00
Sam Lantinga
1b5bf2ac65
GNU sort isn't available on older macOS and some BSD systems
...
Don't prevent building entirely, just warn that we won't be able to find dynamic libraries in this case.
Fixes https://github.com/libsdl-org/SDL/pull/6338
(cherry-picked from commit 8c587636dc )
2022-10-24 20:04:20 +03:00
Sam Lantinga
30579c8cd7
Don't try to create a semaphore for the mutex implementation if threads are disabled
...
Fixes https://github.com/libsdl-org/SDL/issues/6344
(cherry picked from commit 17b43b0fdd )
2022-10-10 14:35:30 -07:00
Sam Lantinga
a1d1946dcb
Use DWARF 4 debug information when building using mingw
...
See this bug for more information:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101377
Fixes https://github.com/libsdl-org/SDL/issues/6139
(cherry picked from commit f18fae4c68 )
2022-10-04 16:48:08 -07:00
Sam Lantinga
36524373db
Updated version to 2.24.1 for point release
...
Also merged some updates to test-versioning.sh from main to correctly verify the version
2022-10-04 14:06:15 -07:00
Sam Lantinga
77f3a9cbe8
Only advertise the SDL_PIXELFORMAT_EXTERNAL_OES format if we can build the shader for it
...
(cherry picked from commit 5bc85d6788 )
2022-10-04 12:33:16 -07:00
Sam Lantinga
b8dacc37b5
Pretty print shaders for debugging purposes
...
(cherry picked from commit 2970710b5d )
2022-10-04 12:33:16 -07:00
Sam Lantinga
a49a25671d
Fixed OpenGL ES shader compilation on Linux
...
(cherry picked from commit bc57d3e35c )
2022-10-04 12:33:16 -07:00
Sam Lantinga
284cf11778
Fixed uninitialized variable warning
...
(cherry picked from commit 8a15a738f3 )
2022-10-04 12:33:16 -07:00
Sam Lantinga
949addc94e
Fixed OpenGLES shaders failing after renderer has been created
...
Cache all the shaders up front, so we can verify that they won't silently fail at runtime.
If compiling the fragment shaders with the precision hint fails, try again without specifying precision.
Fixes https://github.com/libsdl-org/SDL/issues/6166
Fixes https://github.com/libsdl-org/SDL/issues/6174
(cherry picked from commit b5102a551b )
2022-10-04 12:33:16 -07:00
Sam Lantinga
ce29ebc3b8
Add GLES2 shader prologue infrastructure. (by @eloj)
...
There is supposedly an OpenGL ES2 target that does not support precision specifiers. However, the existing logic to detect this is currently broken in two ways:
1) There's a typo of the `#ifdef` as `#if`.
2) Checking for `GL_FRAGMENT_PRECISION_HIGH` can not be the correct way to detect this platform. Other targets, including some desktops, will also not have this defined (for various reasons).
Because some of the shader code is missing precision specifiers, and because a default is ONLY provided if `GL_FRAGMENT_PRECISION_HIGH` is set, these other targets break.
Instead of 'hard-coding' the prologue string into shaders in the C source, use our ability to provide a list of strings to `glShaderSource` instead, leaving the determination to run-time.
This commit closes https://github.com/libsdl-org/SDL/pull/6182
(cherry picked from commit 29f4a5ba0e )
2022-10-04 12:29:27 -07:00
Sam Lantinga
ffcf32b4ff
Fixed building with libusb not dynamicaly loaded
...
(cherry-picked from commit 3f89d1704d )
(cherry-picked from commit 4ebf34857a )
(cherry-picked from commit 5767dc710e )
(cherry-picked from commit 9d77945d36 )
(cherry-picked from commit 2847696338 )
2022-09-12 23:55:56 +03:00
Sam Lantinga
531ddf5eb5
Fixed macOS framework detection in sdl2.m4
...
Fixes https://github.com/libsdl-org/SDL/issues/6141
(cherry picked from commit 3d516b841a )
2022-09-12 23:28:28 +03:00
Sam Lantinga
abac672a2d
Fixed crash if there are no devices available
...
(cherry picked from commit 679582e702 )
2022-09-12 21:33:50 +03:00
Sam Lantinga
3739dda6bd
Fixed minimized window detection when handling WM_WINDOWPOSCHANGED
...
When minimizing a window, we get this sequence of events:
WM_WINDOWPOSCHANGING
WM_GETMINMAXINFO
WM_NCCALCSIZE
WM_WINDOWPOSCHANGED - IsIconic() is true
WM_MOVE
WM_SIZE - SDL sees minimized state here
When restoring a window, we get this sequence of events:
WM_WINDOWPOSCHANGING
WM_GETMINMAXINFO
WM_NCCALCSIZE
WM_NCPAINT
WM_ERASEBKGND
WM_WINDOWPOSCHANGED - IsIconic() is false
WM_MOVE
WM_SIZE - SDL sees restored state here
On Windows 10 a minimized window has a non-empty client rect, so we were delivering a minimized size before SDL knows that the window is minimized, and then ignoring the restored size when handling the restore message.
The fix is to use IsIconic() which returns the correct window state when WM_WINDOWPOSCHANGED is actually delivered.
2022-08-19 17:40:30 -07:00
Sam Lantinga
8c9beb0c87
Updated to version Updated to version 2.24.0 for release
2022-08-19 08:44:09 -07:00
Sam Lantinga
6e007c36e7
Add null termination to Wayland_data_source_get_data() if requested
...
Fixes https://github.com/libsdl-org/SDL/issues/6083
2022-08-18 19:05:55 -07:00
Sam Lantinga
948dbe7d3f
Don't include the null terminator in Wayland clipboard text
...
Fixes https://github.com/libsdl-org/SDL/issues/6083
2022-08-18 16:24:20 -07:00
Sam Lantinga
f6b81125b3
Always define SDL_COMPILE_TIME_ASSERT as static_assert() in C++
...
Apparently some versions of gcc will define __STDC_VERSION__ even when compiling in C++ mode.
Fixes https://github.com/libsdl-org/SDL/issues/6078
2022-08-18 16:06:42 -07:00
Sam Lantinga
8acb4e45b3
Fixed interactions between mouse capture and grab on X11
...
Fixes https://github.com/libsdl-org/SDL/issues/6072
2022-08-17 14:26:34 -07:00
Sam Lantinga
9670d2bb9e
Make sure we hold the joystick lock when disconnecting a HIDAPI joystick
...
This prevents crashes when calling SDL joystick API functions from a different thread while disconnection is happening.
See https://github.com/libsdl-org/SDL/issues/6063 for a more thorough review of joystick locking.
2022-08-15 17:28:50 -07:00
Sam Lantinga
0cc8dfdb58
Added SDL_system.h for the declaration of SDL_iPhoneSetAnimationCallback() and SDL_iPhoneSetEventPump()
2022-08-15 07:44:56 -07:00
Sam Lantinga
cf134235d7
Removed line wrapping in patch notes
2022-08-13 08:23:40 -07:00
Sam Lantinga
cb46e1b3f0
Removed unused variable
2022-08-12 20:51:44 -07:00
Sam Lantinga
67cb3874ef
Fixed potential uninitialized variable usage
2022-08-12 20:51:28 -07:00
Sam Lantinga
f1416ef2ba
Updated to version 2.23.2 for release candidate
2022-08-12 20:27:22 -07:00
Sam Lantinga
08d17f47b3
Removed unused variable
2022-08-12 20:26:23 -07:00
Sam Lantinga
be0cf257fe
Only force the resize event in the DPI changed case
...
OpenGL windows don't actually get the WM_WINDOWPOSCHANGED event in the SetWindowPos() call in WIN_SetWindowFullscreen(), so setting the window size to zero never gets reset and we're stuck with a zero sized window.
Instead, just force the resize event in WM_DPICHANGED handling, where we know we need it. If we end up needing to force it in WIN_SetWindowFullscreen(), just set a flag in the window data and respond to that in WM_WINDOWPOSCHANGED, but that's a fairly risky behavior change as suddenly all applications would start getting SDL_WINDOWEVENT_SIZE_CHANGED when going fullscreen, and they may respond to that in expensive and potentially disruptive ways.
For later we'll probably create a DPI changed event and respond to that in the renderer instead of this window size changed hack.
This fixes https://github.com/libsdl-org/SDL/issues/6033 @ericwa
2022-08-12 18:21:00 -07:00
Sam Lantinga
b880709e9c
Added libusb hack for Gamesir-G3w which needs the same adjustment as the Hori controllers
2022-08-12 18:21:00 -07:00
Sam Lantinga
f42291ce68
Don't change mouse capture based on touch events
...
Fixes https://github.com/libsdl-org/SDL/issues/5652
2022-08-11 16:13:14 -07:00
Sam Lantinga
bf925b9ecd
Fixed build
2022-08-11 14:41:48 -07:00
Sam Lantinga
24f97dd700
Added an SDL error to SDL_GameControllerMapping* functions
2022-08-11 14:39:49 -07:00
Sam Lantinga
9f30d4981e
Added note about CRC algorithm compatibility
2022-08-11 14:27:08 -07:00
Sam Lantinga
3861c557da
Added the hint SDL_HINT_MOUSE_RELATIVE_WARP_MOTION
...
This hint controls whether mouse warping generates motion events in relative mode, and defaults off.
Fixes https://github.com/libsdl-org/SDL/issues/6034
Fixes https://github.com/libsdl-org/SDL/issues/5741
2022-08-11 14:02:03 -07:00
Sam Lantinga
c2db429f93
Added SDL_crc16.c to the Xcode project
2022-08-11 13:20:17 -07:00
Sam Lantinga
b4c4dd84c2
Added SDL_crc16() to be used in joystick GUIDs after 2.24.0
2022-08-11 09:53:25 -07:00
Sam Lantinga
a1e34b5e35
Don't send a resize event when the window is resized to the dock icon
...
Partially addresses https://github.com/libsdl-org/SDL/issues/6033
2022-08-11 08:55:31 -07:00
Sam Lantinga
879af7b5c8
Fixed mapping for paired Joy-Con controllers on iOS
2022-08-10 14:01:23 -07:00
Sam Lantinga
aaec244cfd
Don't run the stdio automated tests if libc isn't available
2022-08-10 09:05:55 -07:00
Sam Lantinga
e49321cec5
Fixed double-free in combined HIDAPI controller code
2022-08-10 08:21:15 -07:00
Sam Lantinga
d4192850c1
Added SDL_ResetHint() to reset a hint to the default value
...
Resolves question of how to clear an override hint raised by @pionere in https://github.com/libsdl-org/SDL/pull/5309
2022-08-10 08:01:24 -07:00
Sam Lantinga
9ff498e78e
Make HIDAPI_JoystickOpen() more robust against internal logic errors
...
Fixes https://github.com/libsdl-org/SDL/issues/6030
2022-08-10 06:00:30 -07:00
Sam Lantinga
8e782876bb
Fixed spamming the controller with reset IMU commands when they are failing
2022-08-09 21:30:11 -07:00
Sam Lantinga
eab27b9049
Make sure Switch controller initialization is synchronous and start the input timeout then
2022-08-09 17:59:44 -07:00
Sam Lantinga
1db7d33dc4
Recover from Bluetooth devices temporarily out of range
2022-08-09 17:04:26 -07:00
Sam Lantinga
6d012b2a5d
Better fix for rescanning devices after read failure
2022-08-09 16:54:11 -07:00
Sam Lantinga
483a010f0c
Fixed accidentally deadlocking the rumble thread with combined Joy-Cons
...
Also added more accurate check for sensor data. At least one axis will always have acceleration because of gravity.
2022-08-09 15:39:39 -07:00
Sam Lantinga
5d63a3d435
Re-enumerate devices if a read fails
...
This allows combined Joy-Con devices to immediately separate if one of them is disconnected
2022-08-09 14:06:49 -07:00
Sam Lantinga
da50f1bd3e
Bluetooth devices can recover from over a second of dropped reports
2022-08-09 14:05:43 -07:00
Sam Lantinga
824f2d4650
Added a second hint SDL_HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LED to control the Home button LED on Nintendo Joy-Con controllers separately from Nintendo Switch Pro controllers
2022-08-09 13:41:58 -07:00
Sam Lantinga
8aa6922fec
Fixed detecting Bluetooth disconnection on Nintendo Switch controllers
2022-08-09 13:26:10 -07:00
Sam Lantinga
201484ff6f
Don't duplicate the serial number twice if a child doesn't set one
2022-08-09 09:03:28 -07:00
Sam Lantinga
d90c0d41cc
Include the child serial numbers in the serial number for a HIDAPI combined device
2022-08-09 09:00:56 -07:00
Sam Lantinga
aad2df7f0d
Document passing -1 to clear the player index for a controller
2022-08-09 08:47:49 -07:00
Sam Lantinga
55882e43c4
Fixed invalid read when SDL_GameControllerSetPlayerIndex() is passed a negative player_index
2022-08-09 00:19:02 -07:00
Sam Lantinga
df537a7c0e
SDL_GameControllerSetPlayerIndex(gamecontroller, -1) means turn off the player LED if possible
2022-08-09 00:18:19 -07:00
Sam Lantinga
5545be8530
The player LED index wraps for PS5 controllers, like it does for other controller types
2022-08-08 23:44:50 -07:00
Sam Lantinga
593d20d9cc
Removed debug logging
2022-08-08 20:11:43 -07:00
Sam Lantinga
6204ae5002
Restart the IMU if the controller stops sending gyro/accel data
2022-08-08 20:10:12 -07:00
Sam Lantinga
d58bec72a0
Fixed Joy-Con gyro axes in mini-gamepad mode
2022-08-08 17:19:33 -07:00
Sam Lantinga
ada55c690d
Fixed Joy-Con type detection for the Nintendo Joy-Con Charging Grip
2022-08-08 15:38:19 -07:00
Sam Lantinga
a547c185ce
Fixed crash if uevent info isn't available
2022-08-08 12:21:40 -07:00
Sam Lantinga
7530bd74b3
Fix right, bottom computation in SDL_GetClosestPointOnRect which should be exclusive, not inclusive
2022-08-08 11:26:55 -07:00
Sam Lantinga
98bac00dcc
Add SDL_GetPointDisplayIndex and SDL_GetRectDisplayIndex and re-implement SDL_GetWindowDisplayIndex in terms of SDL_GetRectDisplayIndex
...
- This allows looking up the display index for an arbitrary location rather than requiring an active window to do so.
- This change also reimplements the fallback display lookup that found the display with center closest to the window's center to instead find the display rect edge
closest to the window center (this was done in the almost identical display lookup used in SDL_windowsmodes.c, which now uses `SDL_GetPointDisplayIndex`). In
practice this should almost never be hit as it requires the window's center to not be enclosed by any display rect.
2022-08-08 11:26:52 -07:00
Sam Lantinga
47ebf0087a
Fixed shadow variable warning
2022-08-08 08:36:17 -07:00
Sam Lantinga
8f05b4f833
Fixed iOS/tvOS build
2022-08-08 08:26:21 -07:00
Sam Lantinga
878259722f
Added SDL_GameControllerType enumeration for Nintendo Switch Joy-Con controllers
2022-08-08 08:22:20 -07:00
Sam Lantinga
4f19421ed8
Fixed build
2022-08-07 20:17:40 -07:00
Sam Lantinga
29265d0738
Use SDL_GetStringBoolean() to parse the hint value
2022-08-07 18:49:30 -07:00
Sam Lantinga
198d62d813
joystick: remove unused Xbox Controller Keyboard VID/PID.
...
0x045e, 0x0b02 - is actually virtual keyboard that is generated by XboxGip drivers for Xbox One Controllers.
Closes https://github.com/libsdl-org/SDL/pull/5121
2022-08-06 23:53:18 -07:00
Sam Lantinga
2909f63743
Revert "Enable bitcode by default for iOS and tvOS builds"
...
This reverts commit 59963473ef .
This fixes https://github.com/libsdl-org/SDL/issues/6015
Starting with Xcode 14, bitcode is no longer required for watchOS and tvOS applications, and the App Store no longer accepts bitcode submissions from Xcode 14.
Xcode no longer builds bitcode by default and generates a warning message if a project explicitly enables bitcode: “Building with bitcode is deprecated. Please update your project and/or target settings to disable bitcode.” The capability to build with bitcode will be removed in a future Xcode release. IPAs that contain bitcode will have the bitcode stripped before being submitted to the App Store. Debug symbols for past bitcode submissions remain available for download. (86118779)
2022-08-06 23:28:39 -07:00
Sam Lantinga
52bf5b1de9
Added the hint SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED to control whether the player LED is set on Nintendo Switch controllers
2022-08-06 10:34:19 -07:00
Sam Lantinga
f810dede16
Fixed comment so script processing works correctly
2022-08-06 09:50:13 -07:00
Sam Lantinga
5858c7dfce
Fixed OpenGL ES Shaders for systems that don't understand precision keywords
2022-08-05 16:17:10 -07:00
Sam Lantinga
d6a8b43cf7
Added support for the HORIPAD FPS for Nintendo Switch
2022-08-05 10:37:38 -07:00
Sam Lantinga
4a9ceb7be9
The HORIPAD S uses the Xbox 360 protocol on all platforms and shows up as multiple styles of controller, depending on what model you have.
2022-08-04 11:33:36 -07:00
Sam Lantinga
28c01955bc
Fixed button mapping for the HORIPAD S
...
This controller actually comes in at least two flavors: a GameCube controller and an arcade pad, neither of which should have the face buttons remapped.
2022-08-04 10:46:37 -07:00
Sam Lantinga
40b7143180
Fixed button mapping for the HORIPAD S controller
...
This controller looks like a GameCube controller, is actually a Nintendo Switch controller, and shows up as an XInput device on Windows with the buttons already in the correct location.
2022-08-04 10:26:10 -07:00
Sam Lantinga
43b90484c9
Retry a little longer when writing to the Nintendo Joy-Con Charging Grip
2022-08-04 00:40:38 -07:00
Sam Lantinga
dfd2c574d7
Removed unused variable
2022-08-03 22:27:43 -07:00
Sam Lantinga
a2b4f4406f
The Nintendo Wii Remote Pro Controller respects the SDL_GAMECONTROLLER_USE_BUTTON_LABELS hint
2022-08-03 22:27:42 -07:00
Sam Lantinga
c84dea0943
Fixed detecting the controller type of controllers over USB
2022-08-03 22:12:21 -07:00
Sam Lantinga
ba297f12cd
Use the Nintendo controller type to determine whether to always use button labels
2022-08-03 21:46:01 -07:00
Sam Lantinga
946f4777f6
Don't set Bluetooth controllers to wired power level
2022-08-03 21:33:38 -07:00
Sam Lantinga
57c3b2c950
Don't rely on the device VID/PID to get the Nintendo controller type
...
The Nintendo Online Sega Genesis controller reports the SNES VID/PID over Bluetooth. This is a more robust way of handling future controllers as well, so let's go with this instead.
Also use full reports over Bluetooth, and don't report gyro for Nintendo Online classic controllers.
2022-08-03 21:31:12 -07:00
Sam Lantinga
b6aadb16b9
Added k_eSwitchDeviceInfoControllerType_N64 to ESwitchDeviceInfoControllerType
2022-08-03 20:38:33 -07:00
Sam Lantinga
bdfb32de3c
Added some additional Nintendo controller types to ESwitchDeviceInfoControllerType
2022-08-03 20:30:58 -07:00
Sam Lantinga
ea7fbf7947
Update in-flight SDL_CONTROLLERDEVICEADDED messages when a device is removed
...
This fixes the application trying to open the wrong device index when a device is removed and another has just been added
2022-08-03 19:39:37 -07:00
Sam Lantinga
5d50fa52df
Fixed timeout opening the Nintendo Joy-Con Charging Grip
...
Sometimes opening the right Joy-Con takes a little longer for some reason
2022-08-03 19:39:36 -07:00
Sam Lantinga
29cdb2c9c9
Added support for the Nintendo Switch Joy-Con Charging Grip
2022-08-03 18:01:10 -07:00
Sam Lantinga
a8120104ad
The Nintendo Online classic controllers and Joy-Cons shouldn't show up as Switch Pro controllers
2022-08-03 13:53:49 -07:00
Sam Lantinga
6e1ee1d4a5
sort the controller names
2022-08-03 13:51:25 -07:00
Sam Lantinga
8ab9dc8b2b
Fixed crash if Joy-Cons are disabled while a combined Joy-Cons controller is open
2022-08-03 13:18:00 -07:00