|
155fdc7a
|
2020-07-19T21:48:17
|
|
kmsdrm: settle with first card that has a connected connector
Previously the first card with non-empty connectors, encoders
and crtcs would be selected, however KMSDRM_VideoInit could still reject
it if the connector was not connected. This allow finding the first card
(in a multi GPU setup) that is actually connected to a display.
|
|
b78b88f7
|
2020-07-19T21:46:41
|
|
kmsdrm: fix typo
|
|
75fe4b14
|
2020-07-19T19:53:57
|
|
Added comment about window creation behaviour in KMSDRM.
|
|
2f660c4f
|
2020-07-19T19:11:02
|
|
Delete windata variable no longer needed in KMSDR_SetDisplayMode().
|
|
3a1d7d9c
|
2020-07-19T19:09:15
|
|
Surfaces have to be recreated immediately from KMSDRM_SetDisplayMode().
|
|
b6a818b6
|
2020-07-19T18:45:29
|
|
Fix SDL_Window recreation: drmModeSetCrtc() has to be called everytime the EGL and GBM surfaces are recreated.
|
|
71e9df99
|
2020-07-19T08:55:01
|
|
Fixed bug 5231 - Fix for hardware cursor: size and alpha-premultiplication.
Manuel Alfayate Corchete
I noticed pt2-clone had problems with it's optional hardware mouse on the KMSDRM backend: cursor had a transparent block around it.
So I was investigating and it seems that a GBM cursor needs it's pixels to be alpha-premultiplied instead of straight-alpha.
A
lso, I was previously relying on "manual testing" for the cursor size, but it's far better to use whatever the DRM driver recommends via drmGetCap(): any working driver should make a size recommendation via drmGetCap(), so that's what we use now. I took this decision because I found out that the AMDGPU driver reported working cursor sizes that would appear garbled on screen, and only the recommended cursor size works.
|
|
b0ca8efd
|
2020-07-17T22:21:37
|
|
Re-add check for Metal on x86, where it's not supported.
|
|
b7a4fdd3
|
2020-07-17T11:16:35
|
|
metal: Make sure we have a command buffer available before trying to present.
This fixes a case where you render to the backbuffer, then render to a render
target, set the current target back to the backbuffer, and then present
without drawing anything else; in this circumstance, the Present command
would never happen.
Fixes Bugzilla #5011.
|
|
b5affd12
|
2020-07-16T13:28:59
|
|
Patched to compile.
|
|
3b38e61a
|
2020-07-16T13:25:50
|
|
winrt: Fix casting a pointer to int.
Fixes Bugzilla #5202.
|
|
8babda2c
|
2020-07-16T13:18:19
|
|
egl: SDL_EGL_LoadLibaryOnly() shouldn't set _this->gl_config.driver_loaded = 1
This is handled in in the higher-level SDL_GL_LoadLibrary().
All uses of SDL_EGL_LoadLibrary (which calls the Only version) are just
target-specific wrappers for their own GL_LoadLibrary hook, with two
exceptions which now handle driver_loaded correctly (although it's
questionable if these init-if-no-one-did-it-correctly-already code blocks
should exist at all, fwiw).
Fixes Bugzilla #5190.
|
|
af71510c
|
2020-07-16T04:43:08
|
|
assert: Implement SDL_TriggerBreakpoint for Apple ARM hardware.
|
|
45f5eb06
|
2020-07-16T04:37:14
|
|
configure: On Apple platforms, only exclude Vulkan on x86.
This catches both x86-64 and ARM devices.
|
|
968b830d
|
2020-07-15T16:12:44
|
|
Fixed bug 5232 - SDL2 configure script detects Apple Silicon Macs as iPhones; fails to build due to missing components
jackmacwindowslinux
I'm testing my application that uses SDL2 on the new Apple Silicon Macs. I set up the SDL 2.0.12 source code from the website and tried to build it. The first issue I ran into was that it was always building OpenGL ES, even if --disable-video-opengles was passed to configure. OpenGL ES headers do not seem to be present on the Apple Silicon macOS SDK, except for the iOS SDK headers. Then I had problems with the joystick driver, where some classes used on iOS were not available on macOS.
After looking through the configure.ac script a bit, I found that iOS targets are selected when the build host matches "arm*-apple-darwin*". Clang on macOS 11.0 on arm64 reports the host as "arm64-apple-darwin20.0.0", which matches the iOS target. This means that ARM Mac compilation will always be detected as iOS. Unfortunately, there doesn't seem to be an easy way to detect Mac vs. iOS targets, since they now both use the same triplet & compiler for building.
I'm not sure what the best way to fix this is, but maybe there could be an additional target flag to specify whether to build for macOS or iOS? This might break compatibility, though: with this approach, either all old scripts that used configure to build for iOS fail, or all new builds on macOS without a flag fail (silently?).
|
|
cab1a715
|
2020-07-15T10:15:52
|
|
Fixed bug 5233 - PS3 Gamepad Motion Control not correctly ignored on Linux
Igor Morgado
PS3 Controller motion sensor string is being reported as
`Gasia Co.,Ltd PS(R) Gamepad Motion Sensors`
But `src/joystick/SDL_gamecontroller.c` line1690 only ignores if matches the string `Controller Motion Sensors`.
```
#if defined(__LINUX__)
if (name && SDL_strstr(name, "Controller Motion Sensors")) {
/* Don't treat the PS3 and PS4 motion controls as a separate game controller */
return SDL_TRUE;
}
#endif
```
Therefore, SDL is mapping 2 Game controllers instead one.
Maybe reduce the substring to match `Motion Sensors` instead.
A simple log from my application is shown below:
INFO: Game controller device 0 - PS3 Controller:PS3 Controller found.
INFO: Controller 0: Player 0: 054c:0268:8111 - PS3 Controller - PS3 Controller - Gasia Co.,Ltd PS(R) Gamepad
INFO: Game controller device 1 - PS3 Controller:PS3 Controller found.
INFO: Controller 1: Player 1: 054c:0268:8111 - PS3 Controller - PS3 Controller - Gasia Co.,Ltd PS(R) Gamepad Motion Sensors
|
|
8669a87f
|
2020-07-14T21:13:27
|
|
Reuse X11 connection from availability check
Instead of creating an X11 connection to test that X11 is available,
closing the connection, and then reconnecting for real, use the same
connection to handle both cases.
The X11 connection retry delay mechanism in the case where X11 is
dynamically loaded has been removed. It was only necessary to avoid
authetnication token reuse from the XOpenDisplay call that used to
exist in X11_Available. Now that this call is only made once, it
is no longer needed.
Also drop unused and inapplicable code from a comment.
***
|
|
a78b9763
|
2020-07-14T19:18:16
|
|
Reuse Wayland connection from availability check
|
|
052a1373
|
2020-07-12T19:11:15
|
|
Merge VideoBootStrap::available into VideoBootStrap::create
The two are only ever called together, and combining them makes it possible
to eliminate redundant symbol loading and redundant attempts to connect
to a display server.
|
|
49ec6558
|
2020-07-11T08:10:02
|
|
fix bug #5228 -- Add AltiVec detection for FreeBSD.
thanks Piotr Kubaj.
|
|
b1626295
|
2020-07-08T17:28:34
|
|
cmake: Fix building with -DSDL_HAPTIC=Off
|
|
fe97f01b
|
2020-07-05T22:33:10
|
|
configure: corretly print --enable-arm-simd default value.
|
|
6aec6da4
|
2020-06-28T17:45:07
|
|
stdinc: Let Clang static analysis see more C runtime functions.
For systems without strlcpy and strlcat, just declare them as if they exist;
the analyzer possibly still knows the details of these functions and can
utilize that in its analysis.
Most of this patch was from meyraud705 at gmail and Martin Gerhardy. Thanks!
Fixes Bugzilla #5163.
|
|
0e98040d
|
2020-06-28T16:23:05
|
|
joystick: Linux joysticks now recover better from dropped events.
Fixes Bugzilla #4830.
|
|
e594a673
|
2020-06-27T16:25:47
|
|
emscripten: Introduce SDL_HINT_EMSCRIPTEN_ASYNCIFY
See https://github.com/emscripten-core/emscripten/issues/10746
and
https://github.com/emscripten-ports/SDL2/pull/112
Fixes Bugzilla #4997.
|
|
01af7b02
|
2020-06-27T16:22:50
|
|
emscripten: support pseudo-synchronous screen refresh and events update using asyncify
|
|
3b71ebec
|
2020-06-27T02:38:13
|
|
configure: Accidentally deleted a ')'
Sorry!
|
|
e294639a
|
2020-06-27T02:00:58
|
|
cmake: Fix Metal detection on macOS/iOS.
Apparently the "-x objective-c" made it down to the linker, who then treats
the .o file as Objective-C source code. Apparently the -ObjC argument does
the same thing but gets ignored by the linker.
Fixes Bugzilla #4988.
|
|
363fd52b
|
2020-06-26T23:30:59
|
|
configure/cmake: Disable ARM SIMD and NEON by default.
It's buggy at the moment.
|
|
694fea8a
|
2020-06-26T21:37:29
|
|
video: Make SDL_CreateWindow use SDL_Init(SDL_INIT_VIDEO), not SDL_VideoInit.
Otherwise, the video subsystem won't deinitialize during SDL_Quit().
Fixes Bugzilla #5067.
|
|
50fd0dd1
|
2020-06-26T21:35:54
|
|
test: testspriteminimal wasn't calling SDL_Quit() on exit.
|
|
1947ca70
|
2020-06-26T20:16:43
|
|
video: Changed SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS to default to FALSE.
Fixes Bugzilla #5106. (and probably many others, too!)
|
|
21482c15
|
2020-06-26T20:11:32
|
|
cmake: Bump minimum required CMake to 3.0.0 and mark link libraries PRIVATE.
Fixes Bugzilla #2992.
|
|
d955d63b
|
2020-06-26T17:42:30
|
|
cmake: Build Linux-specific files like the configure script does.
Otherwise we unconditionally compile things we shouldn't.
Fixes Bugzilla #5175.
|
|
718e1fb8
|
2020-06-26T22:45:15
|
|
cmake: Fix building with -DSDL_SENSOR=Off
|
|
dd753ce7
|
2020-06-26T15:04:57
|
|
cmake: Fix building with -DSDL_POWER=Off
Fixes Bugzilla #5193.
|
|
ce293eed
|
2020-06-23T10:12:24
|
|
Fixed bug 5208 - Fix libGL loading on OpenBSD
|
|
c2b85305
|
2020-06-23T10:09:29
|
|
Fixed bug 5209 - cpuinfo recognize OpenBSD ARM
Brad Smith
OpenBSD/arm only supports ARMv7 and and not any CPUs that do not support NEON.
|
|
4ba0a847
|
2020-06-22T23:24:02
|
|
core/linux/SDL_threadprio.c: fix build against older glibc versions
|
|
b9f55b6d
|
2020-06-19T10:37:14
|
|
Fixed bug 5199 - Fix KMSDRM_CreateWindow() segfault when starting L?VE2D engine.
Manuel Alfayate Corchete
This small patch fixes the KMSDRM_CreateSurfaces() call in KMSDRM_CreateWindow(), that was segfaulting deeper into SDL internals because the windata->viddata pointer wasn't set before the KMSDRM_CreateSurfaces() call.
So that's what this small patch does.
Now, L?VE2D works perfectly well on the Raspberry Pi 3, instead of just segfaulting.
|
|
56622f9c
|
2020-06-17T10:09:07
|
|
Fixed bug 5126 - MinGW compile error SDL_windowssensor.c
Martin Gerhardy
SDL_windowssensor.c includes InitGuid.h - but it should be initguid.h
|
|
48989e2a
|
2020-06-17T08:47:27
|
|
Reverted comment change in previous commit
|
|
a7ff6e96
|
2020-06-17T08:44:45
|
|
Fixed overflow in surface pitch calculation
|
|
f1d5ced1
|
2020-06-17T12:48:40
|
|
x11: Fix spurious keyboard focus events
|
|
efe09359
|
2020-06-15T10:31:16
|
|
Fix compile without DIRECTX
|
|
9db16a65
|
2020-06-14T12:21:02
|
|
fix permissions of some project files
|
|
16389654
|
2020-06-14T12:05:56
|
|
fix watcom build of SDL_test_common.c
|
|
7c0986fb
|
2020-06-12T10:30:46
|
|
Fixed bug 4938 - Suggestion: rename SDL_PIXELFORMAT_BGR888 to SDL_PIXELFORMAT_XBGR8888
Ellie
I just tripped over this: stb_image when requesting 3 channels with 8-bit actually returns them as 3 bytes per pixel with no alignment, so basically 4 pixels are 12 bytes with no padding (0...2, 3...5, 6...8, and 9...11). This I would have naively expected to be called RGB888 or BGR888, since there is no "dead" unused byte as I would expect for something called e.g. RGBX8888.
However, SDL2's SDL_PIXELFORMAT_BGR888 uses 4 bytes, same as SDL_PIXELFORMAT_BGRX8888, even though the latter appears to be a longer storage format - which it isn't, internally. It's just swapped, in byte order X, B, G, R (instead of BGRX). So why isn't the macro name also swapped, as "XBGR888" instead of just "BGR888"?
I find the formats therefore named inconsistently, and unless there is a reason for this I suggest these changes:
1. deprecate SDL_PIXELFORMAT_BGR888 in favor of a new SDL_PIXELFORMAT_XBGR8888
and
2. deprecate SDL_PIXELFORMAT_RGB888 in favor of a new SDL_PIXELFORMAT_XRGB8888
|
|
2aa8974f
|
2020-06-11T12:03:33
|
|
Add SDL_SIMDRealloc
|
|
20aada0e
|
2020-06-10T09:38:43
|
|
Fixed bug 5170 - Build fails when using Visual Studio 2017 with Windows 10 SDK 10.0.19041.0 in uwp
JackBoosY
In src/video/winrt/SDL_winrtgamebar.cpp line 55:
virtual HRESULT STDMETHODCALLTYPE add_VisibilityChanged(
__FIEventHandler_1_IInspectable *handler,
Windows::Foundation::EventRegistrationToken *token) = 0;
The macro __FIEventHandler_1_IInspectable defined in windows.fondation.h(Windows10 SDK 10.0.17763.0) line 3576:
#define __FIVector_1_Windows__CFoundation__CPoint ABI::Windows::Foundation::Collections::__FIVector_1_Windows__CFoundation__CPoint_t
but no longer exists in Windows 10 SDK 10.0.19041.0.
After searching this macro in the sdk include path, I found that it was defined in many header files. But it should be replaced in windows.system.h .
|
|
4d15b5b8
|
2020-06-10T09:36:10
|
|
Fixed building with Visual Studio 2019
|
|
44f50c64
|
2020-06-09T21:47:41
|
|
Fixed bug 5171 - PollEvent impacts performance in 2.0.12
On some systems, GetClipCursor() impacts performance when called frequently, so only call it every once in a while to make sure we haven't lost our capture.
|
|
511a9702
|
2020-06-09T21:43:00
|
|
Fixed whitespace
|
|
aefe19ff
|
2020-06-09T11:31:39
|
|
Added support for the NACON Revolution Pro Controller 3 and the GameStop PS4 Fun Controller
|
|
6f241bd5
|
2020-06-09T10:47:29
|
|
Fixed build
|
|
086be21e
|
2020-06-09T10:47:27
|
|
ControllerList: add support for NACON asymetric controller and Revolution 3, Hori mini wireless ps4 controller, and 2 PDP switch controllers
|
|
3b76109f
|
2020-06-09T10:47:25
|
|
ControllerList: remove giotek controller from list - vid/pid appears to be reused in bunch of devies including ones with different fw/protocol and treating as ps4 controller breaks them.
|
|
a9cfac38
|
2020-06-09T10:47:23
|
|
Controller: Deadzone improvements
|
|
9fa8d6d0
|
2020-06-08T17:07:55
|
|
Define constants not available on older kernels
|
|
3ac24bfc
|
2020-06-08T17:01:50
|
|
Fixed mouse drag with an external mouse on iOS
|
|
d0947c14
|
2020-06-04T12:30:25
|
|
Fixed exception if getManifestEnvironmentVariables() is called without a current SDL activity
|
|
ff53521b
|
2020-06-04T12:26:57
|
|
Fixed Bluetooth audio output on Apple TV
|
|
cced5eb9
|
2020-06-04T09:23:18
|
|
Fixed bug 5169 - Can not build current sources because of recent thread management changes
Manuel Alfayate Corchete
I'm trying to build SDL2 with threads support here in GNU/Linux, both X86 and ARM, and it does not seem to be possible ATM:
/home/manuel/src/SDLLLL/src/core/linux/SDL_threadprio.c:233:26: error: 'rtkit_max_realtime_priority' undeclared (first use in this function)
|
|
958c4282
|
2020-06-04T09:13:49
|
|
Fixed build warning
|
|
49501a98
|
2020-06-04T09:10:49
|
|
Updated configure with changes from configure.ac
|
|
22ce194b
|
2020-06-03T14:58:38
|
|
Make sure SDL_locale.h is included in the Xcode Framework for macOS
|
|
b9d5aebb
|
2020-06-03T14:56:35
|
|
Make sure SDL_locale.h is included in the Xcode Framework for tvOS
|
|
550b209e
|
2020-06-03T14:26:37
|
|
Make sure SDL_locale.h is included in the Xcode Framework
|
|
60435712
|
2020-06-03T16:42:19
|
|
video: Set window->surface NULL after freeing it.
Otherwise, when SDL_CreateWindowFramebuffer() is called again, it will return
the free'd surface instead of creating a new one.
|
|
eea0b0e0
|
2020-06-02T17:08:31
|
|
Fixed bug 5168 - Memory leak in RAWINPUT_JoystickOpen
meyraud705
Variable 'hwdata' is not freed in RAWINPUT_JoystickOpen if device->driver->OpenJoystick() fails.
|
|
ac1f174a
|
2020-06-02T17:02:37
|
|
Fixed bug 5167 - Memory leak in GuessXInputDevice
meyraud705
Variable 'devices' is not freed if function GuessXInputDevice, in SDL_xinputjoystick.c, return early.
|
|
06267f50
|
2020-06-02T16:59:54
|
|
Fixed whitespace in SDL_vulkan.h
|
|
d48c97c4
|
2020-06-02T16:57:20
|
|
Fixed bug 5147 - KMSDRM: SetWindowFullscreen() failing with SDL_WINDOW_FULLSCREEN_DESKTOP
Manuel Alfayate Corchete
This patch is needed so programs that do this work as expected:
1) Start in a different video mode than the mode used by the system and then...
2) Try to go fullscreen with the mode originally used by the system via SetWindowFullScreen() with the SDL_WINDOW_FULLSCREEN_DESKTOP flag.
An example would be pt2-clone in https://github.com/8bitbubsy/pt2-clone.
This program does this:
Starts with:
video.window = SDL_CreateWindow("", SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED, screenW, screenH, windowFlags);
and then, *IF* the user has configured it in fullscreen mode in its .ini, it tries to go fullscreen with the desktop mode:
SDL_SetWindowFullscreen(video.window, SDL_WINDOW_FULLSCREEN_DESKTOP);
This sequence of operations is currently failing because SDL_SetDisplayModeForDisplay() in SDL_video.c fails because display->desktop_mode is not being initialized with its correct value: SetDisplayMode() in SDL_kmsdrmvideo.c will not be able to set the mode because it detects the mode to have a driverdata of 0x0 ("if (!modedata)") and rightfully returns an error.
So, the included patch fixes this small problem, and programs that first change the video mode and then try to go fullscreen with the system video mode will now work.
The patch simply fixes an small omission, but its really needed now that dynamic video mode changing was implemented on the KMSDRM backend.
|
|
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.
|