Go to file
David Gow 25f9e32b0e wayland: Don't let multiple threads dispatch wayland events at once
wl_display_dispatch() will block if there are no events available, and
while we try to avoid this by using SDL_IOReady() to verify there are
events before calling it, there is a race condition between
SDL_IOReady() and wl_display_dispatch() if multiple threads are
involved.

This is made more likely by the fact that SDL_GL_SwapWindow() calls
wl_display_dispatch() if vsync is enabled, in order to wait for frame
events. Therefore any program which pumps events on a different thread
from SDL_GL_SwapWindow() could end up blocking in one or other of them
until another event arrives.

This change fixes this by wrapping wl_display_dispatch() in a new mutex,
which ensures only one thread can compete for wayland events at a time,
and hence the SDL_IOReady() check should successfully prevent either
from blocking.
2021-10-02 11:03:20 -04:00
.github Add MinGW-w64 builds to GitHub Actions 2021-09-20 08:58:43 -07:00
VisualC fix syntax error in SDL.vcxproj.filters 2021-09-27 14:10:02 +03:00
VisualC-WinRT winrt: Update SDL-UWP to VS2019 2021-09-08 06:26:26 -10:00
Xcode Removed X11 code from Apple Xcode project 2021-09-24 10:59:35 -07:00
Xcode-iOS Xcode-iOS Demos: Add CFBundleShortVersionString to Info.plist 2021-09-29 16:39:31 -07:00
acinclude acinclude/libtool.m4: Apply macos11 patch from libtool bug #44605 2021-01-09 00:11:20 +03:00
android-project Let Android know that we can handle USB devices 2021-08-04 13:13:22 -07:00
android-project-ant Added the old ant Android build project structure 2017-10-28 12:11:25 -07:00
build-scripts wikiheaders.pl: Don't treat chars in `code` blocks as markdown. 2021-09-30 17:34:25 -04:00
cmake wayland: Require xkbcommon 0.5.0 or newer (2014-10-18) 2021-09-23 17:45:38 -04:00
debian Updated to version 2.0.17 for development 2021-08-10 15:02:36 -07:00
docs Update Docs 2021-09-10 19:49:47 -07:00
include include: Fix markdown in a doxygen comment. 2021-09-30 10:04:09 -04:00
src wayland: Don't let multiple threads dispatch wayland events at once 2021-10-02 11:03:20 -04:00
test testdraw2: display FPS similarly to testsprit2. fix helper syntax 2021-09-23 22:28:45 +02:00
visualtest fix permissions of a few files 2021-02-22 15:44:32 +03:00
wayland-protocols wayland: Add support for text-input-unstable-v3 2021-07-29 14:43:46 -07:00
.gitignore Added testgeometry to the git ignore file 2021-09-22 09:30:28 -07:00
Android.mk minor watcom build fixes. 2021-05-15 00:22:50 +03:00
BUGS.txt Cleaned up a few more Bugzilla mentions. 2021-02-12 14:46:49 -05:00
CMakeLists.txt cmake: Remove warning about CFLAGS environment variable. 2021-09-30 10:02:54 -04:00
CREDITS.txt Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 17:33:46 +02:00
INSTALL.txt development list has moved to forum 2021-06-01 16:49:13 -07:00
LICENSE.txt license: Fixing the license file to be correctly scooped up by Github automation 2021-02-17 13:08:13 -05:00
Makefile.in configure: Fixes to make SDL link as C++ on Haiku. 2021-08-06 14:08:50 -04:00
Makefile.minimal Added a dummy sensor driver 2018-08-21 13:29:21 -07:00
Makefile.os2 Update Makefiles OS2 and PSP 2021-08-19 00:10:59 +02:00
Makefile.pandora Added a dummy sensor driver 2018-08-21 13:29:21 -07:00
Makefile.psp Update Makefiles OS2 and PSP 2021-08-19 00:10:59 +02:00
Makefile.wiz Added a dummy sensor driver 2018-08-21 13:29:21 -07:00
README-SDL.txt More HTTPS changes in the documentation. 2017-02-16 16:52:03 -05:00
README.md Update and rename README.txt to README.md 2021-03-20 18:46:37 -04: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 SDL2Config.cmake: Clean it up a bit, remove gcc-style SDL2_LIBRARIES 2021-07-08 14:55:33 -07:00
TODO.txt Fixed up legacy MoinMoin URLs at wiki.libsdl.org 2021-04-01 12:20:33 -04:00
WhatsNew.txt Enable AAUDIO driver for Android 2021-08-10 14:50:43 -07:00
autogen.sh bump minimum required autoconf version and revise autogen.sh 2021-04-14 23:20:40 +03:00
cmake_uninstall.cmake.in Fixed bug 3867 - Can't find install_manifest.txt when running 'uninstall' target 2017-10-12 08:44:45 -07:00
configure regenerated configure 2021-09-24 04:03:24 +03:00
configure.ac wayland: Require xkbcommon 0.5.0 or newer (2014-10-18) 2021-09-23 17:45:38 -04:00
sdl2-config-version.cmake.in cmake: Forgot to add this file to revision control. 2020-02-25 14:52:03 -05:00
sdl2-config.cmake.in sdl2-config.cmake.in: Make SDL2::SDL2 work with MinGW, fixes #3665 2021-07-08 14:55:33 -07:00
sdl2-config.in build: Don't duplicate Libs in Libs.private in pkg-config file 2020-04-12 13:24:36 +01:00
sdl2.m4 acinclude & sdl2.m4 updates: 2020-12-22 17:00:28 +03:00
sdl2.pc.in rename PKG_CONFIG_LIBS_PRIV to PKGCONFIG_LIBS_PRIV 2021-04-14 21:40:50 +03:00

README.md

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)