Simple DirectMedia Layer https://libsdl.org
Find a file
Nintorch 60a59fa557 Include OS detection in Emscripten joystick GUID
This PR modifies the Emscripten joystick backend to detect the user's OS and store its ID in the GUID, because different OSes might need different mappings for the same controllers.
I'm not sure if different browsers on the same OS can also have different mappings, but if they can, browser detection can be added to the GUID too if needed.

This PR also makes the GUID use `SDL_HARDWARE_BUS_USB` instead of `SDL_HARDWARE_BUS_UNKNOWN`, similarly to how Android and MFI backends always use `SDL_HARDWARE_BUS_BLUETOOTH` and GameInput, XInput, and RawInput backends always use `SDL_HARDWARE_BUS_USB`.
2026-04-21 07:35:28 -10:00
.github policy: Clarify that "AI" means specific things. 2026-04-15 15:38:20 -04:00
android-project Use singleTop launchMode for SDLActivity on Android 2026-04-11 20:04:46 +02:00
build-scripts wikiheaders: Don't escape . chars in manpage's brief section. 2026-04-15 13:28:52 -04:00
cmake cmake: emscripten/clang does not support -Wformat* (anymore) 2026-04-07 00:53:56 +02:00
docs [N-Gage] Remove optimisations except for native texture handling prior to some rework of the rendering back-end 2026-04-18 19:54:30 +02:00
examples Fix potential leak in camera example 2026-04-21 07:27:58 -04:00
include hints: Correct the cursor DPI scaling hint 2026-04-20 10:33:10 -04:00
src Include OS detection in Emscripten joystick GUID 2026-04-21 07:35:28 -10:00
test test: use SDL_test for event handling 2026-04-14 02:46:42 +02:00
VisualC testtray: created VS project and added new click callbacks 2026-02-05 11:08:05 -08:00
VisualC-GDK gdk: Update Suspend/Resume best practices. 2026-03-07 11:19:09 -05:00
wayland-protocols wayland: bind cursor-shape-v1 at protocol version 2 2026-04-14 10:22:48 -04:00
Xcode Hiding OpenGLES API deprecation since iOS 12.0 warning 2026-02-15 10:57:07 -08:00
.clang-format Add CHECK_PARAM as a conditional macro in clang-format 2026-04-03 11:47:41 -04:00
.clang-tidy Fix size of memcpy in SDL_AudioDeviceFormatChangedAlreadyLocked 2023-08-05 14:14:45 -04:00
.editorconfig .editorconfig: Remove excess apostrophe at *.cocci 2024-06-16 09:18:17 -07:00
.gitignore Updated .gitignore for png test data 2025-10-10 08:59:27 -07:00
.wikiheaders-options wikiheaders: Generate a current list of supported environment variables. 2025-09-02 15:49:52 -04:00
AGENTS.md AGENTS.md: Change "may not" to "must not". 2026-04-15 17:26:54 -04:00
Android.mk GPU: OpenXR integration (#14837) 2026-01-30 17:18:51 -05:00
BUGS.txt Added a Discord link to BUGS.txt 2025-01-13 16:42:50 -08:00
CLAUDE.md CLAUDE.md: Just copy the text from AGENTS.md in here for now. 2026-04-16 13:51:49 -04:00
CMakeLists.txt atomic: Fix missing full memory barrier on GCC/Clang 2026-04-19 06:34:45 -04:00
CREDITS.md Updated the credits for SDL 3.0 2025-01-13 16:42:50 -08:00
INSTALL.md Add a link to docs/INTRO-mingw.md 2025-03-06 16:25:17 -08:00
LICENSE.txt Updated copyright for 2026 2026-01-01 09:40:08 -08:00
README.md Revert "Update README.md" 2025-11-16 01:15:10 +03:00
WhatsNew.txt Added SDL_HINT_MOUSE_DPI_SCALE_CURSORS 2025-12-09 17:12:08 -08:00

Simple DirectMedia Layer (SDL for short) is a cross-platform library designed to make it easy to write multi-media software, such as games and emulators.

You can find the latest release and additional information at: https://www.libsdl.org/

Installation instructions and a quick introduction is available in INSTALL.md

This library is distributed under the terms of the zlib license, available in LICENSE.txt.

Enjoy!

Sam Lantinga (slouken@libsdl.org)