Simple Directmedia Layer
Go to file
Ryan C. Gordon ca9a321715
render: GL/GLES now draw lines almost perfectly matching software renderer.
One place known to differ in a significant way is a single line segment that
starts and ends on the same point; the GL renderers will light up a single
pixel here, whereas the software renderer will not. My current belief is this
is a bug in the software renderer, based on the wording of the docs:

"SDL_RenderDrawLine() draws the line to include both end points."

You can see an example program that triggers that difference in Bug #2006.

As it stands, the GL renderers might _also_ render diagonal lines differently,
as the the Bresenham step might vary between implementations (one does three
pixels and then two, the other does two and then three, etc). But this patch
causes those lines to start and end on the correct pixel, and that's the best
we can do, and all anyone really needs here.

Not closing any bugs with this patch (yet!), but here are several that it
appears to fix. If no other corner cases pop up, we'll call this done.

Reference Bug #2006.
Reference Bug #1626.
Reference Bug #4001.
...and probably others...
2021-09-19 15:47:24 -04:00
.github CI: Set default shell for Vita build. 2021-09-14 16:21:41 -07:00
VisualC Allow usage of the new Condition Variable code with Critical Sections 2021-09-17 19:38:09 -04:00
VisualC-WinRT winrt: Update SDL-UWP to VS2019 2021-09-08 06:26:26 -10:00
Xcode Update Xcode project to add SDL_triangle.{c,h} 2021-08-19 00:10:59 +02:00
Xcode-iOS Added weak linking to hidapi framework 2020-11-17 10:29:36 -08: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: Make sure all wiki API pages reference CategoryAPI. 2021-09-01 00:19:54 -04:00
cmake cmake: fix a bunch of things to properly link without LOADSO enabled. 2021-08-24 00:01:46 -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 triggering of Clang's -Wexpansion-to-defined in SDL_endian.h 2021-09-18 10:44:32 -04:00
src render: GL/GLES now draw lines almost perfectly matching software renderer. 2021-09-19 15:47:24 -04:00
test testmouse.c: remove unused local var. 2021-09-10 00:01:20 +03: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 Add testmouse 2021-09-09 13:46:58 -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 Allow usage of the new Condition Variable code with Critical Sections 2021-09-17 19:38:09 -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 configure: fix vulkan enablement for windows after commit 13ec545936 2021-09-05 05:37:20 +03:00
configure.ac configure: fix vulkan enablement for windows after commit 13ec545936 2021-09-05 05:37:20 +03: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)