|
087de97b
|
2020-12-22T17:00:00
|
|
acinclude/esd.m4: update from mainstream esound tree,
- revise for better compatibility with new autoconf,
- remove HP/UX 9 (%@#!) support from it,
- replace system("touch conf.esdtest") with fopen/fclose in the
test code (see, e.g. glib-2.0.m4 -- sdl.m4 does the same.)
|
|
15abab9c
|
2020-12-22T16:25:00
|
|
regenerated configure
|
|
2fc987c2
|
2020-12-22T14:15:33
|
|
[Buildsystem] Add guards for not building with KMSDRM support if EGL is not available.
|
|
05dcec0a
|
2020-12-21T14:43:38
|
|
Added tag release-2.0.14 for changeset 97dfa8874ea0
|
|
4cd98160
|
2020-12-21T09:44:25
|
|
Fixed whitespace
|
|
537f824f
|
2020-12-21T20:40:10
|
|
test/Makefile.os2: wlib must run case-sensitively.
|
|
8766d604
|
2020-12-21T17:29:24
|
|
[Video/KMSDRM] Fix potetial access to freed structure and complete errorchecks.
|
|
b06ef3a1
|
2020-12-21T01:53:11
|
|
[Video/KMSDRM] Manually re-show the cursor on window creation, if needed.
|
|
4198f0e5
|
2020-12-21T01:20:30
|
|
fix uninitialized warnings in KMSDRM_CreateCursor()
|
|
a8dbcab1
|
2020-12-20T21:48:05
|
|
[Video/KMSDRM] Don't copy the cursor bitmap to the cursor GBM BO until we're showing it.
|
|
67e9132d
|
2020-12-20T12:22:28
|
|
Fixed circular dependency problem when building in the test directory
|
|
ee180efd
|
2020-12-20T12:08:49
|
|
Fixed bug 5406 - Upstreaming DragonFlyBSD changes from DeltaPorts (patch from David Carlier)
|
|
22275b35
|
2020-12-20T21:55:02
|
|
cmake: fix building for mac (bug #5407.)
|
|
2756b0f3
|
2020-12-20T14:29:58
|
|
[Video/KMSDRM] Init and deinit mouse stuff at the same time that GBM stuff.
|
|
e91153f2
|
2020-12-20T03:03:21
|
|
fix non-ARM h/w on FreeBSD builds (bug #5405, patch from David Carlier.)
|
|
cf71e017
|
2020-12-19T23:32:09
|
|
[Video/KMSDRM] Remove auxiliary AMDGPU compatibility workarounds not needed anymore.
|
|
af1f91cb
|
2020-12-19T20:21:07
|
|
[Video/KMSDRM] Correct typo.
|
|
cf489556
|
2020-12-19T20:15:50
|
|
[Video/KMSDRM] Honor the device index in Vulkan. Add notes about the display index.
|
|
ab3a390e
|
2020-12-19T17:35:04
|
|
[Video/KMSDRM] Better ATOMIC caps testing: patch by Oskan Sezer.
|
|
436499f3
|
2020-12-19T02:08:59
|
|
[Video/KMSDRM] Comment out some debug info, adjust comments for future work.
|
|
6b81cac4
|
2020-12-19T01:25:50
|
|
remove duplicated SDL_SetError after calling check_atomic_modesetting()
|
|
8952a613
|
2020-12-18T23:17:42
|
|
[Video/KMSDRM] Re-arrange display members setup.
|
|
f60f8d5d
|
2020-12-18T22:53:51
|
|
[Video/KMSDRM]: Add Vulkan support to the KMSDRM backend.
|
|
cbe13d23
|
2020-12-18T13:10:36
|
|
Fixed controller hotplug detection when joystick thread is not enabled
|
|
6ac0b23d
|
2020-12-18T21:37:20
|
|
SDL_DirectFB_video.c: DSPF_ABGR requires directfb >= 1.5.0 -- add guard.
|
|
f0577bc9
|
2020-12-18T10:09:06
|
|
ControllerList: setup the ps5 default deadzone to match PS4 instead of defaulting to same a XboxOne/Switch
|
|
5f7cd1fa
|
2020-12-18T10:08:59
|
|
Added hints to control whether SDL updates joystick and sensor state in the main event loop
|
|
6c4ab484
|
2020-12-18T17:50:02
|
|
SDL_kmsdrmvideo.c: check atomic modesetting in check_modesetting()
.. so that KMSDRM_CreateDevice() can fail and SDL_VideoInit() would
move on to next bootstrap member which is kmsdrm_legacy. hopefully
fixes bug #5393.
|
|
5c654d0d
|
2020-12-18T17:00:00
|
|
tests: regenerate configure using autoconf patched for AC_PATH_X11
Specifically this patch which does not invoke _AC_PATH_X_XMKMF and
_AC_PATH_X_DIRECT internal autoconf routines when cross-compiling:
http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=33c3a47c04ab70a4dd54963fe433a171bc03747f
Without this, CFLAGS would brokenly have system include paths like
-I/usr/include/X11 when cross-compiling e.g. for windows. (And it
also resulted in annoying imake crashes for my setup...)
|
|
6bd4c717
|
2020-12-17T21:41:23
|
|
Fixed bug 5402 - ARM support little update proposal
David Carlier
No fix but mostly an update for ARM architecture.
|
|
10625f9d
|
2020-12-17T23:50:00
|
|
SDL_windowsmessagebox.c: go back to hg rev 14458 state.
encountering a NULL caption in AddDialogString() is intended, i.e.
AddDialogStaticIcon() sends it as NULL on purpose.
|
|
4d6eb305
|
2020-12-17T23:28:20
|
|
SDL_windowsmessagebox.c (AddDialogControl): add back NULL caption check.
because AddDialogStaticIcon() sends a NULL caption -- fixes bug #5401.
|
|
90456670
|
2020-12-17T14:11:00
|
|
more "'for' loop initial declarations are only allowed in C99 mode" fixes
|
|
ed4fcb2c
|
2020-12-16T03:24:10
|
|
kmsdrm_legacy build fixes:
- add missing '_LEGACY' to symbol names
- perform missing 2.0.14 portage
- fix 'for' loop initial declarations are only allowed in C99 mode errors
|
|
f484abbd
|
2020-12-15T14:57:51
|
|
Added Android mapping for the Xbox One Series X controller over Bluetooth
|
|
cdd39711
|
2020-12-15T14:57:49
|
|
Fixed the Xbox Series X controller showing up twice on Android
|
|
14f97734
|
2020-12-15T14:57:47
|
|
Fixed whitespace
|
|
9940e710
|
2020-12-16T00:10:30
|
|
Import two post-2.0.12 fixes to kmsdrm_legacy:
Fix build breakage without EGL:
https://hg.libsdl.org/SDL/rev/f2606fe53654e305ab9badb821d9d3afb7f92f49
Fix KMSDRM_CreateWindow segfault when starting L?VE2D engine (bug 5199)
https://hg.libsdl.org/SDL/rev/d2e69a78939463d9ff9448a5f4efd1e208bb97b0
|
|
f8839289
|
2020-12-15T12:22:48
|
|
Potential fix for bug 5393 - KMSDRM: using atomic mode setting breaks GPU compatibility
Substring
I was trying the KMSDRM video backend with some very simple programs that were working ok on 2.0.12. The same code won?t work on the current dev branch and I get:
DEBUG: check_modesetting: probing ?/dev/dri/card0?
DEBUG: /dev/dri/card0 connector, encoder and CRTC counts are: 4 5 6
DEBUG: check_modesetting: probing ?/dev/dri/card0?
DEBUG: /dev/dri/card0 connector, encoder and CRTC counts are: 4 5 6
DEBUG: KMSDRM_VideoInit()
DEBUG: Opening device /dev/dri/card0
DEBUG: Opened DRM FD (3)
DEBUG: no atomic modesetting support.
DEBUG: Video subsystem has not been initialized
INFO: Using SDL video driver: (null)
DEBUG: Video subsystem has not been initialized
After carefully checking, the radeon driver doesn?t support atomic modesetting. That?s not the only problem : the same happens with the amdgpu driver if we disable Display Core (kernel parameter amdgpu.dc=0, which is required to get analogue outputs working).
This is a major regression in the KMSDRM driver.
Using atomic mode setting is great, but having no fallback to the "standard KMS" is bad.
|
|
c02d88dd
|
2020-12-15T23:01:10
|
|
configury whitespace cleanup (no actual change.)
|
|
6cb78120
|
2020-12-15T00:42:17
|
|
Fixed bug 5399 - make install is broken as it depends on missing rule `build`
Stephen Broadfoot
I've tracked this down to the following changeset bb65ba8e039b
https://hg.libsdl.org/SDL/diff/bb65ba8e039b/Makefile.in
this changeset renames the rule `build` to `build/.created` but the rule `install-lib` still depends on the rule `build`
This affects users who are trying to install via homebrew who are installing via source and not by the bottle as this invokes `make install`
To be clear, the error I was hitting when running make install is
make: *** No rule to make target `build', needed by `install-lib'. Stop.
|
|
716ac535
|
2020-12-15T01:20:00
|
|
test/acinclude.m4: rename SDL_CONFIG to SDL2_CONFIG, regenerate configure
|
|
637d425e
|
2020-12-15T00:11:10
|
|
whitespace.
|
|
e65e4fd3
|
2020-12-14T09:48:51
|
|
Fixed detecting the guide button on Xbox One S controllers over Bluetooth on Linux
|
|
f1c7cc71
|
2020-12-14T12:36:04
|
|
winrt: Buildfix for older UWP SDKs
|
|
bfffa275
|
2020-12-14T09:23:53
|
|
Fixed bug 5397 - Fcitx input is truncated
sowfelicity
Split the long text input event into multiple shorten text input event.
|
|
8795ca70
|
2020-12-14T09:15:47
|
|
Fixed bug 5241 - SDL on Linux needs a way to turn deadzones off
pj5085
I added some printf to verify the math being done. Of the three joysticks I have, it works correctly for at least two, and seems to work correctly for the third. I say "seems to" because, for the third joystick, the values never go through the AxisCorrect function, and thus never hit my printf statements, even though they did in the version I wrote my patch against. I'm not sure what's going on there, but it at least seems to be working correctly in as much as I can tell.
I note this result in particular, for an SNES Gamepad (min=0, max=255):
Joystick value 0 becomes -32768
Joystick value 127 becomes 0
Joystick value 255 becomes 32767
Without the code that forces a zero point, the 127 input value would become -129, so I think you see why I added that code to turn it into zero. However, I think Kai Krakow has a point about how SDL shouldn't assume that there should be a center.
Obviously in the majority of cases there actually should be a center, and the code that turns that 127 into an actual 0 is creating only a 0.2% error over 0.4% of this joystick's range. However, what if there is an axis that is some kind of special control, like a 4-position switch, and, for whatever reason, the joystick reports it as an axis with 4 possible values, 0 to 3? In that case, mutilating the two center values to the same value is much more of an error and and turns that 4-position switch into a 3-position switch. If any joystick does this with a 2-position switch, then this code would render that control entirely useless as it would report the same value with the switch in either position. Obviously the code could require that there be at least N possible values, to guess whether something is a proper axis or just some kind of switch, but the choice of N would be arbitrary and that's ugly.
I guess the real problem here is that my gamepad is just kind of broken. It should be reporting a range of -1 to +1 since that's what it actually does. Also, as Kai Krakow points out, it's probably not SDL's place to fix broken hardware. I'll add that, if SDL does fix broken hardware, it should probably actually know that it's broken rather than be merely guessing that it is.
So, to the extent that SDL is able to do stuff like this, perhaps it's something better left for the user to configure in some kind of config file.
|
|
169cfe5a
|
2020-12-14T11:52:09
|
|
winrt: EffectiveLocation still needs an ifdef, IsApiContractPresent is for runtime
|
|
44d4a61d
|
2020-12-14T08:11:40
|
|
minor cleanups to configure.ac to reduce autoconf-2.70 warnings a bit.
configure output is practically unchanged. there are still lots of
AC_TRY_COMPILE/AC_TRY_LINK replacements needed to really eliminate
the warnings, but that's for another time.
|
|
f8078d3d
|
2020-12-14T05:55:20
|
|
configure.ac: use AC_DEFINE for SDL_VIDEO_DRIVER_ANDROID
|
|
3c2757ff
|
2020-12-13T18:25:02
|
|
windows SDL_LoadObject: fix warning after commit 2ff650230d96
|
|
15cbddf4
|
2020-12-13T18:00:20
|
|
linux/SDL_threadprio.c: fix build on older systems:
SCHED_RESET_ON_FORK is in kernel >= 2.6.32.
|
|
3b92933a
|
2020-12-13T17:37:50
|
|
SDL_LoadObject (windows, os/2): prevent crash if dll name is NULL.
|
|
f674009c
|
2020-12-13T16:51:20
|
|
fix typo from commit 63349df2610a (fixes bug 5396)
|
|
b6e63625
|
2020-12-13T15:32:24
|
|
fix bug #5395: handle old systems where inotify_init1 is not available
|
|
ee85a41a
|
2020-12-13T02:10:46
|
|
Fixed compile warning
|
|
64f448b2
|
2020-12-13T02:01:39
|
|
libusb hid.c is already included in SDL_hidapi.c
|
|
706f6375
|
2020-12-13T01:58:05
|
|
Fixed build for platforms with only libusb hidapi implementations
|
|
80e5c689
|
2020-12-13T01:20:38
|
|
Fixed the PS5 controller not disconnecting when powered off
|
|
c8ee0691
|
2020-12-13T00:15:54
|
|
Added SDL_misc.h to the Xcode built frameworks
|
|
ce7c751c
|
2020-12-12T23:54:40
|
|
Document that the joystick deadzone hint defaults off
|
|
db0a2025
|
2020-12-12T23:48:02
|
|
Fixed bug 5241 - SDL on Linux needs a way to turn deadzones off
pj5085
It occurred to me that my simple patch that comments out a few lines of code does not correctly remove the dead zone since the calculation presumably assumes the dead zone has been cut out of the range. Then, while looking into how to make it output the correct range of values, I realized SDL wasn't returning the correct range of values to begin with.
This line of code was already present:
printf("Values = { %d, %d, %d, %d, %d }\n", absinfo.value, absinfo.minimum, absinfo.maximum, absinfo.fuzz, absinfo.flat);
For my joystick this yeilds:
Values = { 0, -127, 127, 0, 15 }
Then this code calculates the coefficients:
In SDL1:
joystick->hwdata->abs_correct[i].coef[0] = (absinfo.maximum + absinfo.minimum) / 2 - absinfo.flat;
joystick->hwdata->abs_correct[i].coef[1] = (absinfo.maximum + absinfo.minimum) / 2 + absinfo.flat;
t = ((absinfo.maximum - absinfo.minimum) / 2 - 2 * absinfo.flat);
if ( t != 0 ) {
joystick->hwdata->abs_correct[i].coef[2] = (1 << 29) / t;
} else {
joystick->hwdata->abs_correct[i].coef[2] = 0;
}
In SDL2:
joystick->hwdata->abs_correct[i].coef[0] = (absinfo.maximum + absinfo.minimum) - 2 * absinfo.flat;
joystick->hwdata->abs_correct[i].coef[1] = (absinfo.maximum + absinfo.minimum) + 2 * absinfo.flat;
t = ((absinfo.maximum - absinfo.minimum) - 4 * absinfo.flat);
if (t != 0) {
joystick->hwdata->abs_correct[i].coef[2] = (1 << 28) / t;
} else {
joystick->hwdata->abs_correct[i].coef[2] = 0;
}
Neither calculates the correct coefficients for the code in the AxisCorrect function.
In SDL1:
if ( value > correct->coef[0] ) {
if ( value < correct->coef[1] ) {
return 0;
}
value -= correct->coef[1];
} else {
value -= correct->coef[0];
}
value *= correct->coef[2];
value >>= 14;
In SDL2:
value *= 2;
if (value > correct->coef[0]) {
if (value < correct->coef[1]) {
return 0;
}
value -= correct->coef[1];
} else {
value -= correct->coef[0];
}
In SDL1, the calculated coefficients are coef[0]=15, coef[1]=-15 and coef[2]=5534751. So with a full-scale input of 127, it calculates an output value of 37835, which is considerably out of range.
In SDL2, the calculated coefficients are coef[0]=30, coef[1]=-30, and coef[2]=1383687. So with a full-scale input of 127, it calculates the same output value of 37835.
I tested it with the 3 joysticks I have, and it produces out-of-range values for all of them.
Anyway, since dead zones are garbage, I just deleted all of that junk and wrote some code that takes the absinfo.minimum and absinfo.maximum values and uses them to scale the axis range to -32767 through +32767.
I also made it detect when a range doesn't have an integer center point, e.g. the center of -128 to + 127 is -0.5. In such cases, if either value to the side of the center is provided, it zeros it, but it otherwise doesn't implement any kind of dead zone. This seemed important with my gamepad which provides only the values of 0, 127, and 255, since without this hack it would never be centered.
Also, the previous minimum output value was -32768, but as that creates an output range that has no true center, I changed the minimum value to -32767.
I tested it with the 3 joystick devices I have and it seems to create correct values for all of them.
|
|
0ccb3afd
|
2020-12-12T22:33:11
|
|
Fixed polling values after SYN_DROPPED event
|
|
9ee0e888
|
2020-12-12T22:11:00
|
|
Whoops, make the hint actually default to false
|
|
13a4caf1
|
2020-12-12T22:08:02
|
|
Fixed bug 4286 - Joystick subsystem causes "not responding" when app is in the background
Added a hint to control whether a separate thread should be used for joystick events.
This is off by default because dispatching messages in other threads appears to cause problems on some versions of Windows.
|
|
bca9decb
|
2020-12-12T23:28:10
|
|
fix bug #5394 - define _DARWIN_C_SOURCE only if not already defined
|
|
5c212cb0
|
2020-12-10T12:24:24
|
|
remove a few stale NULL message/title checks after commit e2b729b1756a
top-level guarantees non-NULL message / title passed in messageboxdata
|
|
f1cab8ae
|
2020-12-10T11:20:56
|
|
fix bug #5253: handle NULL title or message fields in SDL_MessageBoxData
- SDL_video.c (SDL_ShowMessageBox): replace messageboxdata, set title
or message field to "" if either of them is NULL.
- SDL_video.c (SDL_ShowSimpleMessageBox): set title or message to ""
if either of them is NULL for EMSCRIPTEN builds.
- SDL_bmessagebox.cc: add empty string check along with NULL check for
title and message fields.
- SDL_windowsmessagebox.c (AddDialogString): remove NULL string check
- SDL_windowsmessagebox.c (AddDialogControl): add empty string check
along with the NULL check.
- SDL_x11messagebox.c: revert commit 677c4cd68069
- SDL_os2messagebox.c: revert commit 2c2a489d76e7
- test/testmessage.c: Add NULL title and NULL message tests.
|
|
eec73dfd
|
2020-12-09T20:31:00
|
|
configure.ac (CheckJoystickMFI): changed AC_TRY_COMPILE to AC_TRY_LINK
so as to discover GameController and CoreHaptics frameworks at compile
time.
|
|
797a6910
|
2020-12-09T20:28:51
|
|
Fixed bug 5375 - WGI: Fix HSTRING memory leak.
Joel Linn
TLDR; https://godbolt.org/z/43fd8G
Let's deduce this from C++ reference code:
https://docs.microsoft.com/en-us/cpp/cppcx/wrl/how-to-activate-and-use-a-windows-runtime-component-using-wrl?view=msvc-160
At the bottom of the page there is this snippet:
```
int wmain()
{
/* ... more code ... */
// Get the domain part of the URI.
HString domainName;
hr = uri->get_Domain(domainName.GetAddressOf());
if (FAILED(hr))
{
return PrintError(__LINE__, hr);
}
// Print the domain name and return.
wprintf_s(L"Domain name: %s\n", domainName.GetRawBuffer(nullptr));
// All smart pointers and RAII objects go out of scope here.
}
```
`HString` is defined in `corewrappers.h` and the call chain for the destructor is:
`~HString() -> Release() -> ::WindowsDeleteString()`
QED
|
|
d3d2aee7
|
2020-12-09T10:39:36
|
|
Fixed the name of the PS5 hint
|
|
a77a0715
|
2020-12-09T07:50:15
|
|
Disabled raw input debug output
|
|
d46dd103
|
2020-12-09T07:49:07
|
|
Fixed typo in Vulkan load logic
|
|
45e3521d
|
2020-12-09T07:32:10
|
|
Backed out changes for 5366 - cmake build doesn't detect Metal on macOS
These changes introduce regressions for other build environments, so I'm backing them out until we sort out the correct fix.
|
|
bd032c1f
|
2020-12-09T07:26:59
|
|
Fixed bug 5221 - libusb isn't detected correctly in CMake
Sven-Hendrik Haase
In CMake I currently have trouble activating hidapi support as libusb-1.0 isn't ever correctly detected as it's searched for by the wrong name.
configure.ac correctly does this:
PKG_CHECK_MODULES([LIBUSB], [libusb-1.0], have_libusb=yes, have_libusb=no)
However, sdlchecks.cmake does this:
pkg_check_modules(LIBUSB libusb)
but it needs to be:
pkg_check_modules(LIBUSB libusb-1.0)
|
|
7fa5e95b
|
2020-12-09T07:23:47
|
|
Fixed bug 5213 - Add support to metal in iOS/tvOS simulator
Vincent Hamm
Xcode11 and ios13 added support for metal simulator.
Here is a quick and dirty patch to enable it. Pretty early and only tested on a few samples for now. Required mostly to enable metal support on correct version of ios, generate simulator compatible shaders and enforce buffer alignments on simulator (same as osx).
|
|
cb361896
|
2020-12-09T07:16:22
|
|
Fixed bug 5235 - All internal sources should include SDL_assert.h
Ryan C. Gordon
We should really stick this in SDL_internal.h or something so it's always available.
|
|
479db430
|
2020-12-09T06:56:34
|
|
Fixed bug 5250 - updaterev.sh failed using CMake Tools on VSCode Remote
Sebastian Vargas Vargas
Running CMake configure from a Windows Subsystem for Linux using Visual Studio Code Remote doesn't generate the header file with the current source revision, it throws "/home/sebva/SDL/build-scripts/updaterev.sh: 13: cannot create /mnt/c/Users/sebva/.vscode/extensions/ms-vscode-remote.remote-wsl-0.44.4/include/SDL_revision.h.new: Directory nonexistent".
|
|
88cb4962
|
2020-12-09T06:42:31
|
|
Fixed bug 5291 - SDL_SetRenderTarget unnecessarily changes target when current target is the native texture of the passed in texture
|
|
f2fff217
|
2020-12-09T06:24:40
|
|
Fixed bug 5374 - WGI: Use fast-pass strings.
Joel Linn
Eliminate additional heap allocation for short-lived HSTRINGs.
Uses `WindowsCreateStringReference()` to disable reference counting and memory management by the Window Runtime.
|
|
42c5b4ac
|
2020-12-09T06:17:55
|
|
Fixed bug 5366 - cmake build doesn't detect Metal on macOS
Tom Seddon
2nd time lucky, perhaps. patch 2 applies to current HEAD at time of writing - 4eb049c9bb1ca94efe3c40b57beda3169984d0cb from https://github.com/SDL-mirror/SDL.
This basically goes back to what was there originally, but now manually adding "-x objective-c" to the clang command line rather than "-ObjC". clang is then invoked without the "-x c" that was causing the problem, the snippet builds, and Metal is detected. (I had a quick trawl through the cmake code, but I couldn't see where this is handled.)
I was moved to try this after finding SDL's own CHECK_OBJC_SOURCE_COMPILES macro, and noting what it does: https://github.com/SDL-mirror/SDL/blob/4eb049c9bb1ca94efe3c40b57beda3169984d0cb/cmake/macros.cmake#L67
An alternative fix of course would be to use CHECK_OBJC_SOURCE_COMPILES instead of cmake's check_objc_source_compiles - but that had the same problem of getting confused by "return 0;". (Maybe that's because it's a macro? I'll defer to a cmake expert on this one.)
I decided in the end to err on the side of leaving things looking basically the same as they were before my first patch.
|
|
475405e0
|
2020-12-09T12:03:24
|
|
CMakeLists.txt: sync DYLIB_CURRENT_VERSION to Xcode project
|
|
250a0557
|
2020-12-09T12:01:10
|
|
fix bug #5384 -- define DLL_EXPORT in DLL builds and adjust begin_code.h
|
|
50203d58
|
2020-12-08T22:00:06
|
|
Fixed bug 5329 - SDL_SetWindowGrab(SDL_FALSE) fails to unlock cursor if window is partially offscreen
Ivan Mogilko
With SDL 2.0.12 under MS Windows, if the window is partially offscreen calling SDL_SetWindowGrab(w, SDL_TRUE) works, but subsequent call to SDL_SetWindowGrab(w, SDL_FALSE) does not work.
I tested this in both real program, and a small test app, where unlocking cursor worked perfectly while window is fully in desktop bounds, but did not work if it was at least few pixels outside.
For the reference, following code is enough to reproduce the issue:
#include <windows.h>
#include <SDL.h>
int WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd)
{
SDL_Init(SDL_INIT_VIDEO);
SDL_Window* w = SDL_CreateWindow("", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 400, 0);
bool grabbed = false;
bool want_quit = false;
while (!want_quit)
{
SDL_Event event;
while (SDL_PollEvent(&event))
{
switch (event.type)
{
case SDL_QUIT: want_quit = true; break;
case SDL_KEYDOWN:
if (event.key.keysym.scancode == SDL_SCANCODE_SPACE)
{
SDL_SetWindowGrab(w, static_cast<SDL_bool>(!grabbed));
grabbed = !grabbed;
}
}
}
}
SDL_DestroyWindow(w);
SDL_Quit();
return 0;
}
|
|
43aad966
|
2020-12-08T19:03:50
|
|
Fixed bug 5222 - Crash when running with -DHIDAPI=ON
Mathieu Eyraud
SDL dynamically loads libusb but does not check the return value of 'SDL_LoadFunction'.
Also libusb is loaded and initialized several time because 'SDL_hidapi_wasinit' is never set to true.
I made a patch if you want to test:
- check that 'hid_init' is called once and only once,
- check return value of 'hid_init',
- check return value of 'SDL_LoadFunction',
- check return value of 'SDL_malloc',
- add some debug logging.
|
|
a2098a47
|
2020-12-08T18:56:06
|
|
Updated SDL to 2.0.14 in preparation for release candidate
|
|
2a9591a9
|
2020-12-08T09:16:34
|
|
Accepted patch https://github.com/microsoft/vcpkg/blob/master/ports/sdl2/fix-space-in-path.patch
|
|
7f1c6e82
|
2020-12-08T09:13:08
|
|
Accepted patch https://github.com/microsoft/vcpkg/blob/master/ports/sdl2/enable-winrt-cmake.patch
|
|
7665f887
|
2020-12-08T09:07:21
|
|
Accepted patch https://github.com/microsoft/vcpkg/blob/master/ports/sdl2/disable-wcslcpy-and-wcslcat-for-windows.patch
|
|
695499ae
|
2020-12-08T09:04:28
|
|
Accepted patch https://github.com/microsoft/vcpkg/blob/master/ports/sdl2/disable-hidapi-for-uwp.patch
|
|
5610e5ae
|
2020-12-08T00:11:10
|
|
Makefile.os2: disable W303 (add -wcd=303 to CFLAGS)
newer OpenWatcom versions enable W303 by default. without this, we get
multiple "Parameter '%s' has been defined, but not referenced" warnings.
|
|
c9723c40
|
2020-12-07T09:38:21
|
|
Fixed potential hang in joystick close if the rumble thread is blocked for some reason
It's still possible to hang when shutting down, if the rumble thread is still hung, but it won't block indefinitely at runtime.
|
|
3c68051e
|
2020-12-04T15:47:28
|
|
Allow background input when testing game controllers
|
|
09909d02
|
2020-12-03T19:44:47
|
|
Fixed handling of BACK button on newer Xbox One S controllers
|
|
54e5136b
|
2020-12-03T18:17:04
|
|
Refactored Xbox One Bluetooth protocol and verified Xbox One S, Xbox Series X, and Xbox One Elite Series 2 controllers
|
|
1031231b
|
2020-12-03T18:17:03
|
|
Fixed duplicating a device between XInput and HIDAPI
|
|
59f28b7f
|
2020-12-03T18:17:01
|
|
Fixed whitespace
|
|
f487d63a
|
2020-12-03T18:16:56
|
|
Fixed crash when printing NULL wide character string
|
|
754286c6
|
2020-12-02T13:45:24
|
|
SDL Renderer: specify the correct flag when recreating the window
|
|
035f8f23
|
2020-12-02T13:37:59
|
|
SDL_RecreateWindow: allow clearing VULKAN when recreating the window
|