SDL (Simple Directmedia Layer) can be best described as the open-source equivalent to Direct X, but easier to use.
SDL is a media library designed to give programmers low level access to a machine's video, audio and control functions. It is cross-platform - implementations already exist for a wide variety of systems (including Linux, Windows, BeOS, MacOS Classic, MacOS X, FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX).
GamePark Holdings is making this a standard part of the GP2X development kit. Developers will be able to take advantage of the wide range of SDL documentation, libraries and applications that already exist when writing or porting applications to the GP2X. A typical development tactic is to develop the game simultaneously on your desktop system and on the GP2X.
Coding with SDL
SDL is written in C, but works with C++ natively, and has bindings to several other languages, including Ada, Eiffel, Java, Lua, ML, Perl, PHP, Pike, Python, and Ruby. (Taken from the official website.)
SDL features include:
- 2D Graphics (initializing the window/screen, blitting, direct access to the video buffer, ...)
- Basic audio
- User input
- File I/O
- providing an environment for OpenGL (not supported on the GP2X (for now))
More features are provided by the SDL standard libraries:
- SDL_image - Multiple graphics format loader
- SDL_mixer - Sound effect and music mixer
- SDL_net - Network operations
- SDL_rtf - RTF rendering
- SDL_ttf - TrueType font rendering
- SDL_svg - SVG rendering
- See Libraries for more libraries.
Getting started with SDL (in general)
- The Official SDL website
- The Official SDL Documentation Wiki -- SDL function reference, tutorials, and various code examples
- Wikipedia article on SDL
- Collection of SDL resources and tutorials
- DevHub - SDL Tutorials
- Make a shoot'em'up with SDL and C++
About SDL & the GP2X
- SDL FAQ.
- Getting started with GP2X development (Mac, Windows, Linux) tutorials for getting started on the GP2X
- SDL Joystick mapping
- User FAQ: How to install the SDL Libraries on the GP2X (runtime libraries, not developement libraries)