|
9325b22e
|
2020-05-29T21:26:32
|
|
Fixed bug 5113 - SDL_UpdateWindowSurfaceRects BitBlt the entire surface on Win32
Ryan C. Gordon
As discussed here:
https://discourse.libsdl.org/t/question-about-implementation-of-sdl-updatewindowsurfacerects/27561
"As you can see this function [WIN_UpdateWindowFramebuffer, in src/video/windows/SDL_windowsframebuffer.c] calls BitBlt on entire screen, even though it accepts the rects. Rects variable is not even used in this function at all. Now my question is why is that the case?"
|
|
d000c1cd
|
2020-05-29T21:22:11
|
|
Fixed bug 5155 - HIDAPI_JoystickDisconnected incorrect array shift
Anthony Pesch
I was looking into my own input bug and noticed an issue in the HIDAPI code while looking over it. I don't have a controller that goes down this path to test and try to provoke the issue, but it looks pretty straight forward.
The memmove to shift the joystick id array on disconnect isn't scaling the size by sizeof(SDL_JoystickID), likely corrupting the ids on disconnect.
|
|
a8400dc3
|
2020-05-29T16:31:05
|
|
Fixed bug 5105 - sndio support not working in dynamic mode (dlopen)
Giovanni Bajo
The CMake build system supports several audio frameworks for Linux: one of them is sndio.
All frameworks can be built with "runtime linking" (that is, using dlopen to load the library at runtime). In sdlchecks.cmake, there's code to do the same with sndio:
=================================================================
# Requires:
# - n/a
# Optional:
# - SNDIO_SHARED opt
# - HAVE_DLOPEN opt
macro(CheckSNDIO)
if(SNDIO)
# TODO: set include paths properly, so the sndio headers are found
check_include_file(sndio.h HAVE_SNDIO_H)
find_library(D_SNDIO_LIB sndio)
if(HAVE_SNDIO_H AND D_SNDIO_LIB)
set(HAVE_SNDIO TRUE)
file(GLOB SNDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/sndio/*.c)
set(SOURCE_FILES ${SOURCE_FILES} ${SNDIO_SOURCES})
set(SDL_AUDIO_DRIVER_SNDIO 1)
if(SNDIO_SHARED)
if(NOT HAVE_DLOPEN)
message_warn("You must have SDL_LoadObject() support for dynamic sndio loading")
else()
FindLibraryAndSONAME("sndio")
set(SDL_AUDIO_DRIVER_SNDIO_DYNAMIC "\"${SNDIO_LIB_SONAME}\"")
set(HAVE_SNDIO_SHARED TRUE)
endif()
else()
list(APPEND EXTRA_LIBS ${D_SNDIO_LIB})
endif()
set(HAVE_SDL_AUDIO TRUE)
endif()
endif()
endmacro()
=================================================================
The feature is gated by an option called SNDIO_SHARED. It is also fully implemented in SDL_sndioaudio.c
Unfortunately, it seems there is a missing line in CMakeLists.txt, so SNDIO_SHARED is not defined:
======================================================================
set_option(ALSA "Support the ALSA audio API" ${UNIX_SYS})
dep_option(ALSA_SHARED "Dynamically load ALSA audio support" ON "ALSA" OFF)
set_option(JACK "Support the JACK audio API" ${UNIX_SYS})
dep_option(JACK_SHARED "Dynamically load JACK audio support" ON "JACK" OFF)
set_option(ESD "Support the Enlightened Sound Daemon" ${UNIX_SYS})
dep_option(ESD_SHARED "Dynamically load ESD audio support" ON "ESD" OFF)
set_option(PULSEAUDIO "Use PulseAudio" ${UNIX_SYS})
dep_option(PULSEAUDIO_SHARED "Dynamically load PulseAudio support" ON "PULSEAUDIO" OFF)
set_option(ARTS "Support the Analog Real Time Synthesizer" ${UNIX_SYS})
dep_option(ARTS_SHARED "Dynamically load aRts audio support" ON "ARTS" OFF)
set_option(NAS "Support the NAS audio API" ${UNIX_SYS})
set_option(NAS_SHARED "Dynamically load NAS audio API" ${UNIX_SYS})
set_option(SNDIO "Support the sndio audio API" ${UNIX_SYS})
set_option(FUSIONSOUND "Use FusionSound audio driver" OFF)
dep_option(FUSIONSOUND_SHARED "Dynamically load fusionsound audio support" ON "FUSIONSOUND" OFF)
======================================================================
You can see that all frameworks define a "dep_option" NAME_SHARED, and SNDIO is the only one where the option is missing.
This means that runtime loading of sndio is never activated. If sndio is found at configuration time, it is always activated in "linked" mode, so that the final binary will have a load-time dependency with libsdnio. This is unfortunate.
To fix the problem, it is sufficient to add this line:
dep_option(SNDIO_SHARED "Dynamically load the sndio audio API" ${UNIX_SYS} ON "SNDIO" OFF)
I've verified that this fixes the bug, and sndio can now be dynamically loaded as expected.
|
|
2303d921
|
2020-05-29T16:28:56
|
|
Fixed bug 5145 - Fix whitespace in SDL_vulkan.h
Colin Caine
Everywhere else seems to use spaces.
See patch diffed from a fresh hg checkout yesterday.
|
|
bdfd1b68
|
2020-05-29T16:02:49
|
|
Fixed bug 5146 - SDL_RenderFillRect doesn't work in DirectFB
Lacky
It looks like refactoring of SDL2 internal API has broken SDL_RenderFillRect for DirectFB. In new version function SDL_RenderFillRect returns 0, but rectangle is not visible.
Replacing "count" with "len" in the argument list for SDL_memcpy in DirectFB_QueueFillRects fixes problem.
|
|
68e1731e
|
2020-05-29T15:40:17
|
|
Don't bother logging security exception getting the device serial number
This can happen anytime we haven't opened the device yet
|
|
eea450bc
|
2020-05-29T15:37:03
|
|
- Added exception handler for the new SecurityException in USBDevice getSerialNumber
|
|
ae9ff11b
|
2020-05-29T14:54:07
|
|
The zero happens at a higher level now
|
|
39c958bb
|
2020-05-29T14:48:39
|
|
Initialize the raw_map before getting controller mappings from the driver
|
|
2db04947
|
2020-05-29T14:48:05
|
|
Fixed variable names to be consistent across functions
|
|
345b4d7e
|
2020-05-29T13:37:21
|
|
Fixed bug 5161 - Autodetect controller mappings based on the Linux Gamepad Specification
Jan Bujak
I wrote a new driver for my gamepad on Linux. I'd like SDL to support it out-of-box, as currently it just treats it as a generic joystick instead of a gamepad. From what I can see the only way to do that is to either 1) pick one of the already supported controllers' PID, VID and button layouts and have my driver send that (effectively lying that it's something else), or 2) submit a preconfigured, hardcoded mapping to SDL.
Both of those, in my opinion, are silly when we already have the Linux Gamepad Specification which standarizes this:
https://www.kernel.org/doc/html/v4.15/input/gamepad.html
Unfortunately SDL doesn't make use of it currently. So I've took it upon myself to add it; patch is in the attachments.
Basically what the patch does is that if SDL finds no built-it controller mappings for a given joystick it then asks the joystick backend to autodetect it, and that uses the relevant evdev bits to figure out which button/axis is which. (See the specs for more details.)
With this patch applied my own driver for my controller works out-of-box with SDL with no extra configuration and is correctly recognized as a gamepad; this is also going to be the case for any other driver which follows the Linux Gamepad Specification.
|
|
e2dbed9c
|
2020-05-29T13:05:37
|
|
SDL_blit: Fix undefined bitshift operations
Arithmatic operations promote Uint8 to signed int. If the top bit of a
Uint8 is set, and it is left shifted 24 places, then the result is not
representable in a signed 32 bit int. This would be undefined behaviour
on systems where int is 32 bits.
|
|
aa259ed5
|
2020-05-28T15:18:41
|
|
wayland: Changed output removal in handle_surface_leave()
No longer needs an extra malloc, handles unexpected cases like the same
output being listed twice.
|
|
ce7ae4ec
|
2020-05-28T14:57:10
|
|
wayland: Move buffer copy into mime_data_list_add()
It makes it clearer who owns the memory, and more reasonable to free it on
failure in the creating function.
(and, of course, pacifies static analysis.)
|
|
22da9d4d
|
2020-05-28T14:47:55
|
|
wayland: assert that mmap() didn't return NULL.
In practice, it never _would_, but in theory it _might_, so this assertion
tells the static analyzer not to worry about it.
|
|
1a1f1704
|
2020-05-27T10:35:43
|
|
Don't include the iOS joystick driver if joysticks are disabled
|
|
57149c24
|
2020-05-27T10:27:20
|
|
Fixed building with --disable-joystick on iOS
|
|
cf01ee16
|
2020-05-27T10:27:04
|
|
Fixed building with --disable-joystick on Linux
|
|
e9f567c7
|
2020-05-27T10:14:08
|
|
Fixed building on iOS with MFI controllers disabled
|
|
97ca96bd
|
2020-05-27T10:13:01
|
|
Use nil instead of NULL for Objective-C objects
|
|
2aec184e
|
2020-05-27T09:57:51
|
|
Fixed mkdir warning when running iosbuild.sh multiple times
|
|
03a7abf8
|
2020-05-27T09:57:26
|
|
Fixed building with --disable-joystick on macOS
|
|
af5eb56c
|
2020-05-27T09:28:03
|
|
Fixed uninitialized variable warning
|
|
31916f11
|
2020-05-27T09:22:12
|
|
Fixed compiler warning building on FreeBSD
|
|
bcbaa4ec
|
2020-05-26T16:34:50
|
|
If there isn't a GetGlobalMouseState() implementation, fall back to the normal one.
|
|
437577f9
|
2020-05-26T16:29:26
|
|
Fixed bug 5141 - KMSDRM: manage SDL_GetGlobalMouseState()
Manuel Alfayate Corchete
On the KMSDRM backend, there is no such thing as a desktop, yet some programs could (and DO) use SDL_GetGlobalMouseState().
So I think its good idea that, in KMSDRM, it returns the same mouse coordinates anyway as SDL_GetMouseState() would return. There is nothing else it could return, as far as I can understand, since there is no desktop anyway.
This small patch does precisely that.
|
|
1df0a1e4
|
2020-05-26T16:27:00
|
|
Fixed bug 5140 - KMSDRM: Dynamic vsync toggle does not work
Manuel Alfayate Corchete
The KMSDRM backend was doing things wrong because of some small (but important) misconceptions on how KMS/DRM works: to implement a largely broken non-vsync refresh mechanism, the SwapWindow() function was issuing new pageflips before previous ones had completed, thus causing EBUSY returns, buffer mismanagement, etc... resulting in general breakage on vsync disabling from apps, that would not allow vsync to work again without KMSDRM video re-initialization.
To further clarify, on most DRM drivers async pageflips are NOT working nowadays, so all issued pageflips will complete on next VBLANK, NOT ASAP (calling drmModePageFlip() with the DRM_MODE_PAGE_FLIP_ASYNC flag will return error).
The old code was assuming that can just issue a synchronous (=on VBLANK) pageflip and then pass a 0 timeout to the pull() function so we do not wait for the pageflip event, thinking that this will lead to correct non-vsynced screen updates from the program: That is plain wrong.
Each pageflip has to be waite before issuing a new one, ALWAYS. And if we do not support ASYNC pageflips on the DRM driver level, then we are forced to wait for the next VBLANK. There is no way around it.
I have also added many comments on the KMSDRM code. This is needed for future reference for me or others who may need to look at this code: KMS/DRM terminology regarding what SYNC and ASYNC mean in pageflip terms, and where to do certain things and why, is not trivial. It is not desirable or possible to invest time on researching the same concepts every time there is need to dive into this code. So please leave all these comments in the patch.
|
|
15294e21
|
2020-05-26T13:54:47
|
|
Fixed iOS build
|
|
cc2fe84d
|
2020-05-26T13:19:48
|
|
Getting closer.
|
|
0713c579
|
2020-05-26T13:19:44
|
|
More Linux fixes.
|
|
c7d1dab1
|
2020-05-26T13:19:41
|
|
Rename Linux-only variable.
|
|
b820a81f
|
2020-05-26T13:19:35
|
|
Include SDL_hints.h.
|
|
de866e66
|
2020-05-26T13:19:29
|
|
Include SDL_hint.h.
|
|
abd58418
|
2020-05-26T13:19:19
|
|
Make some changes to SDL_SetThreadPriority to try and have SDL transparently handle more of the work.
1. Comment that SDL_SetThreadPriority will make any necessary system changes when applying priority.
2. Add a hint to override SDL's default behavior for scheduler policy.
3. Modify the pthreads SDL_SetThreadPriority so that instead of just using the current thread scheduler policy it will change it to a policy that should work best for the requested priority.
4. Add hint checks in SDL_SetThreadPriority so that #3 can be overridden if desired.
5. Modify the Linux SDL_SetThreadPriority so that in the case that policy, either by SDL defaults or from the hint, is a realtime policy it uses the realtime rtkit API.
6. Prior to calling rtkit on Linux make the necessary thread state changes that rtkit requires. Currently this is done every time as it isn't expected that SDL_SetThreadPriority will be called repeatedly for a thread.
|
|
77b0dad2
|
2020-05-25T20:55:29
|
|
cocoa: Change Caps Lock behavior to toggle instead of locking
It currently behaves like a locking key which is pressed
when Caps Lock is enabled and released when disabled. This
means that apps that trigger events on Caps Lock key down will
only fire these events every other time Caps Lock is pressed.
|
|
f16e6bfa
|
2020-05-25T14:10:51
|
|
Fixed creating a metal renderer without specifying a metal window
|
|
f176d7fd
|
2020-05-22T16:45:02
|
|
Added a note not to use XinputUap.dll for XInput support
|
|
600a2fc7
|
2020-05-21T04:01:37
|
|
locale: Removed unused variable.
|
|
a299fdd7
|
2020-05-21T03:52:48
|
|
sensor: Fixed compiler warnings on mingw64.
|
|
ba11122e
|
2020-05-21T03:48:56
|
|
locale: Fixed compiler warning on Visual Studio.
|
|
a6ca61d7
|
2020-05-21T00:06:09
|
|
wayland: update pointer position on initial enter event
|
|
b4e76b58
|
2020-05-20T17:32:23
|
|
sensor: Fix overaggressive search/replace. :)
|
|
27c38eb2
|
2020-05-20T17:22:52
|
|
sensor: Correct fix for redefinition of various symbols.
|
|
5fe34a40
|
2020-05-20T17:01:25
|
|
hidapi: Fix compiler warning.
|
|
c9d358bc
|
2020-05-20T16:59:35
|
|
sensor: Fix build on various Windows compilers with various predefinitions.
|
|
68777406
|
2020-05-20T16:58:33
|
|
windows: Fix calls to CoCreateInstance() so last parameter is a LPVOID *.
|
|
539125b8
|
2020-05-20T16:43:02
|
|
locale: Fixed compiler warning on WinRT.
|
|
8bd3b2c8
|
2020-05-20T16:34:19
|
|
configure: fix fcitx tests.
Otherwise Unix systems without D-Bus support will attempt to compile sources
they can't handle.
|
|
d66b7366
|
2020-05-20T16:15:14
|
|
locale: Patched to compile on Windows Phone.
|
|
a5c654d5
|
2020-05-19T13:22:01
|
|
configure: Just don't do the -idirafter on QNX.
The compiler understands it, but the "qcc" compiler driver doesn't, and the
standard Khronos headers upset QNX anyhow, since they try to include X11
headers in the __unix__ section.
|
|
72fdc805
|
2020-05-19T12:30:26
|
|
configure: -idirafter needs a space, -I doesn't.
Some compilers are apparently quite cranky about the -I not having a space!
|
|
475afe21
|
2020-05-19T12:08:05
|
|
configure: Do a real check for -idirafter anyhow.
(The CMake project cheats around this by asking "are we GCC or Clang?" and I'm
inclined to leave it like that for now.)
|
|
2f565b44
|
2020-05-19T11:52:15
|
|
configure: Regenerate configure script.
|
|
0e08d237
|
2020-05-19T11:48:22
|
|
configure: Not all compilers understand -idirafter, use -I instead.
If this is a problem, we can write a test for the compiler flag, but shouldn't
we _always_ use our Khronos headers instead of depending on the system...?
|
|
da54eb7c
|
2020-05-19T11:38:18
|
|
checker-buildbot.bat: Removed. This is clearly not going to work like this.
|
|
24a76b27
|
2020-05-19T04:01:03
|
|
build-scripts: Attempt at a static analysis batch file for Windows.
|
|
3808b120
|
2020-05-19T03:14:46
|
|
locale: Make sure C++ implementations (Haiku!) use C linkage.
|
|
20ed8019
|
2020-05-19T02:59:02
|
|
os2-buildbot.sh: Fix upload path.
|
|
a1d7410f
|
2020-05-19T02:56:02
|
|
windows-buildbot-zipper.bat: Attempt to update for new buildbot.
|
|
863776f8
|
2020-05-19T01:19:52
|
|
haiku: Another attempt at fixing build.
|
|
e53d39cf
|
2020-05-19T00:09:59
|
|
haiku: Patched to compile.
|
|
e11a665c
|
2020-05-18T21:20:11
|
|
raspberrypi-buildbot.sh: Fix output directory.
|
|
9db4e6ed
|
2020-05-18T21:10:20
|
|
os2-buildbot.sh: Fix output directory.
|
|
3195551b
|
2020-05-18T21:07:02
|
|
xcode: make sure locale sources are used in all targets.
|
|
7558d960
|
2020-05-18T20:18:34
|
|
OS/2: Forgot to add locale source dir to makefile.
|
|
c26c348a
|
2020-05-18T20:06:16
|
|
raspberrypi-buildbot.sh: Leave files in the right place, don't nuke build dir.
|
|
b0f41e14
|
2020-05-18T20:02:11
|
|
emscripten-buildbot.sh: Leave files in the right place, don't nuke build dir.
|
|
5358882b
|
2020-05-18T16:33:29
|
|
emscripten-buildbot.sh: the SDK path changed on the new build worker.
|
|
4c883383
|
2020-05-18T15:52:51
|
|
checker-buildbot.sh: Use Ninja, not GNU make, and expect scan-build in $PATH.
|
|
c1ef5497
|
2020-05-18T12:00:22
|
|
emscripten-buildbot.sh: target WebAssembly instead of asm.js.
Fixes Bugzilla #5132.
|
|
db4246f6
|
2020-05-17T21:23:17
|
|
Only set colorkey, if converted surface has no alpha channel (2979)
|
|
f6197aec
|
2020-05-17T20:45:55
|
|
Fix issue with colorkey, palette and format conversion
Set the colorkey information on the converted surface.
Test-case in bug 3826/2979, conflicting with bug 4798
|
|
39690a04
|
2020-05-15T21:33:47
|
|
Fix static analysis warning in SDL_render.c
|
|
5b65e0af
|
2020-05-15T21:12:23
|
|
Fixed bug 5100 - compilation CMake Android armeabi-v7a (Thanks Steve Robinson!)
fatal error: 'cpu-features.h' file not found on CMake Android armeabi-v7a
|
|
d31dac15
|
2020-05-14T21:54:51
|
|
docs: README-linux.md updated for a modern Ubuntu release.
|
|
ec2d7036
|
2020-05-14T21:49:29
|
|
docs: Fixed README-linux.md's line endings and word wrap.
|
|
2d5de8fa
|
2020-05-14T21:48:24
|
|
docs: Linux systems don't need to install wayland-protocols anymore.
We ship the protocol xml files we need with SDL's sources now.
|
|
daf360e0
|
2020-05-13T16:48:42
|
|
emscripten: Fix crash in SDL_SetWindowTitle().
This patch came from emscripten-ports, thanks!
Fixes Bugzilla #5133.
|
|
b47f577a
|
2020-05-11T14:36:23
|
|
Fixed bug 5098 - macOS CreateWindowFrom doesn't work with high-dpi displays
michaeljosephmaltese
Display ends up taking only 1/4 of the screen area. It needs to call "setWantsBestResolutionOpenGLSurface:highdpi", like when creating a window the normal way.
|
|
eadc8693
|
2020-05-11T14:31:04
|
|
Fixed bug 5103 - Port fcitx support to both fcitx 4 & 5
wengxt
Due to the new major fcitx version is coming close, the existing code need to be ported to use new Fcitx dbus interface.
The new dbus interface is supported by both fcitx 4 and 5, and has a good side effect, which is that it will work with flatpak for free. Also the patch remove the dependency on fcitx header. Instead, it just hardcodes a few enum value in the code so need to handle the different header for fcitx4 or 5.
|
|
33642b47
|
2020-05-08T21:50:23
|
|
Android: robustness if locale failed to be detected at start
|
|
2491f16f
|
2020-05-08T21:40:28
|
|
Android: send SDL_LOCALECHANGED when locale changes
|
|
2a4ddeee
|
2020-05-08T11:15:38
|
|
Android: fix missing prototype warning
|
|
0059ace0
|
2020-05-08T11:00:51
|
|
Android: factorize asset manager code (bug 2131 and 4297)
|
|
1e5dd06f
|
2020-05-06T12:19:58
|
|
Added support for the HORI Real Arcade Pro on Mac OSX and Linux
|
|
cd2bdaef
|
2020-05-06T11:19:52
|
|
ControllerList: add PDP Faceoff Deluxe Audio Switch Controller and HORI Real Arcade Pro V Switch Edition
|
|
0e5b48d2
|
2020-05-06T11:19:47
|
|
ControllerList: add NACON Revolution Unlimited (and it's dongle) and NACON Daija fight stick.
|
|
b3a34c94
|
2020-05-06T03:18:25
|
|
hid: Add Microsoft Precision Mouse to the joystick blacklist.
Same deal as the Razer keyboards, it hangs the enumeration.
|
|
85d97410
|
2020-05-06T03:13:44
|
|
hid: Cleanup Windows joystick blacklist code, to make additions easier.
|
|
b0a20a15
|
2020-05-05T12:48:55
|
|
stdlib: Fixed compiler warnings about int vs size_t.
|
|
0eb6512b
|
2020-05-04T13:19:26
|
|
Fixed bug 5121 - Use SDL_calloc instead of calloc in Wayland_CreateWindow
meyraud705
'SDL_Windows::driverdata' of a Wayland window is allocated by calloc in 'Wayland_CreateWindow' but freed by SDL_free in 'Wayland_DestroyWindow'.
|
|
65ad4534
|
2020-05-04T13:17:43
|
|
Improvement for bug 3446 - The haptic API does not allow to select the direction axes
meyraud705
I see how the documentation is confusing. I think that the choice of the axis is an implementation detail. The documentation should state the goal of this value, so I propose this wording:
"Use this value to play an effect on the steering wheel axis. This provides
better compatibility across platforms and devices as SDL will guess the
correct axis."
Value could even be renamed 'SDL_HAPTIC_STEERING_AXIS'.
For Linux, sending an effect on the X axis with a Logitech wheel works. Others brands don't have driver for Linux as far as I know.
|
|
11723411
|
2020-05-04T10:16:10
|
|
Added support for the Razer Kishi
|
|
fa23e3d0
|
2020-05-04T02:27:29
|
|
locale: Implemented SDL_GetPreferredLocales().
This was something I proposed a long time ago, Sylvain Becker did
additional work on it, then back to me.
Fixes Bugzilla #2131.
|
|
8601996f
|
2020-05-03T22:13:48
|
|
hints: Allow specifying audio device metadata.
This is only supported on PulseAudio. You can set a description when opening
your audio device that will show up in pauvcontrol, which lets you set
per-stream volume levels.
Fixes Bugzilla #4801.
|
|
11fef299
|
2020-05-03T20:56:18
|
|
hints: Fixed a doxygen comment.
|
|
8b60d39c
|
2020-05-02T14:43:17
|
|
Fixed bug 5112 - CMake won't compile in VS2019
dark_sylinc
Trying to build SDL with VS2019 using CMake will encounter a linking error
More specifically:
1>SDL_string.obj : error LNK2019: unresolved external symbol memset referenced in function SDL_vsnprintf_REAL
|
|
05a60c2e
|
2020-04-29T15:32:08
|
|
Fixed showrev.sh when using the Bourne shell
|
|
beab15b0
|
2020-04-27T19:12:02
|
|
Added additional logging to track down why the NVIDIA controller doesn't send the back button
|
|
b0b12e46
|
2020-04-27T13:31:10
|
|
Fixed running on older versions of iOS
|