|
5b18ae29
|
2021-08-03T14:01:02
|
|
improvements to libdecor support in cmake
this makes it consistent with wayland support, and makes cmake side
in line with autotools' libdecor support.
|
|
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.
|
|
a15ec365
|
2021-08-03T11:33:50
|
|
attempt to fix cmake builds with libdecor
|
|
8726f500
|
2021-08-03T01:10:48
|
|
Allow quitting controllermap if there are no controllers attached
|
|
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
|
|
74aa4b63
|
2021-08-03T03:10:14
|
|
cmake: don't fail if Wayland is enabled but libdecor isn't found.
Instead, just disable libdecor support.
This matches what the configure script does.
|
|
c3084539
|
2021-08-03T02:49:08
|
|
cmake: Use CMAKE_INSTALL_FULL_* for libdir,bindir,etc.
This makes sure sdl2.pc gets the full paths, matching what the
configure script will generate.
Fixes #4569.
|
|
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
|
|
54aea244
|
2021-08-01T05:36:12
|
|
wayland: Disable key repeat when repeat rate equals 0
This fixes a crash on pressing keyboard button when compositor sends
zero as repeat rate, indicating that key repeat should be disabled.
From Wayland protocol spec:
> Negative values for either rate or delay are illegal. A rate of zero
> will disable any repeating (regardless of the value of delay).
|
|
d784dd20
|
2021-07-31T17:53:07
|
|
Updated WhatsNew with major changes for 2.0.16
|
|
b033cd0d
|
2021-07-31T16:01:48
|
|
Fixed XSync sequence to match other cases where we set the X11 error handler
|
|
d373af04
|
2021-08-01T01:39:20
|
|
CMakeLists.txt: update DYLIB_CURRENT_VERSION too 2.0.16 for release
|
|
4c7825f6
|
2021-07-31T18:27:14
|
|
x11: XSync while trying to catch XRRSetScreenSize error.
Reference issue #4561
|
|
cb1fd30e
|
2021-07-31T13:28:54
|
|
Updated to version 2.0.16 for release
|
|
3e76646c
|
2021-07-31T13:09:53
|
|
Added libSDLmain.a for iOS and tvOS
|
|
d0effadf
|
2021-07-31T15:56:30
|
|
x11: Don't let XRRSetScreenSize fire a BadMatch error.
This is a workaround and not a proper fix, but this is possibly complicated,
and possibly a corner case, so this will do for 2.0.16, if not the
foreseeable future.
Reference issue #4561
|
|
3a4b217d
|
2021-07-31T12:44:29
|
|
Allow defining SDL_MAIN_HANDLED on iOS if you're using another runtime that provides an application delegate
|
|
deed21a8
|
2021-07-31T12:44:11
|
|
Removed useless forward declaration
|
|
1a9253f7
|
2021-07-31T12:37:28
|
|
Removed unused IOS_DYLIB definition
|
|
e5594e66
|
2021-07-30T16:03:01
|
|
wayland: Prefer our SSD implementation if available
|
|
2d0075ef
|
2021-07-30T18:23:43
|
|
Updated comments for third party Nintendo Switch controllers
|
|
16010f75
|
2021-07-30T18:23:43
|
|
Added support for the PowerA Nintendo Switch Fusion Arcade Stick
|
|
b33f4709
|
2021-07-30T18:23:42
|
|
Fixed detection of the PDP Afterglow Wireless Switch Controller over Bluetooth
|
|
6af6950d
|
2021-07-30T18:23:42
|
|
Added support for the Victrix Gambit Tournament Controller
|
|
243a8836
|
2021-07-30T18:23:41
|
|
The PowerA Nintendo Switch Fusion Pro Controller has a working USB mode, enabled via the switch on the underside of the controller.
|
|
71897cc1
|
2021-07-30T15:51:43
|
|
wayland: Always trigger a resize when handling a configure event.
When we removed the OpenGL resize workaround it introduced a problem for
fullscreen windows in particular: When leaving fullscreen we tried to send a
resize event, but UpdateFullscreenMode would send a SIZE_CHANGED immediately
after, deleting our resize event and causing the following configure event's
resize to be ignored. This timing issue resulted in fullscreen windows not
being resized at all when becoming a floating window.
By always forcing resize events from configure events, we ensure that RESIZED
always makes it through. SetWindowSize-type changes should be unaffected as
they do not fire configure events.
|
|
8f06a629
|
2021-07-30T22:31:17
|
|
render: Fix -Wmaybe-uninitialized warning in RenderDrawLinesWithRects{,F}
The RenderDrawLinesWithRects and RenderDrawLinesWithRectsF functions can
sometimes call QueueCmdFillRects() with the data pointed to by frects
uninitialised. This can occur if none of the lines can be replaced with
rects, in which case the frects array is empty, and nrects is 0.
gcc 10.3.0 will detect this possibility, and print a warning like:
/home/david/Development/SDL/src/render/SDL_render.c: In function 'RenderDrawLinesWithRectsF':
/home/david/Development/SDL/src/render/SDL_render.c:2725:15: warning: '<unknown>' may be used uninitialized [-Wmaybe-uninitialized]
2725 | retval += QueueCmdFillRects(renderer, frects, nrects);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/david/Development/SDL/src/render/SDL_render.c:499:1: note: by argument 2 of type 'const SDL_FRect *' to 'QueueCmdFillRects' declared here
499 | QueueCmdFillRects(SDL_Renderer *renderer, const SDL_FRect * rects, const int count)
| ^~~~~~~~~~~~~~~~~
This is harmless, because when this is uninitialised, nrects is always
0, so QueueCmdFillRects() does nothing anyway. We therefore can work
around this by only calling QueueCmdFillRects() when nrects is nonzero.
Somewhat impressively, gcc recognises that this is now safe.
|
|
c20ab7da
|
2021-07-30T00:22:50
|
|
wayland: Fix GetWindowWMInfo for <2.0.15
|
|
585c11c5
|
2021-07-30T00:33:15
|
|
direct3d: Fix possibly-incorrect scissor test when clearing.
Thanks to @JayFoxRox who did the detective work on this!
Fixes #3357.
|
|
6f684f67
|
2021-07-29T18:20:36
|
|
cocoa: Add keyboard grab support
CGSSetGlobalHotKeyOperatingMode() is not a public API, so we will only
compile this in if SDL_MAC_NO_SANDBOX=1 is defined during compilation.
|
|
69518b9e
|
2021-07-29T17:09:24
|
|
Make sure we don't send a resize event while a window is being destroyed
This fixes https://github.com/libsdl-org/SDL/issues/3669
|
|
3ababa09
|
2021-07-29T15:17:42
|
|
Don't explicitly use any C runtime library with Visual Studio
Visual Studio will still use Multi-threaded DLL by default, but since we don't link with a C runtime we won't end up with any Visual Studio runtime dependency.
This fixes https://github.com/libsdl-org/SDL/issues/4328
|
|
659e1f0a
|
2021-07-29T17:49:52
|
|
audiocvt: The to-5.1 converters now soften FL and FR channels more.
This is experimental and might be tweaked further.
Reference #4104.
Also reference:
https://github.com/Keriew/augustus/issues/194#issuecomment-847655049
|
|
f20a8581
|
2021-07-29T00:13:17
|
|
commit after setting/unsetting limits
|
|
9984891b
|
2021-07-29T14:46:24
|
|
Use the wl_touch object as a touch ID on Wayland (thanks @russelltg!)
This fixes https://github.com/libsdl-org/SDL/issues/4517
|
|
74162b74
|
2021-07-29T13:27:31
|
|
wayland: Add support for text-input-unstable-v3
|
|
e4411505
|
2021-07-29T19:04:39
|
|
Don't pack SDL_AudioCVT on CHERI architectures
This is needed to support CHERI, and thus Arm's experimental Morello
prototype, where pointers are implemented using unforgeable capabilities
that include bounds and permissions metadata to provide fine-grained
spatial and referential memory safety, as well as revocation by sweeping
memory to provide heap temporal memory safety.
The referential safety is enforced through the use of tagged memory, and
there is only a single tag bit per capability-sized word, meaning it is
impossible to store capabilities at unaligned locations, either getting
a trap on load/store or the validity tag being stripped when
round-tripepd through memory.
Since this is a new ABI for which SDL has never been compiled before, we
do not need to be concerned with this compatibility measure, so just
don't pack the struct for CHERI architectures.
This code is inherently rather dubious anyway; if MSVC and GCC disagree
on struct layout when targeting Windows then that is a bug in GCC, but
likely extends from the bogus #pragma pack directives for MSVC in
begin_code.h, which will force types to be *underaligned* (and is
attempting to work around something that is fundamentally a broken idea
to be doing). In particular 8-byte-aligned types will be underaligned to
4 bytes, but only on MSVC. Since that code is not used for GCC that is
probably the cause of the struct layout discrepancy, and there are
likely other instances of that throughout SDL. Moreover, the supposed
fix here is not in fact a fix, as now GCC will think SDL_AudioCVT is
only 1-byte-aligned but MSVC will think it's 4-byte or 8-byte-aligned,
meaning ABI incomatibility is introduced by this change. However,
removing it would break ABI compatibility for purely-GCC-compiled code
(as old binaries would see the struct as 1-byte-aligned and new binaries
would see the struct as 8-byte-aligned) so SDL is stuck with this until
it bumps its ABI.
|
|
02daab87
|
2021-07-29T18:09:38
|
|
Fix pointer provenance in SDL_SIMDRealloc
This is needed to support CHERI, and thus Arm's experimental Morello
prototype, where pointers are implemented using unforgeable capabilities
that include bounds and permissions metadata to provide fine-grained
spatial and referential memory safety, as well as revocation by sweeping
memory to provide heap temporal memory safety.
The C standard does not guarantee that if two pointers compare equal
they are the same pointer, as C pointers have a notion of provenance,
and compilers have been known to exploit this during optimisation. For
CHERI, this becomes even more important, as in-place expansion can
result in realloc returning a capability to the same address but with
increased capability bounds, and so reusing the old capability will trap
trying to access outside the bounds of the original allocation.
In the case that ptr == mem, memdiff and ptrdiff should still be equal,
so the only overhead is a small amount of pointer arithmetic and a store
of the new pointer (which is required per the C standard in order to not
be undefined behaviour when next loaded).
This also fixes the calculation of oldmem to use uintptr_t rather than
size_t as casting the pointer to size_t on CHERI will strip the
capability metadata, including the validity tag, with the subsequent
cast back to void * resulting in a null-derived capability whose
validity tag is clear and thus cannot be dereferenced without trapping.
|
|
8f38ba4d
|
2021-07-29T18:02:47
|
|
Fix casts that should be using uintptr_t
This is needed to support CHERI, and thus Arm's experimental Morello
prototype, where pointers are implemented using unforgeable capabilities
that include bounds and permissions metadata to provide fine-grained
spatial and referential memory safety, as well as revocation by sweeping
memory to provide heap temporal memory safety.
On most systems (anything with a flat memory hierarchy rather than using
segment-based addressing), size_t and uintptr_t are the same type.
However, on CHERI, size_t is just an integer offset, whereas uintptr_t
is still a capability as described above. Casting a pointer to size_t
will strip the metadata and validity tag, and casting from size_t to a
pointer will result in a null-derived capability whose validity tag is
not set, and thus cannot be dereferenced without faulting.
The audio and cursor casts were harmless as they intend to stuff an
integer into a pointer, but using uintptr_t is the idiomatic way to do
that and silences our compiler warnings (which our build tool makes
fatal by default as they often indicate real problems). The iconv and
egl casts were true positives as SDL_iconv_t and iconv_t are pointer
types, as is NativeDisplayType on most OSes, so this would have trapped
at run time when using the round-tripped pointers. The gles2 casts were
also harmless; the OpenGL API defines this argument to be a pointer type
(and uses the argument name "pointer"), but it in fact represents an
integer offset, so like audio and cursor the additional idiomatic cast
is needed to silence the warning.
|
|
c8b4edf3
|
2021-07-29T17:53:10
|
|
Fix SDL_Event definition to support systems with pointers larger than 8 bytes
This is needed to support CHERI, and thus Arm's experimental Morello
prototype, where pointers are implemented using unforgeable capabilities
that include bounds and permissions metadata to provide fine-grained
spatial and referential memory safety, as well as revocation by sweeping
memory to provide heap temporal memory safety.
|
|
65ff00ec
|
2021-07-29T14:18:54
|
|
Query the rate for the correct sensor (thanks @meyraud705)
|
|
9d457aa4
|
2021-07-29T14:24:40
|
|
Don't uninitialize COM because of what appears to be a bug in Microsoft WGI reference counting.
This fixes https://github.com/libsdl-org/SDL/issues/4488
|
|
b3a0174b
|
2021-07-29T14:23:15
|
|
Scale the values correctly based on the sensor type (thanks @meyraud705)
|
|
72ee0ccd
|
2021-07-29T13:46:05
|
|
Sync wiki -> header
|
|
a186a503
|
2021-07-29T06:43:39
|
|
Added SDL_GameControllerGetSensorDataRate() to get the sensor update rate for a controller.
|
|
ce8261dd
|
2021-07-29T06:36:20
|
|
Only pump events once per frame and process all currently pending events
If you continually poll for events it's possible that new events can come in while you're still processing the last one, delaying rendering. This is more likely with high update rate sensors.
|
|
53987e9b
|
2021-07-28T21:03:42
|
|
Optimized SDL_Convert51ToStereo_AVX
|
|
8e35ff5c
|
2021-07-28T14:20:29
|
|
By default minimize real fullscreen windows when they lose focus so the desktop video mode is restored.
This fixes https://github.com/libsdl-org/SDL/issues/4039
|
|
1e07dba0
|
2021-06-09T15:26:38
|
|
x11: Use glXChooseFBConfig when available in X11_GL_GetVisual
When choosing an X11 Visual for a window based on its GLX capabilities, first
try glXChooseFBConfig (if available) before falling back to glXChooseVisual.
This normally does not make a difference because most GLX drivers create a
Visual for every GLXFBConfig, exposing all of the same capabilities.
For GLX render offload configurations (also know as "PRIME") where one GPU is
providing GLX rendering support for windows on an X screen running on a
different GPU, the GPU doing the offloading needs to use the Visuals that were
created by the host GPU's driver rather than being able to add its own. This
means that there may be fewer Visuals available for all of the GLXFBConfigs the
guest driver wants to expose. In order to handle that situation, the NVIDIA GLX
driver creates many GLXFBConfigs that map to the same Visual when running in a
render offload configuration.
This can result in a glXChooseVisual request failing to find a supported Visual
when there is a GLXFBConfig for that configuration that would have worked. For
example, when the game "Unnamed SDVX Clone" [1] tries to create a configuration
with multisample, glXChooseVisual fails because the Visual assigned to the
multisample GLXFBConfigs is shared with the GLXFBConfigs without multisample.
Avoid this problem by using glXChooseFBConfig, when available, to find a
GLXFBConfig with the requested capabilities and then using
glXGetVisualFromFBConfig to find the corresponding X11 Visual. This allows the
game to run, although it doesn't make me any better at actually playing it...
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Fixes: https://forums.developer.nvidia.com/t/prime-run-cannot-create-window-x-glxcreatecontext/180214
[1] https://github.com/Drewol/unnamed-sdvx-clone
|
|
cf85710c
|
2021-07-28T22:55:10
|
|
SDL_audiocvt.c: disable AVX for clang < 5 and gcc < 4.9
See: https://github.com/libsdl-org/SDL/issues/4533
|
|
cc4ab101
|
2021-07-28T14:37:33
|
|
windows: convert "//" comment to "/**/", add a FIXME.
Reference #4129
Reference #4177
|
|
a2031948
|
2021-07-28T14:06:51
|
|
Added in a MIME-type to the X11 clipboard. (#4385)
|
|
5346cf84
|
2021-07-28T17:13:05
|
|
Sync wiki -> header
|
|
ad310d39
|
2021-07-28T12:31:25
|
|
wayland: libdecor support for SetWindowModalFor
|
|
93976ade
|
2021-07-28T12:22:09
|
|
wayland: libdecor support for GetWindowWMInfo
|
|
46919b1e
|
2021-07-28T16:11:06
|
|
Sync wiki -> header
|
|
1fb4429b
|
2021-07-28T21:50:48
|
|
wayland: Avoid a pointer→TouchID cast warning
As of [1], SDL now compiles with a warning in SDL_waylandevents.c on
32-bit systems under gcc 10.3.0:
/tmp/SDL/src/video/wayland/SDL_waylandevents.c: In function 'seat_handle_capabilities':
/tmp/SDL/src/video/wayland/SDL_waylandevents.c:958:22: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
958 | SDL_AddTouch((SDL_TouchID)seat, SDL_TOUCH_DEVICE_DIRECT, "wayland_touch");
| ^
/tmp/SDL/src/video/wayland/SDL_waylandevents.c:964:22: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
964 | SDL_DelTouch((SDL_TouchID)seat);
| ^
This is due to SDL_TouchID always being 32-bit, but seat being a pointer
which is (obviously) only 32-bit on 32-bit systems. The conversion is
therefore harmless, so silence it with an extra cast via intptr_t.
This is what the cocoa backend does (and is similar to what the Win32
backend does, except with size_t).
Fixes: 03c19efbd1 ("Added support for multiple seats with touch input on Wayland")
[1]: https://github.com/libsdl-org/SDL/commit/03c19efbd17f72f70ee021de6d2549eb0be3bb56
|
|
4a7799be
|
2021-07-28T17:01:02
|
|
--disable-wayland-shared implies --disable-libdecor-shared for now.
C.f.: https://github.com/libsdl-org/SDL/issues/4543
|
|
18303c92
|
2021-07-28T18:06:34
|
|
Wayland: Fix building with --disable-wayland-shared with libdecor.
When wayland is not dynamically loaded (--enable-wayland-shared=no)
libdecor.h is not included unless SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC
is set, so it fails to build. We can't simply move the libdecor.h
include above the #ifdef SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC block, as
libdecor.h itself #includes wayland headers we need to replace with
#defines. Instead, duplicate the #include.
Fixes https://github.com/libsdl-org/SDL/issues/4543
Note that this doesn't fix any of the underlying issues of libdecor
being treated as part of wayland, it just fixes the build. A better
solution would probably be to decouple the wayland dynamic loading
from the libdecor dynamic loading completely, though that is a lot
more work...
|
|
21cba924
|
2021-07-28T16:54:23
|
|
wayland: Don't create zxdg toplevel decoration twice
Each window can have at most one zxdg toplevel decoration, but as of
[1], we accidentally create two. (If libdecor is not in use). This
causes wayland windows with server-side decorations (e.g. on KDE/KWin)
to crash with the message:
zxdg_decoration_manager_v1@7: error 1: decoration has been already constructed
This extra zxdg_decoration_manager_v1.get_toplevel_decoration() call was
introduced while deprecating wl-shell and xdg-shell-stable[1] support,
and possibly was a bad interaction with [2], which moved the decoration
creation around.
Fixes: 6aae5b44f8 ("Remove wl-shell and xdg-shell-unstable-v6 support (#4323)")
[1]: https://github.com/libsdl-org/SDL/pull/4323
[2]: https://github.com/libsdl-org/SDL/pull/4374
|
|
7b239edb
|
2021-07-28T01:00:00
|
|
wayland: Assign frame_callback on window creation.
Fixes a crash when creating and destroying a window without calling SwapWindow.
|
|
41e1a236
|
2021-07-27T16:50:06
|
|
Correct the maximized size and position for borderless resizable windows
This fixes bug https://github.com/libsdl-org/SDL/issues/4043
|
|
03185e74
|
2021-07-27T18:35:00
|
|
wayland: Tag/Check wl_output objects as well, fixes crashes when libdecor is in use
|
|
871c1119
|
2021-07-27T18:24:09
|
|
wayland: handle pending resizes immediately, not on SwapWindow.
This was originally a workaround for an old Mesa bug, since fixed, apparently,
and causes other problems.
Fixes #4326.
|
|
51c61d7c
|
2021-07-27T14:57:18
|
|
Run the entire Cocoa messagebox function on the main thread.
This fixes bug https://github.com/libsdl-org/SDL/issues/4420
|
|
dfd3f30e
|
2021-07-27T14:27:37
|
|
Make Cocoa_HandleTitleButtonEvent() static since it's not used anywhere else
|
|
14d58dc8
|
2021-07-27T14:23:40
|
|
Fixed the parameter documentation
|
|
a3eb297e
|
2021-07-27T17:17:19
|
|
wayland: Rework enter/leave and update_scale_factor to avoid bogus wl_output data.
Also remove get_window_scale_factor() which was just pointless indirection.
|
|
6aae5b44
|
2021-07-27T17:12:26
|
|
Remove wl-shell and xdg-shell-unstable-v6 support (#4323)
* wayland-protocol: update wayland.xml to 1.19.0
* wayland: remove shell_surface field from SDL_SysWMinfo
* wayland: remove wl_shell support
* waypand-protocols: update xdg-shell.xml to 1.20
* wayland: remove xdg-shell-unstable-v6 support
* wayland: deprecate wl shell surface syswm info, add xdg surface
|
|
65dc4edb
|
2021-07-27T12:51:44
|
|
Reverted accidental Visual Studio version bump in SDL.sln
|
|
88e4755c
|
2021-07-27T12:43:00
|
|
Make sure we don't try to turn on relative mouse mode while clicking on the window title bar.
This fixes bug https://github.com/libsdl-org/SDL/issues/4469
|
|
7df6a9ea
|
2021-07-27T10:44:04
|
|
Add a test case for bug https://github.com/libsdl-org/SDL/issues/4469
|
|
c72aef26
|
2021-05-01T23:56:23
|
|
Fixed microphone randomly stop working
WASAPI_WaitDevice is used for audio playback and capture, but needs to
behave slighty different.
For playback `GetCurrentPadding` returns the padding which is already
queued, so WaitDevice should return when buffer length falls below the
buffer threshold (`maxpadding`).
For capture `GetCurrentPadding` returns the available data which can be
read, so WaitDevice can return as soon as any data is available.
In the old implementation WaitDevice could suddenly hang. This is
because on many capture devices the buffer (`padding`) wasn't filled
fast enough to surpass `maxpadding`. But if at one point (due to unlucky
timing) more than maxpadding frames were available, WaitDevice would not
return anymore.
Issue #3234 is probably related to this.
|
|
4ef8674d
|
2021-07-27T14:18:44
|
|
Revert "wasapi: Open capture devices the way we used to."
This reverts commit 0d0fee7569803ddc41985bfc249418b02dd8cd97.
|
|
0d0fee75
|
2021-07-27T14:12:18
|
|
wasapi: Open capture devices the way we used to.
This should work around the regression in #3234, since it basically reverts
the problem change, but only for capture devices.
Fixes #3234.
|
|
b2d77e63
|
2021-07-27T10:57:40
|
|
Added testwm2 to the Visual Studio test programs
|
|
f4eb7f32
|
2021-07-27T13:45:33
|
|
spinlock: Favor gcc-style atomics over MSVC interfaces.
This resolves a problem when using Clang on Windows.
Fixes #4346.
|
|
9bcb5e7b
|
2021-07-27T20:20:28
|
|
configure: move CheckLibDecor into CheckWayland
|
|
736a424f
|
2021-07-27T13:12:57
|
|
pulseaudio: Optionally add "monitor" sources to device list.
There's a new hint to enable this.
Fixes #2917.
|