This specifically fixes a crash in X11_WarpMouseInternal if XInput2 was
missing at runtime, but also cleans up a few other existing checks.
Fixes#8378.
(cherry picked from commit 82f54af6177f3d50be1db42a528027ada6ea0a20)
(cherry picked from commit 2849ca404e040245e90fdf7b81e3878aa31204b5)
Hiding the decorations while not unreferencing the frame was a workaround for an internal libdecor use-after-free bug that was fixed some time ago. Revert to unreferencing the window when hiding to ensure that it is properly destroyed.
Reverts dd2e318
Previously, if acting on a surface with less than 32 bits per pixel,
this code was placing the pixel value from the surface in the first
few bytes of the Uint32 to be decoded, and unrelated data from a
subsequent pixel in the remaining bytes.
Because SDL_GetRGBA takes the bits to be decoded from the
least-significant bits of the given value, ignoring the higher-order
bits if any, this happened to be correct on little-endian platforms,
where the first few bytes store the least-significant bits of an
integer.
However, it was incorrect on big-endian, where the first few bytes are
the most-significant bits of an integer.
The previous implementation also assumed that unaligned access to a
32-bit quantity is possible, which is not the case on all CPUs (but
happens to be true on x86).
These issues were not discovered until now because
SDLTest_CompareSurfaces() is only used in testautomation, which until
recently was not being run routinely at build-time, because it contained
other assumptions that can fail in an autobuilder or CI environment.
Resolves: https://github.com/libsdl-org/SDL/issues/8315
Signed-off-by: Simon McVittie <smcv@collabora.com>
(cherry picked from commit d95d2d7051e23271db7cec43134582834fb3ac8b)
(cherry picked from commit 6b5eadb10f02b51b400e710e2c95e9f0c2cb579c)
Smart compilers don't like dereferencing off the end of arrays
(cherry picked from commit f6756047a4190d9c82222e4ec378bdb14a72f8d7)
(cherry picked from commit 62e7049a4f6eedc75d7ffb9cffc435f491f1577c)
This allows utilities like clipboard managers to keep track of the
changes.
(cherry picked from commit 65aaf3a9ab9ec2be2973084060c2df5321b5acaa)
(cherry picked from commit 70a2ac2f1c1ce6509252ae588ba54fff31063f32)
Battle for Wesnoth apparently relies on being able to disable rendering
of UI elements by setting the clip rectangle to be empty.
Resolves: https://github.com/libsdl-org/SDL/issues/6896
Fixes: 00f05dcf "render: only enable clipping when the rectangle is valid"
Signed-off-by: Simon McVittie <smcv@collabora.com>
(cherry picked from commit 8ad043fc38f09e5a88aca266ae6b70f572d66a1f)
Simagic DirectDrive wheel bases have the same vendor + product id's
(cherry picked from commit a2c1984d371e86e97bd6ffb176e835925e6afb3a)
(cherry picked from commit 1d495351a0944c598e78c130b635f9447b5bc871)
G923 have two different versions - Xbox version is already present in the wheel list, but not the PS version.
(cherry picked from commit 266b91d2fd2b3362d1828f8a6b58589bdaa4f75d)
(cherry picked from commit 365a36386ac18a2636c0d7b9597edb3644df0735)
Logitech PRO Racing Wheel have two different versions - for Playstation and Xbox. Vendor + Product ID for Playstation version already present in SDL sources, but not an Xbox version
(cherry picked from commit cde67ea49ad812088bd5c8cfd67ef090ac1c1d86)
(cherry picked from commit 242b25aba47871a571457bc6e71ff4c89bbafc3b)
On some system like MacBook Pro Intel with AMD card, asking for the default device will always return the AMD GPU.
This is not an issue for 99% of the case when the renderer context is here to provide the maximum performance level like for game.
However, for video application using GPU for 1 quad and 1 texture, using the discrete GPU for that lead to an important power consumption (4 to 8W), heat increase, and fan noise.
With this patch, I successfully amend ffplay to only use the integrated GPU (i.e. the Intel one), instead of the discrete GPU (i.e. the AMD one).
(cherry picked from commit aa7ba629784ebf4a253cf78d85c286c310ad0cb5)
An overflow occured in the stdlib_sscanf test, when using msys2 clang32 toolchain.
(cherry picked from commit 342ec5113171214154cb197bb3e0e3a0056ea2ad)
(cherry picked from commit 10135b2d7bbed6ea0cba24410ebc12887d92968d)
Error messages are not part of the ABI, so we can't validate those.
Technically SDL_AllocFormat() on a FOURCC format in SDL2 should fail, but SDL3 supports it and we don't expect SDL2 applications to actually do this, so skip that test.
Hand-picked from 5cf9438f88
Many of the Flydigi controllers use the same VID/PID and have different mappings, so let's revisit this once we have more data.
(cherry picked from commit 5388edd5494030b8c43b2f79e3f5c9b71f57a703)
(cherry picked from commit 805fc29ae8aead9fba8e0fa2b155dd3a9f6618f2)