Commit Graph

16082 Commits

Author SHA1 Message Date
Sam Lantinga 2d05dcc1f7 The same VID/PID is used for the FlyDigi Apex 4 2024-07-05 10:04:59 -07:00
Sam Lantinga 4f71218e17 Allow for floating point error in matching framerates
Fixes https://github.com/libsdl-org/SDL/issues/10053
2024-07-05 09:23:41 -07:00
SDL Wiki Bot d5a0f60963 Sync SDL3 wiki -> header 2024-07-05 15:59:26 +00:00
Sam Lantinga 8412f52853 Clarified that the renderer should be destroyed before the window
I didn't add a note to SDL_DestroyWindow() because we actually protect against this case now, but it's useful information to know conceptually when working with the renderer.
2024-07-05 08:57:30 -07:00
Ryan C. Gordon 4b5309cd98 main: Move SDL_RunApp bits from src/core to src/main.
Fixes #10170.
2024-07-05 08:52:25 -07:00
Max Maisel 607b1f225c Drain HIDAPI buffer in SDL_hidapi_steamdeck.c.
Add a loop around SDL_hid_read() in the Steam Deck HIDAPI driver as it
is done in other HIDAPI drivers. This loop reads data from the device and
processes it until the input buffer is empty which ensures that clients
always get the latest data.

This fixes an input latency issue if the application polls the events
slower than the hardware generates them.
2024-07-05 08:25:52 -07:00
Sam Lantinga c7ed78a9ef Try to create an accelerated renderer for the window surface even if SDL_HINT_RENDER_DRIVER is "software"
This case is properly handled inside SDL_CreateWindowTexture()

Fixes https://github.com/libsdl-org/SDL/issues/10155
2024-07-05 08:18:45 -07:00
Sam Lantinga 065ec2d518 Actually return an error when the surface is invalid 2024-07-05 08:12:05 -07:00
Sam Lantinga c057849035 Return the correct error from SDL_CreateSoftwareRenderer() when the surface is NULL 2024-07-05 08:05:40 -07:00
Ryan C. Gordon f9a06c20ed
Revert "render: Set renderer->window to NULL in SDL_DestroyRendererWithoutFreeing."
This reverts commit 9f8dffbd2d.

This causes some tests to fail, and wasn't otherwise a necessary change, so
I'm backing it out.

(Looks like some sort of interaction with software renderers and their
surfaces not getting destroyed...?)
2024-07-04 19:45:37 -04:00
Ryan C. Gordon 9f8dffbd2d
render: Set renderer->window to NULL in SDL_DestroyRendererWithoutFreeing.
This wasn't triggering a bug afaik, but obviously the more correct thing to do.

Reference Issue #10174.
2024-07-04 14:47:46 -04:00
Sam Lantinga d13fc3c3a7 Fixed building without X11 support 2024-07-04 11:32:50 -07:00
SDL Wiki Bot b43f1688d9 Sync SDL3 wiki -> header 2024-07-04 15:12:07 +00:00
Ryan C. Gordon c3bf874abf stdlib: Clean up and export SDL_UCS4ToUTF8().
Also fix internal usage of the function.

Fixes #10157.
2024-07-04 11:10:50 -04:00
Ryan C. Gordon f338fa20dd emscripten: Let SDL hints be set by URL parameters.
Any parameters (key/value pairs after the '?' in a URL) that have a keyname
that starts with `SDL_` will be put into Emscripten's environment variable
emulation table at startup, before SDL_main runs.

This lets users set hints the same way they might set them from a shell's
command line on a desktop platform:

For example:

`https://example.com/my_sdl3_application.html?SDL_RENDER_DRIVER=software`

Fixes #10154.
2024-07-04 11:09:42 -04:00
Sam Lantinga 9d47daef0a Do a final pass freeing temporary memory when we quit.
Fixes https://github.com/libsdl-org/SDL/issues/10169
2024-07-03 18:47:15 -07:00
Sam Lantinga a04596c9a7 Added support for the ROG RAIKIRI 2024-07-03 13:54:00 -07:00
SDL Wiki Bot d7a875432b Sync SDL3 wiki -> header 2024-07-03 20:07:11 +00:00
Ryan C. Gordon 2a8f1e11ca audio: Add gain support to audio streams and logical audio devices.
Fixes #10028.
2024-07-03 16:05:55 -04:00
Frank Praznik 74cc06db1b Remove the SDL_EVENT_WINDOW_TAKE_FOCUS event
This was added by the Unreal Engine to handle the input focus for popups and dialogs, window types for which SDL3 has built-in, cross-platform support.

This was only ever implemented in X11, and the only purpose was to hint that a client application may want to call the SDL_SetWindowInputFocus() function, which has since been removed, rendering it pointless now.
2024-07-03 15:08:21 -04:00
Frank Praznik be13328cb1 Remove SDL_SetWindowInputFocus
This was added to SDL2 for the Unreal Engine's implementation of menus and dialogs on X11, window types for which SDL3 has added built-in, cross-platform support.

