Simple DirectMedia Layer https://libsdl.org
Find a file
Tyson Whitehead f05490d0e2 udev: Fix O(n^2) device walking issue (closes #9092)
I believe there was a O(n^2) device walking issues on startup

- MaybeAddDevice gets called for every device at startup
- MaybeAddDevice calls IsJoystick
- IsJoystick calls SDL_UDEV_GetProductInfo
- SDL_UDEV_GetProductInfo calls udev_enumerate_scan_devices
- udev_enumerate_scan_devices walks all the devices

Prior to commit 3b1e0e1 this was mostly masked as IsJoystick only
called SDL_UDEV_GetProductInfo when a JSIOCGNAME ioctl was
successful. This fixes the O(n^2) behaviour by directly getting
the device via udev_device_new_from_devnum (based on type, major,
and minor number) instead of enumerating everything via
udev_enumerate_scan_devices and matching on name.

(cherry picked from commit 6e1611cc77)
2024-03-24 11:49:50 -07:00
.github ci: update deprecated node.js 16 actions 2024-02-23 23:42:56 +01:00
acinclude autotools: a few libtool updates from mainstream 2024-01-28 21:50:42 +03:00
android-project Fix bug #9331 - SDL3 Android crash getVibrator() == null 2024-03-23 16:32:17 -07:00
android-project-ant
build-scripts autotools: a few libtool updates from mainstream 2024-01-28 21:50:42 +03:00
cmake cmake: check if CMP0087 exists before setting it (#8613) 2023-11-25 21:42:55 +00:00
docs gdk: Backport SDL3 MR #8844 2024-01-21 13:55:17 -05:00
include Add checks for memfd_create() and posix_fallocate() to the autotools build 2024-03-13 11:45:41 -04:00
mingw/pkg-support/cmake cmake: else() does not need an argument 2022-10-20 13:29:35 +02:00
src udev: Fix O(n^2) device walking issue (closes #9092) 2024-03-24 11:49:50 -07:00
test Don't test 10-bit pixel format conversion 2024-03-03 00:01:20 +03:00
VisualC Added the environment variable SDL_LOGGING to control default log output 2024-01-27 19:46:59 -08:00
VisualC-GDK gdk: Backport SDL3 MR #8844 2024-01-21 13:55:17 -05:00
VisualC-WinRT video: move standard c, sse and lsx implementations of yuv2rgb to its own source 2024-01-18 17:06:27 -08:00
visualtest Remove unneeded semicolon 2022-11-17 10:43:45 +01:00
wayland-protocols Support wayland fractional scale protocol 2022-11-29 16:37:02 -05:00
Xcode Updated to version 2.30.1 for release 2024-03-05 14:33:57 -08:00
Xcode-iOS/Demos [SDL2] pointer boolean (#8523) 2023-11-10 06:30:56 -08:00
.clang-format Commented out syntax that causes Visual Studio 2019 to complain on every edit 2022-12-02 00:43:46 -08:00
.editorconfig editorconfig: remove trailing whitespace in source code 2022-12-26 10:34:45 -08:00
.gitignore gdk: Backport SDL3 MR #8844 2024-01-21 13:55:17 -05:00
.wikiheaders-options wikiheaders: Bridge README files in the docs directory to wiki. 2023-02-28 11:46:46 -05:00
Android.mk Fixed building with the 16.1.4479499 Android toolchain 2023-06-03 23:55:56 -07:00
autogen.sh Simplified autogen.sh, thanks to @smcv for the tip 2022-05-05 11:54:24 -07:00
BUGS.txt Cleaned up a few more Bugzilla mentions. 2021-02-12 14:46:49 -05:00
cmake_uninstall.cmake.in
CMakeLists.txt wayland: Allocate the cursor shared memory buffer entirely in memory, if possible. 2024-03-12 21:17:29 -07:00
configure Add checks for memfd_create() and posix_fallocate() to the autotools build 2024-03-13 11:45:41 -04:00
configure.ac Add checks for memfd_create() and posix_fallocate() to the autotools build 2024-03-13 11:45:41 -04:00
CREDITS.txt
INSTALL.txt INSTALL.txt: Say "macOS" instead of "Mac OS X" in modern times. 2022-03-15 13:07:55 -04:00
LICENSE.txt Updated copyright for 2024 2024-01-01 13:19:49 -08:00
Makefile.in added missing FGREP to Makefile.in. fixed syntax. regenerated configure. 2022-11-24 17:00:20 +03:00
Makefile.minimal Split up CFLAGS construction so it can be overridden 2023-03-29 07:26:34 -07:00
Makefile.os2 Updated to version 2.30.1 for release 2024-03-05 14:33:57 -08:00
Makefile.pandora more fixes to standalone makefiles. 2021-11-13 21:56:20 +03:00
Makefile.w32 Updated to version 2.30.1 for release 2024-03-05 14:33:57 -08:00
README-SDL.txt
README.md Update and rename README.txt to README.md 2021-03-20 18:46:37 -04:00
sdl2-config-version.cmake.in Add documentation to autotoo'ls sdl2-config-version.cmake.in 2022-05-31 00:10:55 +02:00
sdl2-config.cmake.in cmake: allow users of sdl2-config.cmake to not add -mwindows to the link options 2023-04-18 14:10:12 -04:00
sdl2-config.in Revert "sdl2-config.in: Deprecate sdl2-config" 2022-11-18 06:53:13 -08:00
sdl2.m4 sdl2.m4: Call $PKG_CONFIG rather than hard-coding pkg-config 2024-01-01 08:27:02 -08:00
sdl2.pc.in cmake: use FindALSA.cmake to find ALSA library 2022-12-11 23:23:45 +01:00
SDL2.spec.in license: Fixed references to COPYING.txt that are now LICENSE.txt. 2021-02-18 11:07:26 -05:00
SDL2Config.cmake.in cmake: use FindALSA.cmake to find ALSA library 2022-12-11 23:23:45 +01:00
TODO.txt Fixed up legacy MoinMoin URLs at wiki.libsdl.org 2021-04-01 12:20:33 -04:00
WhatsNew.txt Added the environment variable SDL_LOGGING to control default log output 2024-01-27 19:46:59 -08:00

Simple DirectMedia Layer (SDL) Version 2.0

https://www.libsdl.org/

Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and popular games including Valve's award winning catalog and many Humble Bundle games.

More extensive documentation is available in the docs directory, starting with README.md

Enjoy!

Sam Lantinga (slouken@libsdl.org)