kc3-lang/SDL/src

Branch :


Log

Author Commit Date CI Message
e410b34f 2020-07-24 22:24:03 stdlib: Corrected implementation of SDL_wcsncmp. It was a copy/paste of SDL_strcmp, apparently, not SDL_strncmp, so it ignored the maxlen parameter. Thanks to Jack Powell for pointing this out!
c7eb557d 2020-07-20 10:09:07 kmsdrm: do not leak drmModeConnector Previously conn was leaked on the success path (when available was set to SDL_TRUE).
412b21b0 2020-07-20 11:42:23 Rename the gbm device struct from gbm to gbm_dev for better readabilty.
155fdc7a 2020-07-19 21: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-19 21:46:41 kmsdrm: fix typo
75fe4b14 2020-07-19 19:53:57 Added comment about window creation behaviour in KMSDRM.
2f660c4f 2020-07-19 19:11:02 Delete windata variable no longer needed in KMSDR_SetDisplayMode().
3a1d7d9c 2020-07-19 19:09:15 Surfaces have to be recreated immediately from KMSDRM_SetDisplayMode().
b6a818b6 2020-07-19 18:45:29 Fix SDL_Window recreation: drmModeSetCrtc() has to be called everytime the EGL and GBM surfaces are recreated.
71e9df99 2020-07-19 08: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.
b7a4fdd3 2020-07-17 11: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-16 13:28:59 Patched to compile.
3b38e61a 2020-07-16 13:25:50 winrt: Fix casting a pointer to int. Fixes Bugzilla #5202.
8babda2c 2020-07-16 13: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.
cab1a715 2020-07-15 10: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-14 21: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-14 19:18:16 Reuse Wayland connection from availability check
052a1373 2020-07-12 19: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-11 08:10:02 fix bug #5228 -- Add AltiVec detection for FreeBSD. thanks Piotr Kubaj.
b1626295 2020-07-08 17:28:34 cmake: Fix building with -DSDL_HAPTIC=Off
0e98040d 2020-06-28 16:23:05 joystick: Linux joysticks now recover better from dropped events. Fixes Bugzilla #4830.
e594a673 2020-06-27 16: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-27 16:22:50 emscripten: support pseudo-synchronous screen refresh and events update using asyncify
694fea8a 2020-06-26 21: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.
1947ca70 2020-06-26 20:16:43 video: Changed SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS to default to FALSE. Fixes Bugzilla #5106. (and probably many others, too!)
ce293eed 2020-06-23 10:12:24 Fixed bug 5208 - Fix libGL loading on OpenBSD
c2b85305 2020-06-23 10: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-22 23:24:02 core/linux/SDL_threadprio.c: fix build against older glibc versions
b9f55b6d 2020-06-19 10: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-17 10: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-17 08:47:27 Reverted comment change in previous commit
a7ff6e96 2020-06-17 08:44:45 Fixed overflow in surface pitch calculation
f1d5ced1 2020-06-17 12:48:40 x11: Fix spurious keyboard focus events
efe09359 2020-06-15 10:31:16 Fix compile without DIRECTX
16389654 2020-06-14 12:05:56 fix watcom build of SDL_test_common.c
2aa8974f 2020-06-11 12:03:33 Add SDL_SIMDRealloc
20aada0e 2020-06-10 09: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 .
44f50c64 2020-06-09 21: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-09 21:43:00 Fixed whitespace
aefe19ff 2020-06-09 11:31:39 Added support for the NACON Revolution Pro Controller 3 and the GameStop PS4 Fun Controller
6f241bd5 2020-06-09 10:47:29 Fixed build
086be21e 2020-06-09 10: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-09 10: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-09 10:47:23 Controller: Deadzone improvements
9fa8d6d0 2020-06-08 17:07:55 Define constants not available on older kernels
3ac24bfc 2020-06-08 17:01:50 Fixed mouse drag with an external mouse on iOS
ff53521b 2020-06-04 12:26:57 Fixed Bluetooth audio output on Apple TV
cced5eb9 2020-06-04 09: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-04 09:13:49 Fixed build warning
60435712 2020-06-03 16: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-02 17: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-02 17:02:37 Fixed bug 5167 - Memory leak in GuessXInputDevice meyraud705 Variable 'devices' is not freed if function GuessXInputDevice, in SDL_xinputjoystick.c, return early.
d48c97c4 2020-06-02 16: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-29 21: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-29 21: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.
bdfd1b68 2020-05-29 16: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.
ae9ff11b 2020-05-29 14:54:07 The zero happens at a higher level now
39c958bb 2020-05-29 14:48:39 Initialize the raw_map before getting controller mappings from the driver
2db04947 2020-05-29 14:48:05 Fixed variable names to be consistent across functions
345b4d7e 2020-05-29 13: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-29 13: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-28 15: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-28 14: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-28 14: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-27 10:35:43 Don't include the iOS joystick driver if joysticks are disabled
57149c24 2020-05-27 10:27:20 Fixed building with --disable-joystick on iOS
cf01ee16 2020-05-27 10:27:04 Fixed building with --disable-joystick on Linux
e9f567c7 2020-05-27 10:14:08 Fixed building on iOS with MFI controllers disabled
97ca96bd 2020-05-27 10:13:01 Use nil instead of NULL for Objective-C objects
03a7abf8 2020-05-27 09:57:26 Fixed building with --disable-joystick on macOS
af5eb56c 2020-05-27 09:28:03 Fixed uninitialized variable warning
31916f11 2020-05-27 09:22:12 Fixed compiler warning building on FreeBSD
bcbaa4ec 2020-05-26 16:34:50 If there isn't a GetGlobalMouseState() implementation, fall back to the normal one.
437577f9 2020-05-26 16: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-26 16: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-26 13:54:47 Fixed iOS build
cc2fe84d 2020-05-26 13:19:48 Getting closer.
0713c579 2020-05-26 13:19:44 More Linux fixes.
c7d1dab1 2020-05-26 13:19:41 Rename Linux-only variable.
b820a81f 2020-05-26 13:19:35 Include SDL_hints.h.
de866e66 2020-05-26 13:19:29 Include SDL_hint.h.
abd58418 2020-05-26 13: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-25 20: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-25 14:10:51 Fixed creating a metal renderer without specifying a metal window
f176d7fd 2020-05-22 16:45:02 Added a note not to use XinputUap.dll for XInput support
600a2fc7 2020-05-21 04:01:37 locale: Removed unused variable.
a299fdd7 2020-05-21 03:52:48 sensor: Fixed compiler warnings on mingw64.
ba11122e 2020-05-21 03:48:56 locale: Fixed compiler warning on Visual Studio.
a6ca61d7 2020-05-21 00:06:09 wayland: update pointer position on initial enter event
b4e76b58 2020-05-20 17:32:23 sensor: Fix overaggressive search/replace. :)
27c38eb2 2020-05-20 17:22:52 sensor: Correct fix for redefinition of various symbols.
5fe34a40 2020-05-20 17:01:25 hidapi: Fix compiler warning.
c9d358bc 2020-05-20 16:59:35 sensor: Fix build on various Windows compilers with various predefinitions.
68777406 2020-05-20 16:58:33 windows: Fix calls to CoCreateInstance() so last parameter is a LPVOID *.
539125b8 2020-05-20 16:43:02 locale: Fixed compiler warning on WinRT.
d66b7366 2020-05-20 16:15:14 locale: Patched to compile on Windows Phone.
3808b120 2020-05-19 03:14:46 locale: Make sure C++ implementations (Haiku!) use C linkage.
863776f8 2020-05-19 01:19:52 haiku: Another attempt at fixing build.
e53d39cf 2020-05-19 00:09:59 haiku: Patched to compile.
db4246f6 2020-05-17 21:23:17 Only set colorkey, if converted surface has no alpha channel (2979)