SDL

From SDL.NET

Simple DirectMedia Layer (SDL) is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used by MPEG playback software, emulators, and many popular games, including the award winning Linux port of "Civilization: Call To Power."


Simple DirectMedia Layer supports Linux, Windows, BeOS, MacOS Classic, MacOS X, FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX. There is also code, but no official support, for Windows CE, AmigaOS, Dreamcast, Atari, NetBSD, AIX, OSF/Tru64, RISC OS, and SymbianOS.


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.

Table of contents

C Libraries

SDL_image

SDL_image loads images as SDL surfaces, and supports the following formats:

  • BMP
  • PNM
  • XPM
  • LBM
  • PCX
  • GIF
  • JPEG
  • PNG
  • TGA


SDL.NET uses SDL_image for loading image formats so all of the formats listed above are supported by SDL.NET.

SDL_mixer

SDL.NET uses SDL_mixer for playing audio files. This means that it supports MikMod MOD, Timidity MIDI, Ogg Vorbis, and SMPEG MP3 libraries.


SDL_ttf

SDL.NET uses SDL_ttf for displaying text using TrueType fonts.

SMPEG

SDL.NET uses SMPEG for playing mpeg-1 video files and mp3 audio files.

SDL_gfx

The SDL_gfx library includes componants to draw graphic primitives, image opperations, perform framerate control and image filtering. SDL.NET implements SDL_gfx in an object oriented modal so that it closely ties in with its own data types. SDL_gfx allows SDL.NET to do advanced surface rotations and zooming, implement a framerate timer and draw primative objects and shapes.

.NET libraries

Tao.Sdl

Randy Ridge of the Tao Project (http://taoframework.com) and Dave Hudson worked on the native C bindings for the SDL libraries and Randy added them to Tao (http://taoframework.com). This gives the bindings and broader user base so additional work can be done on the bindings. SDL.NET will focus on the higher-level features.

See Also