Simple Directmedia Layer
Go to file
ulatekh ec58a817ef Fixes made in response to running a static code analyzer under MS Windows.
Most of these are probably harmless, but the changes to SDL_immdevice.c and SDL_pixels.c appear to have fixed genuine bugs.

SDL_audiocvt.c: By separating the calculation of the divisor, I got rid of the suspicion that dividing a double by an integer led to loss of precision.
SDL_immdevice.c: Added a missing test, one that could have otherwise led to dereferencing a null pointer.
SDL_events.c, SDL_gamecontroller.c, SDL_joystick.c, SDL_malloc.c, SDL_video.c: Made it clear the return values weren't used.
SDL_hidapi_shield.c: The size is zero, so nothing bad would have happened, but the SDL_memset() was still being given an address outside of the array's range.
SDL_dinputjoystick.c: Initialize local data, just in case IDirectInputDevice8_GetProperty() isn't guaranteed to write to it.
SDL_render_sw.c: drawstate.viewport could be null (as seen on line 691).
SDL.c: SDL_MostSignificantBitIndex32() could return -1, though I don't know if you want to cope with that (what I did) or SDL_assert() that it can't happen.
SDL_hints.c: Replaced boolean tests on pointer values with comparisons to NULL.
SDL_pixels.c: Looks like the switch is genuinely missing a break!
SDL_rect_impl.h: The MacOS static checker pointed out issues with the X comparisons that were handled by assertions; I added assertions for the Y comparisons.
SDL_yuv.c, SDL_windowskeyboard.c, SDL_windowswindow.c: Checked error-result returns.
2022-11-16 12:43:20 -05:00
.github ci: Disable emscripten build time tests 2022-11-16 15:42:08 +01:00
VisualC Added simple BLE Steam Controller support on all platforms 2022-11-10 19:17:04 -08:00
VisualC-GDK Added simple BLE Steam Controller support on all platforms 2022-11-10 19:17:04 -08:00
VisualC-WinRT Move SDL_mslibc.c into the source file list 2022-11-13 11:09:38 -08:00
Xcode The SDL2::SDL2 target in SDL2.framework needs to see the SDL2 include folder 2022-11-15 19:22:47 +01:00
Xcode-iOS/Demos The iOS and tvOS demos link SDL statically, not as a framework 2022-11-14 10:59:23 -08:00
acinclude autotools: revised and silenced esound detection a bit. 2022-09-24 20:01:04 +03:00
android-project Reverted game controller buttons from interacting with message box dialogs 2022-10-06 12:10:46 -07:00
android-project-ant Added the old ant Android build project structure 2017-10-28 12:11:25 -07:00
build-scripts build-scripts/fnsince.pl: Deal with new point-release system. 2022-10-25 14:03:32 -04:00
cmake JANITORIAL : Correct some more spelling mistakes (#6489) 2022-11-06 11:49:37 -08:00
docs N3DS: Document the SDL_GetBasePath behaviour. 2022-11-14 21:24:10 -08:00
include Sync SDL wiki -> header 2022-11-15 05:25:16 +00:00
mingw/pkg-support/cmake cmake: else() does not need an argument 2022-10-20 13:29:35 +02:00
src Fixes made in response to running a static code analyzer under MS Windows. 2022-11-16 12:43:20 -05:00
test cmake: add time out to tests to avoid ci timeouts 2022-11-16 15:42:08 +01:00
visualtest remove all unnecessary stuff from visualtest configury. 2021-12-21 20:01:02 +03:00
wayland-protocols Add support for X11 primary selection (#6132) 2022-09-14 09:28:35 -07:00
.clang-format Disable formatting not supported by Visual Studio 2019 2022-05-27 15:29:21 -07:00
.editorconfig .editorconfig: Use correct path for wayland-protocols 2022-08-23 06:28:04 -07:00
.gitignore build: Expand version info in SDL_REVISION and SDL_GetRevision() 2022-10-22 09:27:10 -07:00
.wikiheaders-options wikiheaders.pl: changes to make this usable with external projects. 2022-06-15 23:26:24 -04:00
Android.mk fix permissions of Android.mk 2022-10-01 04:25:40 +03:00
BUGS.txt Cleaned up a few more Bugzilla mentions. 2021-02-12 14:46:49 -05:00
CMakeLists.txt cmake: enable SDL_TEST by default for emscripten 2022-11-16 15:42:08 +01: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 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 2022 2022-01-03 09:40:21 -08:00
Makefile.in build: Add a mechanism to mark builds with vendor info 2022-10-22 09:27:10 -07:00
Makefile.minimal build libSDL2_test too with Makefile.minimal 2021-11-14 01:10:32 +03:00
Makefile.os2 remove duplicated SDL_hidapi_steam.c additions to watcom makefiles. 2022-11-11 12:51:30 +03:00
Makefile.pandora more fixes to standalone makefiles. 2021-11-13 21:56:20 +03:00
Makefile.w32 remove duplicated SDL_hidapi_steam.c additions to watcom makefiles. 2022-11-11 12:51:30 +03: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.in ci: Test cmake build script on Android 2022-06-15 11:11:49 -07:00
TODO.txt Fixed up legacy MoinMoin URLs at wiki.libsdl.org 2021-04-01 12:20:33 -04:00
WhatsNew.txt Revert "Disable the RAWINPUT joystick driver by default" 2022-10-17 17:43:06 -07:00
autogen.sh Simplified autogen.sh, thanks to @smcv for the tip 2022-05-05 11:54:24 -07: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 Fixed building without linux/input.h 2022-11-11 10:25:52 -08:00
configure.ac Fixed building without linux/input.h 2022-11-11 10:25:52 -08: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: only add -Wl,--undefined=WinMain when building an executable 2022-09-27 07:00:02 +03:00
sdl2-config.in sdl2-config.in: Deprecate sdl2-config 2022-10-31 07:06:03 -07:00
sdl2.m4 sdl2.m4: Deprecate AM_PATH_SDL2 in favour of PKG_CHECK_MODULES 2022-10-31 07:06:03 -07:00
sdl2.pc.in Compatible with including as <SDL2/SDL.h> 2022-07-28 20:34:34 -07: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)