|
402b86f2
|
2021-08-15T14:41:56
|
|
waylandevents: prevent segfault if xkb compose table is not found
this can happen e.g. on pure wayland system where there is no X11
locales for xkbcommon to find.
|
|
454943cf
|
2021-04-11T16:44:48
|
|
emscripten: Don't flag window fullscreen on external requests
Also, the condition was always true.
|
|
b4f11a36
|
2020-04-15T14:48:52
|
|
emscripten: Drop commented out code from the dummy driver
|
|
55af8dca
|
2019-02-27T14:16:37
|
|
emscripten: use emscripten_set_window_title api
|
|
d8baad7e
|
2019-02-27T14:15:40
|
|
emscripten: use emscripten_get_screen_size api
|
|
abc04270
|
2020-04-15T15:22:39
|
|
emscripten: Fix framebuffer array creation optimisation
|
|
fbc36490
|
2021-08-14T22:29:05
|
|
Use the new SDL_clamp() macro where sensible
There were a few places throughout the SDL code where values were
clamped using SDL_min() and SDL_max(). Now that we have an SDL_clamp()
macro, use this instead.
|
|
07a2d71e
|
2021-03-30T11:56:38
|
|
emscripten: Feed silence to device when paused
|
|
dcc5eef0
|
2021-08-14T00:31:46
|
|
Clarify that one of the PIDs of the Xbox Elite Series 2 controller is used in Bluetooth mode
|
|
69477151
|
2021-08-13T23:45:01
|
|
Get the window size for the window receiving the mouse motion
This is the mouse focus except in the case where relative motion is enabled and the mouse is over a window floating on top of the application window (e.g. the taskbar)
|
|
6a1e1ed9
|
2021-08-13T23:36:13
|
|
Relative mouse mode grab is based on the window with the input focus
This fixes restoring the cursor clip rectangle after the mouse has moved off of the window.
Also try to better synchronize cursor visibility with mouse position changes when changing relative mode. This doesn't work perfectly, but it seems to improve things on Windows.
|
|
91a55a02
|
2021-08-13T23:59:39
|
|
Relative mouse motion is delivered to the window with keyboard focus
This was the original intent (note SDL_UpdateWindowGrab() in SDL_OnWindowFocusGained() and SDL_OnWindowFocusLost()) and fixes a bug where relative motion unexpectedly stops if the task bar is covering the bottom of the game window and the mouse happens to move over it while relative mode is enabled.
Another alternative would be to confine the mouse when relative mode is enabled, but that generates mouse motion which would need to be ignored, and it's possible for the user moving the mouse to combine with the mouse moving into the confined area so you can't easily tell whether to ignore the mouse motion. See https://github.com/libsdl-org/SDL/issues/4165 for a case where this is problematic.
|
|
e42e9a12
|
2021-08-13T20:48:56
|
|
Fixed build
|
|
441fbcaa
|
2021-08-13T20:48:54
|
|
Added HIDAPI support for the Xbox Adaptive Controller
|
|
b5e5c1ef
|
2021-08-13T17:53:39
|
|
Added Ctrl-T to toggle topmost mode in test programs
|
|
4d9efcb5
|
2021-08-13T11:52:25
|
|
Fixed flag test for boolean correctness
|
|
b28ed028
|
2021-08-13T11:39:41
|
|
Don't warp the mouse for relative mode when the window doesn't have focus
|
|
629e9f82
|
2021-08-13T11:06:43
|
|
Fixed return value of SDL_GetGrabbedWindow() when we have an internal grab because of mouse relative mode
|
|
6aa1498b
|
2021-08-13T11:03:19
|
|
This assert wasn't correct, we set the internal grab for mouse relative mode as well.
|
|
907943a2
|
2021-08-12T17:51:08
|
|
Added support for the Xbox One S Controller with 5.x series firmware
|
|
1e921352
|
2021-08-13T07:58:48
|
|
Improve portability of SDL_Convert51ToStereo_AVX
Don't rely on checking __clang_major__ since it is not comparable
between different vendors. Don't use "#pragma clang attribute" since it
is only available in relatively recent versions, there's no obvious way
to check if it's supported, and just using __attribute__ directly (for
gcc as well) results in simpler code anyway.
|
|
7aec0b90
|
2021-08-13T01:56:56
|
|
SDL_hidapi_xboxone.c: fix bogus 'uninitialized' warning from clang.
The last 'size == 50' check is always true anyway.
|
|
cec5a129
|
2021-08-12T15:49:33
|
|
Fixed libudev hotplug notifications in the HIDAPI driver
|
|
6eb4ebb5
|
2021-08-12T15:49:33
|
|
Simplified the HIDAPI Xbox One controller initialization
|
|
25cd749a
|
2021-08-12T15:12:04
|
|
x11: Don't change mode if we are already in the correct mode
If we are already in the desired mode, changing it is a no-op at best,
and harmful at worst: on Xwayland, it sometimes happens that we disable
the crtc and cannot re-enable it.
Resolves: https://github.com/libsdl-org/SDL/issues/4630
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
|
584b89ab
|
2021-08-12T08:17:10
|
|
Added support for the color LED on the Xbox Elite Series 2 controller
|
|
64882b24
|
2021-08-12T08:17:08
|
|
Added support for the Xbox One Elite 2 Controller with 5.x series firmware
|
|
ed6eb07e
|
2021-08-12T01:40:50
|
|
SDL_wasapi.c: fixed build against older SDKs.
|
|
68ca35c3
|
2021-08-11T21:40:46
|
|
wayland: fix memleak in output listener
|
|
e9179314
|
2021-08-11T21:27:42
|
|
joystick/linux: fix memleaks; streamline joylist item removal
|
|
44a76710
|
2021-08-11T12:55:50
|
|
Don't disable clang avx instrinsics on win32 if __AVX__ is defined.
C.f.: https://github.com/libsdl-org/SDL/issues/4533
|
|
ae7ee2a5
|
2021-08-11T09:59:43
|
|
wayland: Ignore stateless/sizeless configs when starting in fullscreen mode
|
|
ac32c522
|
2021-08-10T18:11:09
|
|
Try using the built-in WASAPI audio rate conversion
Fixes https://github.com/libsdl-org/SDL/issues/4608
|
|
cb1e20b0
|
2021-08-10T17:50:17
|
|
Added KMOD_SCROLL to track the scroll lock state
Fixes https://github.com/libsdl-org/SDL/issues/4566
|
|
f5794f9e
|
2021-08-10T15:17:59
|
|
Added SDL_SetTextureUserData() and SDL_GetTextureUserData() to associate a user-specified pointer with an SDL texture
|
|
a0af7ce7
|
2021-08-10T15:05:49
|
|
OSS is no longer the preferred audio backend on modern UNIX systems
Fixes https://github.com/libsdl-org/SDL/issues/4207
|
|
3f6ebfff
|
2021-08-10T15:02:36
|
|
Updated to version 2.0.17 for development
|
|
016b02f2
|
2021-08-10T12:16:55
|
|
Fixed build, C89 doesn't allow non-constant static initializers
|
|
77c8d111
|
2021-08-10T20:55:50
|
|
configuration updates for dlopen:
- cmake, configure (CheckDLOPEN): --enable-sdl-dlopen is now history..
detach the dl api discovery from SDL_LOADSO_DLOPEN functionality.
define HAVE_DLOPEN. also define DYNAPI_NEEDS_DLOPEN (CheckDLOPEN is
called only for relevant platforms.)
- update SDL_config.in and SDL_config.cmake accordingly.
- SDL_dynapi.h: set SDL_DYNAMIC_API to 0 if DYNAPI_NEEDS_DLOPEN is
defined, but HAVE_DLOPEN is not.
- pthread/SDL_systhread.c: conditionalize dl api use to HAVE_DLOPEN
- SDL_x11opengl.c, SDL_DirectFB_opengl.c, SDL_naclopengles.c: rely
on HAVE_DLOPEN, not SDL_LOADSO_DLOPEN.
- SDL_config_android.h, SDL_config_iphoneos.h, SDL_config_macosx.h,
SDL_config_pandora.h, and SDL_config_wiz.h: define HAVE_DLOPEN.
Closes: https://github.com/libsdl-org/SDL/pull/4351
|
|
cb0fd05e
|
2021-08-07T22:41:54
|
|
Adding a clarifying comment in case a programmer unfamiliar with UTF-16 and UTF-32's relationship chances upon the code.
|
|
34701129
|
2021-08-07T20:51:49
|
|
Optimizing the implementation.
|
|
712e0d1f
|
2021-08-07T16:23:15
|
|
Fixing WM_CHAR event handling for Unicode characters outside the Basic Multilingual Plane.
|
|
fcfd19db
|
2021-08-10T12:02:17
|
|
Added support for SDL_RENDERER_PRESENTVSYNC to the software renderer
This fixes https://github.com/libsdl-org/SDL/issues/4612
|
|
25f9ed87
|
2021-08-10T13:10:36
|
|
audio: Fix false positives in driver name comparison
Without this change, driver names don't get matched correctly;
for example "a" can get matched with "alsa" since it only checks
whether the string matches up to the length of the requested
driver name.
|
|
b3a989d0
|
2021-08-10T13:08:27
|
|
video: Fix false positives in driver name comparison
Without this change, driver names don't get matched correctly;
for example "x" can get matched with "x11" since it only checks
whether the string matches up to the length of the requested
driver name.
|
|
de6ba40d
|
2021-08-09T11:38:22
|
|
Added support for the Flydigi Vader 2 controller in 2.4G Android mode
|
|
3f440daa
|
2021-08-09T10:40:36
|
|
Added support for the Flydigi Vader 2 controller in Bluetooth mode
|
|
6ae227d0
|
2021-08-08T23:27:08
|
|
x11/wayland: fix screensaver suspension via D-Bus
b08b1bde introduced a subtle bug. Despite not using D-Bus types directly,
the code used the SDL_USE_LIBDBUS definition set by SDL_dbus.h to conditionally
compile calls SDL_DBus_ScreensaverTickle() and SDL_DBus_ScreensaverInhibit().
As a result, it still compiled without SDL_dbus.h included, but screensaver
suspension silently failed to work.
The D-Bus stuff could probably use some tweaks to be harder to accidentally
break, but for now just restore the header includes.
|
|
2e6dac87
|
2021-08-09T01:47:42
|
|
wayland: Add a hint to allow disabling libdecor use
Useful for testing xdg-shell path with compositors like Weston.
|
|
092a20d9
|
2021-08-08T16:47:34
|
|
wayland: Avoid busy waiting for vsync
|
|
791d9d3f
|
2021-08-07T12:41:15
|
|
Fixed DInput mapping for NVIDIA Virtual Gamepad
|
|
7be970db
|
2021-08-06T19:51:27
|
|
wayland: Avoid setting floating width/height when re-entering fullscreen
|
|
bec78357
|
2021-08-06T14:20:55
|
|
Better fix for compiling using clang on Windows
This fixes https://github.com/libsdl-org/SDL/issues/4533
|
|
a91ab883
|
2021-08-06T12:28:03
|
|
Fixed building on Windows with cmake, ninja, and clang
|
|
dd683073
|
2021-08-06T15:13:14
|
|
hidapi: Patched to compile on QNX.
Fixes #4591.
|
|
cae7bd9b
|
2021-08-06T12:01:24
|
|
Don't use AVX with clang if the compiler isn't building with AVX instructions
Fixes https://github.com/libsdl-org/SDL/issues/4533
|
|
10979d37
|
2021-08-05T12:42:03
|
|
wayland: Always assume configure is wrong for non-resizable windows.
Configure events from compositors have an extremely annoying habit of giving us
completely bogus sizes, from all sorts of places. Thankfully, the protocol
gives us the ability to completely ignore the width/height and just stick with
what we know, so for all windows that are not meant to be resized, pretend we
never even got the width/height at all, the compositor is required to respect
our dimensions whether they match configure's suggestion or not.
|
|
88674b4a
|
2021-08-04T13:17:35
|
|
Fixed build
|
|
c14813a8
|
2021-08-04T13:00:14
|
|
Fixed spacing
|
|
3cad447e
|
2021-08-04T12:57:51
|
|
Only update the window size if setting the display mode succeeded
|
|
0eb6f791
|
2021-05-21T13:48:14
|
|
SDL_SetWindowDisplayMode(): If already fullscreen, adjust window size
Otherwise only the display resolution is changed, but the SDL window size
(and for example the window-surface size) aren't adjusted accordingly
and thus don't fill the whole screen.
See #3313
|
|
72d81285
|
2021-05-19T18:47:56
|
|
Improve SDL_CreateWindow() fullscreen support on Windows
.. and maybe other platforms as well (though X11 was not affected)?
The issue was that passing a higher resolution than the current desktop
resolution to SDL_CreateWindow() with SDL_WINDOW_FULLSCREEN didn't switch
to that resolution (even though it did switch to lower resolutions).
When creating a fullscreen window, window->fullscreen wasn't even set
at all (only zeroed out), setting it only happened if the user explicitly
called SDL_SetWindowDisplayMode(). So without that, SDL_CreateWindow()
-> SDL_UpdateFullscreenMode() -> SDL_GetWindowDisplayMode() used the
resolution from window->windowed.w/h which were limited to the desktop size
due to some weird combination of WIN_AdjustWindowRectWithStyle() and
WIN_WindowProc() being called after a call to SetWindowPos().
fixes #3313
|
|
9fdb0645
|
2021-08-04T11:33:28
|
|
Added support for the Joy-Con Charging Grip when SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS is enabled
|
|
d4839702
|
2021-08-04T13:30:12
|
|
dbus: Wrap init in a spinlock.
This prevents a race if two threads that need d-bus try to init it at the
same time. Note that SDL_Init will likely handle this from a single thread
at startup, but there are places outside of init where one might trigger
D-Bus init, like setting thread priority (a common first thing for a new
thread to do) resulting in SDL trying to use RTKit.
Fixes #4587.
|
|
b08b1bde
|
2021-08-03T22:50:58
|
|
linux: remove d-bus lazy init dead code
Lazy init in X11/Wayland is dead code since dbdbae4
|
|
5fc13fcb
|
2021-08-04T07:00:17
|
|
direct3d: Commit viewport state before clearing, attempt 2.
This reintroduces the fix from 0e16ee8330606603, but just marks
the viewport state as dirty after a clear that needs to expand the
viewport to fill the render target, as we'll need to also reset
the orthographic projection state elsewhere, and that won't
happen if we clear the dirty flag here.
Fixes #4210.
(again.)
(...sorry...!)
|
|
ed6ce5cc
|
2021-08-04T02:34:09
|
|
log: Fixed compiler warnings on 64-bit Visual Studio.
|
|
7e88e772
|
2021-08-04T02:30:47
|
|
winrt: Fixed incorrect code in a Windows Phone #ifdef.
|
|
32f909f7
|
2021-08-03T13:30:57
|
|
wayland: Remove redundant waylanddyn.h includes.
All files including waylanddyn.h already include waylandvideo.h first.
|
|
124405a0
|
2021-08-03T13:17:19
|
|
wayland: Fix building without Vulkan support
|
|
4077f7a2
|
2021-08-03T20:55:45
|
|
Update the Renderer dpi_scale on SIZE_CHANGED event (fix #4580)
The Renderer logical scaling code scales mouse coordinates, and needs to
take the window DPI into account on HIGHDPI windows. However, the
variable which tracks this, renderer->dpi_scale, is set once when the
renderer is created, and then not updated. In the event that the window
is moved to another screen, or the screen DPI otherwise changes, this
will be outdates, and potentially the coordinates will be all wrong.
So let's update the dpi_scale on the SIZE_CHANGED event: it's at least a
possibility that this will be issued on some OSes when DPI changes, and
it's otherwise already handled by SDL_Renderer's event filter.
|
|
9b4884d5
|
2021-08-03T09:23:54
|
|
Warn if you're building a partially functional RAWINPUT driver without device notifications
|
|
886eb02e
|
2021-08-03T03:16:35
|
|
Fixed detection of Steam Virtual Gamepad with the WGI driver
|
|
7c63e1d3
|
2021-08-03T01:52:02
|
|
Added WGI mappings for the Amazon Luna and Google Stadia controllers
|
|
99c8972b
|
2021-08-03T01:39:07
|
|
Added WGI mappings for PS4 and PS5 controllers
|
|
2dfc92ca
|
2021-08-03T01:33:35
|
|
Added default mapping for WGI game controllers
|
|
350ca0f9
|
2021-08-03T04:57:53
|
|
winrt: Don't register orientation hint callback in startup code.
SDL_AddHintCallback() uses SDL_malloc(), which means this would
run before main(), so the app wouldn't be able to supply its own
replacement SDL_malloc() implementation in time.
This code was moved to under SDL_Init. Since the hint callback
already makes efforts to not override the app manifest's
orientation settings, this is safe to move until after pre-main()
startup.
Fixes #4449.
|
|
834a84fa
|
2021-08-03T05:02:32
|
|
winrt: Don't use LoadLibraryA on WinRT.
This removes the CM_Register_Notification code on WinRT. Note
that this API _is_ available to UWP apps as of Windows 10.0.17763
(version 1809, released October 2018), according to:
https://docs.microsoft.com/en-us/uwp/win32-and-com/win32-apis#apis-from-api-ms-win-devices-config-l1-1-1dll
So it might be worth readding with some sort of preprocessor check
for minimum targeted version, or whatever is appropriate for WinRT
development.
|
|
9d64e6b4
|
2021-08-03T00:29:33
|
|
Revert "direct3d: Commit dirty viewport state before clearing."
This reverts commit 0e16ee833060660318cc324cf99c9736f4d48499.
|
|
993a5676
|
2021-08-03T00:14:15
|
|
Only use the default Xbox mapping on Linux
On Windows, this is already covered by XInput and is the wrong mapping if we try to use it with DirectInput/RAWINPUT/WGI controllers
|
|
0e16ee83
|
2021-08-03T02:07:47
|
|
direct3d: Commit dirty viewport state before clearing.
Otherwise you might have set the viewport to the full size of
the render target in SDL's API but this change hasn't been
transmitted to Direct3D yet by the time we attempt to clear.
Fixes #4210.
|
|
7edc7d53
|
2021-08-02T22:44:38
|
|
Added a mapping for the Steam Virtual Gamepad when it's detected in DirectInput mode
|
|
7082fb04
|
2021-08-02T22:42:28
|
|
wayland: Only dispatch on fullscreen set when the window is visible.
Fixes hang-on-startup described in #4572.
|
|
0f5b8a99
|
2021-08-02T19:48:31
|
|
wayland: For libdecor, dispatch immediately after setting fullscreen
Reference: #4578
|
|
02223501
|
2021-08-02T16:40:58
|
|
Fixed crash if WGI didn't give us the name for a controller
|
|
4562da62
|
2021-08-02T16:40:56
|
|
wayland: Make libdecor configure match xdg_toplevel
|
|
1fb1aa19
|
2021-08-02T12:57:28
|
|
wayland: Keep the fullscreen check for maximize/restore events
|
|
584673a5
|
2021-08-02T12:51:23
|
|
wayland: Don't ignore configs for non-fullscreen, non-resizable windows.
This was causing configure events to not inform SDL of window size
changes, even when they were based on resizes that we fully expected. The
result was fullscreen->windowed not working at all, because it would
retain the desktop resolution instead of reverting to the floating size
that it had before moving to fullscreen mode.
Fixes Super Hexagon fullscreen toggling.
|
|
25067298
|
2021-08-02T08:15:10
|
|
wayland: Flush in SetWindowFullscreen
The flush has been removed in e5f9fae034df8ca305241c5a666e7702fcf9958f.
Unfortunately, even though ideally the flush shouldn't be necessary,
our resize sequence isn't... well, perfect, and removing that flush causes
tons of troubles.
We're also still flushing in other paths where the window size can be
changed by the compositor and where we may potentially have to obey that
change, like in Wayland_MaximizeWindow.
This also removes the hack introduced in 7f261d3b7667978ced93a4fdc6aec2380df3d87f,
which introduces problems with protocol violations and seems to not be
necessary when flushing.
|
|
ea28187c
|
2021-08-02T08:07:23
|
|
wayland: Hack surface resize into compliance with set_window_geometry
We have issues with correct resize sequence and happen to commit old-sized
buffers even after configure event for the new size has been already
acknowledged. While the reason for that stays unknown, let's at least
workaround the problem by faking window geometry into expected size.
This does not fix visual glitch on e.g. fullscreen toggling, but having
a split-second glitch is still a much better outcome than being
terminated by the compositor for protocol violation.
|
|
b5210cac
|
2021-08-02T13:47:32
|
|
wayland: Initialize floating size at window creation
This allows the windowed size to be restored for windows initially
created already in non-floating state.
|
|
dab33844
|
2021-08-02T11:58:47
|
|
wayland: Fix a warning in handle_configure_xdg_toplevel
|
|
754aa2d3
|
2021-08-02T11:55:02
|
|
Mostly revert cfcdfb7be9f5c97a51ddef9ad3677a604856266b.
This was causing window changes to completely break, resulting in broken
decorations and bizarre frame timing, I don't know what exactly it's doing
but it's not good. Kept the libdecor_frame_is_floating logic, at least.
|
|
8803589f
|
2021-08-02T12:05:06
|
|
wayland: Avoid redundant SetWindowBordered for libdecor
|
|
b4c4060a
|
2021-08-02T04:52:25
|
|
wayland: Clean up Wayland_HandlePendingResize
Commit 871c11191bfc7214061a3da37c112522a102ddf5 removed delayed
resize handling, but it left the whole structure untouched that
now became unnecessary. To help with code clarity, get rid
of the structure where pending resize state used to be stored
and pass all the data directly to Wayland_HandlePendingResize
(now renamed to Wayland_HandleResize, since it's not "pending"
anymore but applied immediately)
|
|
9bb24ad0
|
2021-08-02T05:49:35
|
|
wayland: Always call Wayland_SetWindowBordered when showing the window
Otherwise our windows have no window decoration on compositors that
support xdg-decoration-unstable-v1, but default to client-side mode.
Contrary to what the comment was stating, there is nothing in the protocol
that would make redundant calls to zxdg_toplevel_decoration_v1::set_mode
problematic.
|
|
cfcdfb7b
|
2021-08-01T18:14:53
|
|
libdecor: use same fullscreen/maximised restore logic as for xdg-toplevel
|
|
42452f8c
|
2021-08-01T13:51:30
|
|
wayland: store and restore floating states
Some Wayland compositors send (0,0) as "suggested" configure event sizes to
indicate that the client has to decide on its own which sizes to used. This
is commonly done when restoring from maximised, fullscreen or tiles states
to fullscreen.
We now store the last known floating states in a new set of variables and
restore them when we receive such a (0,0) configure event.
|
|
d4e1b497
|
2021-08-01T09:15:26
|
|
unix: OpenURL: Move unsetenv above vfork
From the vfork manpage:
> The vfork() function has the same effect as fork(2), except that
> the behavior is undefined if the process created by vfork() either
> modifies any data other than a variable of type pid_t used to store
> the return value from vfork(), or returns from the function in which
> vfork() was called, or calls any other function before successfully
> calling _exit(2) or one of the exec(3) family of functions.
unsetenv is still called inside a child process, so it does not
influence the rest of the application.
|
|
9b7b9287
|
2021-07-31T23:28:41
|
|
Clear LD_PRELOAD so Chrome opens correctly when this application is launched by Steam
This fixes https://github.com/libsdl-org/SDL/issues/4565
|