Go to file
Steven Noonan 085a276d6c
egl: implement callbacks for defining custom EGL attributes
Depending on the underlying EGL library, it may be desirable to
conditionally set some specific EGL attributes depending on available
extensions and other application state.

SDL's EGL usage makes this a little bit complicated because:

- there are multiple functions used to set up a working EGL context
- some of these functions take different types of EGL attributes
  (EGLAttrib vs EGLint)
- the EGL extension list before creating an EGLDisplay differs from the
  extension list after (i.e. display vs client extensions)
- all of the above happens in a single SDL_CreateWindow call

This leaves no place for the application to discover what EGL extensions
are available and provide custom attribute lists.

Until now, if a developer wants to add a custom EGL attribute for
eglGetPlatformDisplay, eglCreateWindowSurface or eglCreateContext, they
needed to patch SDL itself. This is very undesirable, since such
developers would have to disable the SDL dynapi in order to maintain
compatibility with their needs.

This patch implements some callbacks which developers can use to
dynamically generate custom EGL attributes for SDL to use during
SDL_CreateWindow.
2022-11-10 18:06:12 -08:00
.github workflows: Check we can screen-scrape the SDL_REVISION from Linux builds 2022-10-22 09:27:10 -07:00
VisualC updated VS project file 2022-10-06 18:03:28 +03:00
VisualC-GDK move SDL_windowstaskdialog.h contents into SDL_windowsmessagebox.c 2022-09-16 20:03:50 +03:00
VisualC-WinRT Add UWP-ARM64 Support. 2022-10-29 09:43:26 -07:00
Xcode cmake+xcode: only create SDL2::SDL2main target when it does not exist again 2022-10-04 21:15:09 +02:00
Xcode-iOS/Demos Updated iOS demos Xcode project 2022-09-28 01:10:23 -07: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
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 docs: Add notes about Emscripten audio quirks. 2022-10-28 16:08:23 -04:00
include egl: implement callbacks for defining custom EGL attributes 2022-11-10 18:06:12 -08:00
mingw/pkg-support/cmake cmake: else() does not need an argument 2022-10-20 13:29:35 +02:00
src egl: implement callbacks for defining custom EGL attributes 2022-11-10 18:06:12 -08:00
test revert replace AM_PATH_SDL2 usage with corresponding PKG_CHECK_MODULES. 2022-11-07 21:15:30 +03: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
CMakeLists.txt cmake: on Apple, check for presence of an OBJC compiler 2022-11-03 15:03:47 +01: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 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 watcom: add ENABLE_WERROR option to makefiles 2022-10-08 23:41:07 +02:00
Makefile.pandora more fixes to standalone makefiles. 2021-11-13 21:56:20 +03:00
Makefile.w32 watcom: add ENABLE_WERROR option to makefiles 2022-10-08 23:41:07 +02:00
README-SDL.txt
README.md
SDL2.spec.in
SDL2Config.cmake.in ci: Test cmake build script on Android 2022-06-15 11:11:49 -07:00
TODO.txt
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
configure build: Regenerate ./configure 2022-10-22 09:27:10 -07:00
configure.ac build: Add a mechanism to mark builds with vendor info 2022-10-22 09:27:10 -07: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)