# Simple DirectMedia Layer 2.0

This is the SDL2 wiki. SDL3 is [over here](/SDL3)!

## Future Support

While we will accept GitHub pull requests and may release critical fixes, we have no further planned releases of SDL 2.0.

For new development, we recommend starting with [SDL 3.0](https://github.com/libsdl-org/SDL). For projects that need to continue using SDL 2.0, we recommend [sdl2-compat](https://github.com/libsdl-org/sdl2-compat) which is both ABI (binary drop in) and API compatible.

Many issues in SDL 2.0 have been resolved in sdl2-compat, and if you're still seeing an issue once you switch, please [report it](https://github.com/libsdl-org/sdl2-compat/issues)!

## What is it?

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/Direct3D/Metal/Vulkan. It is used by video playback software, emulators, and popular games including [Valve](http://valvesoftware.com)'s award winning catalog and many [Humble Bundle](https://www.humblebundle.com) games.

SDL officially supports Windows, macOS, Linux, iOS, and Android. Support for other platforms may be found in the source code.

SDL is written in C, works natively with C++, and there are bindings available for several other languages, including C# and Python.

SDL 2.0 is distributed under the [zlib license](https://www.libsdl.org/license.php). This license allows you to use SDL freely in any software.

This is the SDL wiki; SDL's main website is [libsdl.org](https://libsdl.org/).

This wiki is your portal to documentation and other resources for SDL 2.0.

## Using the SDL documentation Wiki

- [Introduction](Introduction)

  An introduction to the features in SDL 2.0.<br/>Includes a Migration Guide from 1.2 to 2.0!

- [Source Code](SourceCode)

  How to download the source code to SDL.

- [Installation](Installation)

  How to install SDL on your platform of choice and link your program against it.

- API reference by name ([Functions](CategoryAPI), [Structures](CategoryAPIStruct), and [Enumerations](CategoryAPIEnum)) or [by Category](APIByCategory)

  The official documentation for the API.  Look here to find detailed information about the functions, structures, and enumerations.

- [Tutorials](Tutorials)

  Want to learn about a feature in SDL you haven't used before?  Here's a great place to get started!

- [Articles](Articles)

  A sampling of the articles that have been written about SDL.

- [Libraries](Libraries)

  Additional libraries to extend SDL functionality.

- [Books](Books)

  Looking for more information than you can get online?  Check out the books listed here.

- [FAQs](FAQs)

  A few of the most commonly asked questions about using SDL are answered here.

- [Discord Server](https://discord.gg/BwpFGBWsv8)

  Feel free to ask questions and talk with other developers using SDL2 via discord.

- [Forums](https://discourse.libsdl.org/)

  A great place to keep up with the latest news, help other users out, and ask questions.

- [Contributing](https://wiki.libsdl.org/SDL3/README-documentation-rules)

  Users wishing to contribute content to the wiki should follow the guidelines provided in this guide.

## API References

- [API by category](APIByCategory)
- [Complete API index](CategoryAPI)
- [All functions](CategoryAPIFunction)
- [All structures/unions](CategoryAPIStruct)
- [All enums](CategoryAPIEnum)
- [All macros](CategoryAPIMacro)

We hope you find everything you are looking for and enjoy using SDL.  If anything is not addressed somewhere here, feel free to [open an issue](https://github.com/libsdl-org/SDL/issues) or [submit a pull request](https://github.com/libsdl-org/SDL/pulls).

*Enjoy!*

