|
8e3ec34d
|
2021-04-20T12:40:40
|
|
wayland: Refactor toplevel mapping, implement HideWindow
|
|
0838f53d
|
2021-04-21T11:41:08
|
|
Implement SDL_SetWindowAlwaysOnTop for X11
|
|
12dd412b
|
2021-04-21T13:31:15
|
|
Fix icon of wayland message box
Also add some comments and silence a warning.
Co-authored-by: Ethan Lee <flibitijibibo@gmail.com>
|
|
d0cf3b75
|
2021-04-20T18:26:02
|
|
Return correct button id
|
|
a5825576
|
2021-04-21T13:39:31
|
|
Fix error handling of wayland message box
Zenity return a small integer on success which may be the same as EXIT_FAILURE. Use a bigger integer for error reporting from child process.
|
|
1fd95c53
|
2021-04-20T18:15:09
|
|
Disable pango markup in wayland massage box
Zenity support pango markup, add --no-markup to disable it.
|
|
0cd0e9ba
|
2021-04-20T17:49:21
|
|
Reimplement wayland message box function with execvp.
Previous version used 'popen' which required to sanitize user provided text. Not
sanitizing text could cause failure if user provided text included a " or command
injection with `cmd`.
|
|
99ef03b9
|
2021-04-21T01:22:22
|
|
KMSDRM: Only use OpenBSD-specific defines on pre-6.9 releases
|
|
a0a5da5d
|
2021-04-19T07:13:38
|
|
Add SDL_SetWindowAlwaysOnTop()
|
|
6be9c009
|
2021-04-20T13:46:25
|
|
Android: prevent error EGL_BAD_DISPLAY while getting egl version without display
There is an error "E libEGL : validate_display:91 error 3008 (EGL_BAD_DISPLAY)"
that occurs when calling "eglQueryString(display, EGL_VERSION)", with EGL_NO_DISPLAY.
Khronos says "EGL_BAD_DISPLAY is generated if display is not an EGL display connection, unless display is EGL_NO_DISPLAY and name is EGL_EXTENSIONS."
but this was added in SDL with "EGL 1.5 allows querying for client version"
( https://github.com/libsdl-org/SDL/commit/56363ebf6124b345e1cfbd14fb6c0e654837910c )
In fact:
- it actually doesn't work on Android that has 1.5 egl client
- it works on desktop X11 (using SDL_VIDEO_X11_FORCE_EGL=1)
The commit moves the version call where it's used, eg inside the "if (platform) {"
and checks that "eglGetPlatformDisplay" has been correctly loaded.
|
|
03503423
|
2021-04-19T23:31:23
|
|
filesystem: Better OpenBSD support for SDL_GetBasePath().
Fixes #3752.
|
|
de6d2902
|
2021-04-19T21:48:11
|
|
Fix keymap updating for X11 backend
|
|
0f518002
|
2021-04-18T09:33:57
|
|
wayland: Removed unused GetDisplayModes/SetDisplayMode functions
|
|
46df195b
|
2021-04-18T09:33:06
|
|
wayland: Implement GetDisplayBounds
|
|
509228c4
|
2021-04-18T22:26:27
|
|
wayland: Implement GetDisplayDPI
|
|
fcbfe33c
|
2021-04-18T09:45:22
|
|
wayland: Implement SetWindowModalFor
|
|
213bfc19
|
2021-04-18T09:36:54
|
|
wayland: Implement RestoreWindow for xdg/zxdg
|
|
ed24c345
|
2021-04-16T21:35:50
|
|
wayland: Implement basic window move events via wl_surface_listener.
This unearthed an unspeakably large amount of bugs in the wl_output enumerator,
notably the fact that the wl_output user pointer was to temporary memory!
This was "fixed" in e862856, and was then pointed out as a leak in 4183211,
which was undone in d9ba204. The busted fix was correct that the malloc was an
issue, but wrong about _why_; SDL_AddVideoDisplay copies by value and does not
reuse the pointer, so generally you want your VideoDisplay to be on the stack,
but of course the callbacks don't allow that, so a malloc was a workaround. But
we can do better and just host our temporary display inside WaylandOutputData
because that will be persistent while also not leaking.
Wait, wasn't I talking about move events? Right, that: wl_surface_listener does
at least give us the ability to know what monitor we're on, even though we have
no idea where we are on the monitor. All we need to do is check the wl_output
against the display list and then push a move event that both indicates the
correct display while also not being _too_ much of a lie (but enough of a lie
to where our event doesn't get discarded as "undefined" or whatever). The index
check for the video display is what spawned the great nightmare you see before
you; aside from the bugfix this is actually a really basic patch.
|
|
b4f89c56
|
2021-04-15T21:16:10
|
|
AAudio: add aaudio pause/resume function to android events loop
|
|
f1fab24e
|
2021-04-15T21:00:00
|
|
AAudio: add bootstrap in SDL_audio.c
|
|
04b2f5f6
|
2021-04-15T20:54:58
|
|
Android: add AAudio back-end, with playback and capture (see #3710)
https://developer.android.com/ndk/guides/audio/aaudio/aaudio
|
|
4118fe62
|
2021-04-15T20:52:43
|
|
Android: OpenSLES, explicitly initialise the global variable 'bqPlayerPlay',
it may be read even if OpenSLES back-end hasn't been intialized
|
|
499d31e9
|
2021-04-13T17:00:24
|
|
Cleanup Linux joystick code
|
|
5c78df9c
|
2021-04-14T00:56:50
|
|
Support key composing (i.e. dead keys) in Wayland driver (#4296)
Based on an old patch by chw from the old Bugzilla issue tracker.
Authored-by: chw
Co-authored-by: Sam Lantinga <slouken@libsdl.org>
|
|
b04136e7
|
2021-04-13T16:29:48
|
|
Fixed Xbox controller when using the default Linux gamepad mapping
Tested with the Xbox Series X controller and the xow driver
|
|
1aaafc2b
|
2021-04-13T16:29:46
|
|
Show the real name of the Xbox controller when using the generic mapping on Linux
|
|
1542300a
|
2021-03-24T22:37:08
|
|
joystick: linux: Avoid checking for gamepad mapping each frame
The information whether a specific joystick can be used as a gamepad is
not going to change every frame, so we can cache the result into a
variable.
This dramatically reduces the performance impact of SDL2 on small
embedded devices, since the code path that is now avoided was quite
heavy.
Fixes #4229.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
|
|
f88d91d5
|
2021-04-12T23:47:23
|
|
wayland: Minor whitespace fix
|
|
d785dab5
|
2021-04-12T23:37:53
|
|
wayland: Add unscaled resolutions to the display mode list
|
|
b0178fe5
|
2021-04-14T00:52:53
|
|
KMSDRM: Report correct window position to the application
|
|
dfcd5fbc
|
2021-04-08T21:57:58
|
|
wayland: Set the keymap in keyboard_handle_modifiers
|
|
e87c7940
|
2021-04-13T14:42:38
|
|
Fixed bug 3829 - Don't FOURCC format for target textures
FOURCC isn't supported by renderer back-ends for target access
So use a correct format and fallback to with native/yuv path
|
|
9ef0b97c
|
2021-04-12T11:25:44
|
|
Changes to macOS event handler to better interact with the running app
- Only focus a new window when one closes if the window that was closed was an SDL window
- If the application already has a key window set that is not an SDL window, don't replace it when the application is activated
- Only register the URL event handler when SDLAppDelegate is going to be set as the applications app delegate. This is to
be consistent with previous behavior that would only register the handler in -[SDLAppDelegate applicationDidFinishLaunching:]
and allows the running app to opt out of the behavior by setting its own app delegate.
- The URL event handler is now removed if it was set on SDLAppDelegate dealloc
|
|
2a20cc0f
|
2021-04-12T11:25:42
|
|
SDL: let through a SetLED command every 5sec to deall with situations where the controller loses power when a computer is suspended
CR: SamL
|
|
c59d4dcd
|
2021-04-08T15:32:33
|
|
wayland: Dramatically lower the timeout when reading/writing pipes
|
|
cf124963
|
2021-04-08T15:29:54
|
|
wayland: Fall back to clipboard source data if offer came up empty
|
|
282c0524
|
2021-04-08T14:59:04
|
|
wayland: Another strlen->SDL_strlen
|
|
bec133d7
|
2021-04-08T14:16:32
|
|
wayland: Use SDL_strlen instead of strlen
|
|
e28d9785
|
2021-04-08T14:16:21
|
|
wayland: Minor whitespace cleanup in clipboard.c
|
|
875f839d
|
2021-04-08T14:14:46
|
|
wayland: A bunch of clipboard safety fixes.
Also removed Wayland_get_data_device because it was a pointless getter function.
|
|
7510245a
|
2021-04-08T14:08:35
|
|
wayland: Create the data_device only after both device_manager and input exist.
There is no guarantee on what order the Wayland interfaces will come in, but the
callbacks were assuming that wl_data_device_manager would could before wl_seat.
This would cause certain desktops to not have any data_device to work with,
meaning certain features like the clipboard would silently no-op.
|
|
89b62093
|
2021-04-01T14:17:53
|
|
Fix race condition that can lead to ENTER/LEAVE window events never firing
On windows, when toggling the state of RelativeMode rapidly, there is a
high chance that SDL_WINDOWEVENT_ENTER / SDL_WINDOWEVENT_LEAVE events
will stop firing indefinitely.
This aims to resolve that shortcoming by ensuring mouse focus state is
correctly updated via WM_MOUSELEAVE events arriving via the windows
event hook.
|
|
6fd37194
|
2021-04-07T16:03:41
|
|
wayland: Fix leaked zxdg_decoration_manager
|
|
f6a09ef1
|
2021-04-07T16:16:23
|
|
wayland: Drop support for kwin specific decoration management
KWin has supported the shared and formalised zxdg_decoration since
Plasma 5.16 which came out mid 2019.
Whilst it made sense to support them both for a while, it should not be
needed for future SDL releases.
|
|
a92cca1a
|
2021-04-07T16:44:10
|
|
wayland: Use the window's display to get wl_output rather than fullscreen_mode.
Because Wayland only supports FULLSCREEN_DESKTOP, fullscreen_mode never gets
assigned at all, meaning driverdata is always NULL! Depending on what the
compositor does this can lead to dramatically different results. GNOME was fine
without this, but Plasma would trip an event that unintentionally unset the
fullscreen mode and caused the game to fire a configure event _every frame_,
and of course the configure would send the fullscreen_mode output which was
still empty. The fix is to just use the SDL_VideoDisplay directly, which will
always have a valid wl_output.
|
|
c7e29a9e
|
2021-04-06T18:10:40
|
|
wayland: Fix toggling fullscreen with fixed-size windows
|
|
0f4aba7b
|
2021-04-06T18:34:53
|
|
audio: Fixed assertion failure if trying to use dummy backend.
|
|
64853b73
|
2021-04-06T18:34:17
|
|
audio: Changed a disk and dummy backends to use _this instead of this.
|
|
e97cfe4a
|
2021-04-06T23:56:10
|
|
KMSDRM_Vulkan_CreateSurface(): fixed pointer-cast warning on 32 bit
Closes: https://github.com/libsdl-org/SDL/issues/4284
|
|
8fa2ce56
|
2021-04-03T22:47:47
|
|
WinRT: Rename Interface ID symbols
Rename locally-defined Interface ID symbols to avoid conflict with
locally linked dxgi library. Prefixed with `SDL_` to match with
other references in render_d3d11 or wasapi.
|
|
3dbc4cf2
|
2021-03-30T17:49:51
|
|
Fix compilation error for Windows SDK 8.1+
https://docs.microsoft.com/en-us/windows/win32/api/shellscalingapi/ne-shellscalingapi-monitor_dpi_type
|
|
413a2306
|
2021-04-04T10:47:06
|
|
NULL passed to strcmp in Wayland_ShowMessageBox
|
|
49141996
|
2021-04-04T00:29:26
|
|
ibus: make sure we don't pass a NULL path string over D-Bus.
Fixes #2941.
|
|
354cabd4
|
2021-04-03T18:15:50
|
|
egl: favor truecolor configurations.
If app requested <= 16 color depth and there is a 24-bit config available,
favor that. This fixes things that quietly expect to get truecolor output
but don't request it (...like SDL's render api...) and things that are
probably requesting 16-bit color as a fallback but expecting reasonable
systems to give them full depth.
Specifically, this fixes Life is Strange on Wayland, which uses the latter
approach, and anything using SDL_Render on Wayland, which uses the former.
Fixes #4056.
Fixes #4132.
|
|
4abe3446
|
2021-04-03T10:10:58
|
|
SDL_EGL_ChooseConfig: cleanups and minor optimizations.
- Move an immutable condition out of a for loop.
- Add a break statement to that loop when we find what we're looking for.
- Add an assert to make sure we don't overflow a buffer.
- Wrap a single-statement if block in braces.
- Adjust some whitespace.
|
|
7d02248c
|
2021-04-02T14:36:53
|
|
tls: wrap reference to a mutex into an #if !SDL_THREADS_DISABLED test.
|
|
dbdbae44
|
2021-04-02T14:35:11
|
|
linux: (de)initialize d-bus at init and quit.
Previously we had different subsystems quitting it, in conflict, and risked
multiple threads racing to init it at the same time.
Fixes #3643.
|
|
57c2a456
|
2021-04-02T14:01:41
|
|
render: draw when hidden, except on iOS and Android.
Fixes #2979.
|
|
fa818834
|
2021-03-30T13:25:09
|
|
[KMSDRM] Fake refresh rate precision on Vulkan display mode creation.
|
|
942aa7bd
|
2021-03-30T11:41:26
|
|
[KMSDRM] No need to use an SDL_VideoDisplay pointer to access display index.
|
|
033c0abb
|
2021-03-27T14:04:00
|
|
Use dispatch_async for -[NSOpenGLContext update]. Fixes #3680
|
|
eeee7308
|
2021-03-29T16:57:03
|
|
wayland: Implement IME support.
Note that this is purely to make it possible to enter text that requires
composition - for example, before this commit Kanji input didn't work at all.
The big problem this still has is that we need the window position, and this is
still not implemented. Once we have this information we can do the equivalent
of XTranslateCoordinates to put the rectangle where we want it.
|
|
733b3278
|
2021-03-29T19:22:26
|
|
[KMSDRM] Minor Vulkan code adjustments regarding pointers and display index.
|
|
9d294f1f
|
2021-03-27T00:53:10
|
|
audio: Allow AudioStreamGet to return 0 in RunAudio.
While we should normally expect _something_ from the stream based on the
AudioStreamAvailable check, it's possible for a device change to flush the
stream at an inconvenient time, causing this function to return 0.
Thing is, this is harmless. Either data will be NULL and the result won't matter
anyway, or the data buffer will be zeroed out and the output will just be
silence for the brief moment that the device change is occurring. Both scenarios
work themselves out, and testing on Windows shows that this behavior is safe.
|
|
9b7babf9
|
2021-03-27T00:47:54
|
|
wasapi: Remove assert added by 67e8522d
|
|
fb283a73
|
2021-03-24T22:42:47
|
|
Squashed commit of the following:
commit 6b8f933589aa3925978a23e77a305a7e89c6ae4a
Author: Xing Ji <jixingcn@gmail.com>
Date: Wed Mar 24 22:31:29 2021 +0800
update the dynapi by `gendynapi.pl`
commit ebd1790c19983b652713f40ab1e139e485e1a2b7
Author: Xing Ji <jixingcn@gmail.com>
Date: Wed Mar 24 22:17:48 2021 +0800
revert the change in src/dynapi
commit 734b5f85c1613070081e39238e84198128971b53
Merge: 5a56e5a8 5ac6bd54
Author: Xing Ji <jixingcn@gmail.com>
Date: Wed Mar 24 22:14:40 2021 +0800
Merge remote-tracking branch 'libsdl/main' into jixingcn
commit 5a56e5a8227d9cff6b497b681c618a76bec1cae1
Author: Xing Ji <jixingcn@gmail.com>
Date: Mon Mar 22 23:55:10 2021 +0800
Fix #3596, can call the `SDL_TLSCleanup` to cleanup the TLS data when closing the application
|
|
5ceb6744
|
2021-03-28T14:58:41
|
|
linux: Fix ibus support on Wayland/XWayland
|
|
5f9effaa
|
2021-03-28T17:45:41
|
|
audio: pipewire: Block while waiting on stream state info
Initializing streams, particularly capture streams, can take many milliseconds, which is a bit much for a busy wait. Use a blocking wait instead.
|
|
8deb4063
|
2021-03-28T17:22:59
|
|
audio: pipewire: Avoid redundant locking
The pw_thread_loop already locks and unlocks the thread mutex at the start and end of each loop iteration, so these locks are unnecessary.
|
|
5bb2bbd4
|
2021-03-28T17:17:00
|
|
audio: pipewire: Don't use uninitialized variables in callbacks
Some of the SDL_AudioDevice struct members aren't initialized until after returning from the OpenDevice function. Since Pipewire uses it's own processing threads, the callbacks can be entered before all members of SDL_AudioDevice are initialized, such as work_buffer, callbackspec and the processing stream, which creates a race condition. Don't use these members when in the paused state to avoid potentially using uninitialized values and memory.
|
|
9de7eaf9
|
2021-03-28T01:30:26
|
|
[KMSDRM] Change error message.
|
|
1ec60a38
|
2021-03-27T23:52:51
|
|
[KMSDRM] Remove unnecessary space.
|
|
c13c3c37
|
2021-03-27T22:50:18
|
|
[KMSDRM] For Vulkan, use a mode with the same exact size as the window, if possible, or create a new one.
|
|
07ba13b7
|
2021-03-26T00:40:05
|
|
wayland: Pass --no-wrap to Zenity.
There seems to be a bug where it can wrap the text based on the minimum possible
window size, which can be worked around with --no-wrap. This technically uncaps
the width entirely, but this isn't wildly different from what other backends do.
|
|
54719a9d
|
2021-03-25T23:58:12
|
|
wayland: Assign output_len in ShowMessageBox
|
|
4a07c73b
|
2021-03-26T13:53:58
|
|
Added mapping for the Amazon Luna controller on Linux
|
|
07af9baa
|
2021-03-26T13:05:38
|
|
Use the correct name for the Amazon Luna Gamepad
|
|
ef363555
|
2021-03-26T13:03:29
|
|
Added mapping for the Amazon Luna controller on macOS
|
|
3377861a
|
2021-03-26T11:57:19
|
|
Added support for the Amazon Game Controller to the HIDAPI driver
|
|
27b74d33
|
2021-03-25T23:25:34
|
|
Implement Wayland_ShowMessageBox using Zenity
|
|
5262b52d
|
2021-03-25T23:56:56
|
|
SDL_kmsdrmvideo.c: define EGL_PLATFORM_GBM_MESA if it's missing.
Fixes: https://github.com/libsdl-org/SDL/issues/4232
|
|
5ac6bd54
|
2021-03-24T02:54:36
|
|
[KMSDRM] Ask for videomode on the correct display when creating a window.
|
|
b55b11af
|
2021-03-23T08:07:56
|
|
src/thread/pthread/SDL_systhread.c: drop include of SDL_platform.h
Drop include of SDL_platform.h as SDL_plaform.h is already included by
SDL_internal.h -> SDL_config.h -> SDL_platform.h
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
0bdf4f95
|
2021-03-22T19:19:01
|
|
Disable system gestures on MFi controllers while they're open, so we get access to the back button, etc.
|
|
1133ea03
|
2021-03-22T19:18:57
|
|
Fixed crash on macOS when AirPods are connected
|
|
c12f46b1
|
2021-03-22T19:03:25
|
|
[KMSDRM] Fix segmentation fault
Deference the windata pointer *after* checking that it's non-NULL.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
|
|
100166d7
|
2021-03-22T18:00:41
|
|
[KMSDRM] Improve cursor management.
|
|
cf7eef37
|
2021-03-19T04:25:40
|
|
[KMSDRM] Better error handling: no more segfaults on window creation failure.
|
|
4acd1dca
|
2021-03-18T14:04:38
|
|
[KMSDRM] Improve the way to test if last window is being destroyed.
|
|
8638674a
|
2021-03-18T13:55:58
|
|
[KMSDRM] Correct comment typo.
|
|
82ff6045
|
2021-03-18T12:02:54
|
|
[KMSDRM] Unload GL/EGL libs and destroy GBM only when we are destroying the last window.
|
|
c35e7189
|
2021-03-18T11:47:23
|
|
[KMSDRM] All non-vulkan windows have to be marked as OPENGL, not only the first created one.
|
|
281a7bdb
|
2021-03-18T11:20:18
|
|
[KMSDRM] Make the gbm_init flag a viddata member to avoid GBM re-init when several displays are connected.
|
|
7d1b9c9f
|
2021-03-17T14:40:41
|
|
[KMSDRM] Remove unneeded function calls and improve comments for future reference.
|
|
e7e519a4
|
2021-03-17T13:04:05
|
|
dsp: Refuse to initialize if there aren't any Open Sound System devices.
This prevents the dsp target from stealing the audio subsystem but not
being able to produce sound, so other audio targets further down the list
can make an attempt instead.
Thanks to Frank Praznik who did a lot of the research on this problem!
|
|
559be8aa
|
2021-03-15T15:18:10
|
|
fix invalid out of bounds UTF8 handling
|
|
07fc1bb8
|
2021-03-15T15:10:49
|
|
Fix invalid UTF-8 handling of extra bytes
|
|
e14fb54e
|
2021-03-16T10:47:57
|
|
[KMSDRM] Undo SDL_CreateRenderer() modifications aimed at create opengles2 when KMSDRM is in use because it's a harmful solution.
|
|
108bb5aa
|
2021-03-16T00:51:17
|
|
[KMSDRM] Modify SDL_CreateRenderer() to create an opengles2 renderer when the KMSDRM backend is being used and no renderer name has been specified.
|
|
d84df04f
|
2021-03-15T09:00:15
|
|
Merge commit '51345623e888d7bc4131cd8f015c339f757ea68a' into main
|