Remove this function, as it was only ever implemented for X11 and is now basically useless aside from allowing annoying or malicious client apps to discretely steal focus. As the documentation states: "You almost certainly want SDL_RaiseWindow() instead of this function."
2024-07-03 15:08:21 -04:00
Sam Lantinga 0f8054cf87 Only use the default gamepad mapping if an automatic mapping isn't available
Fixes https://github.com/libsdl-org/SDL/issues/10162
2024-07-03 11:44:20 -07:00
SDL Wiki Bot 98f27b8f2e Sync SDL3 wiki -> header 2024-07-03 18:39:46 +00:00
Ryan C. Gordon ece76ec90d audio: Attempt to placate NetBSD 9.3's incorrect compiler warning. 2024-07-03 14:38:33 -04:00
Ryan C. Gordon 16e7fdc4f2 audio: Add channel remapping to SDL_AudioSpec and SDL_AudioStream.
Fixes #8367.
2024-07-03 14:38:33 -04:00
Ryan C. Gordon 0367f1af19 loopwave: Use SDL_ResumeAudioStreamDevice.
...instead of the more-wordy:

`SDL_ResumeAudioDevice(SDL_GetAudioStreamDevice(stream));`
2024-07-03 14:38:33 -04:00
Sam Lantinga 61441c2be9 Fixed the French numeric keycode from varying based on shift state 2024-07-03 10:33:08 -07:00
SDL Wiki Bot b948d1446a Sync SDL3 wiki -> header 2024-07-03 01:35:19 +00:00
Sam Lantinga ed9bbb2dca Restore default behavior for keypad keycodes
Added a hint to translate numpad keycodes into their non-numpad versions based on the NumLock state
2024-07-02 18:34:35 -07:00
Ryan C. Gordon bafd04ecdb
camera: small Media Foundation backend init tweak. 2024-07-02 15:16:10 -04:00
Ryan C. Gordon e290d16c47
include: Clean up SDL_GetKeyName documentation. 2024-07-02 12:29:33 -04:00
SDL Wiki Bot f787790243 Sync SDL3 wiki -> header 2024-07-01 20:57:56 +00:00
Sam Lantinga 109f268972 Added support for non-US keyboard layouts in Emscripten 2024-07-01 13:56:49 -07:00
Sam Lantinga 2c333c7355 The mode modifier only affects character keys 2024-07-01 13:56:49 -07:00
Sam Lantinga d4497ecdbd Numpad scancodes have non-numpad keycodes
This allows the numpad to work as the user expects based on the numlock state. If the application needs to distinguish the keys, it can check to see whether the scancode is a numpad key or not.
2024-07-01 13:56:49 -07:00
Sam Lantinga 78dbf9be50 Document that SDL_GetKeyName() always returns uppercase names for alphabetic keycodes 2024-07-01 13:56:49 -07:00
Sam Lantinga e8dbbf8380 Renamed SDLK_a-z to SDLK_A-Z
Made the symbols uppercase for consistency with the other SDLK_* constants, but the values are still lowercase.
2024-07-01 13:56:49 -07:00
Sam Lantinga d9dc4b320a The keycode in key events is the base, unmodified, keycode for the current keyboard layout 2024-07-01 13:56:49 -07:00
SDL Wiki Bot 5755bde3b8 Sync SDL3 wiki -> header 2024-07-01 20:36:18 +00:00
Anonymous Maarten 8290c4e82e sdlprocdump: also print a stacktrace on a fatal exception 2024-07-01 20:49:52 +02:00
Anonymous Maarten 9601d98e7f SDL_test: always use symbols with 64-suffix from DbgHelp 2024-07-01 20:49:40 +02:00
Frank Praznik 1f0bc4b808
x11: Check for button presses before clearing an XInput2 pointer grab
XInput2 will grab the pointer on button presses, which causes the grab attempt to fail and ultimately timeout since the pointer is already grabbed, however, ungrabbing the pointer when no buttons are pressed and the pointer is outside the window can generate enter/leave notify events, which result in further calls of the grab function. The end result is an infinite loop of grab/ungrab attempts generating enter/leave events. This causes a hang in testautomation when creating a window with the grabbed flag if the pointer is not positioned within window bounds.

Check the button state and only ungrab if a mouse button is in the pressed state.
2024-06-30 12:16:50 -04:00
SDL Wiki Bot ede4483420 Sync SDL3 wiki -> header 2024-06-29 21:26:31 +00:00
Sam Lantinga 473257cce6 Added SDL_GetRenderLogicalPresentationRect()
Fixes https://github.com/libsdl-org/SDL/issues/8815
2024-06-29 14:25:59 -07:00
Sam Lantinga b72c22340e We don't need to pull scancode state to see if ALT is held down 2024-06-29 13:05:07 -07:00
Sam Lantinga 017a1039e2 Removed unnecessary cast 2024-06-29 13:05:07 -07:00
Sam Lantinga 7258b36e30 Make it easier to turn on Windows message logging 2024-06-29 13:05:07 -07:00
Sam Lantinga 5322b3528a Losing keyboard focus doesn't automatically mean you lose mouse capture
Fixes https://github.com/libsdl-org/SDL/issues/5616
2024-06-29 11:15:21 -07:00
Sam Lantinga 2a58e7b11c Respect SDL_HINT_RENDER_DRIVER when creating an accelerated window surface
Fixes https://github.com/libsdl-org/SDL/issues/10061
2024-06-29 10:47:28 -07:00
Sam Lantinga a522bfe3f1 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
2024-06-29 10:47:28 -07:00