Simple DirectMedia Layer, 簡(jiǎn)稱(chēng)SDL,是一個(gè)自由的跨平臺(tái)的多媒體開(kāi)發(fā)包,主要通過(guò)OpenGL和2D視頻幀緩沖(framebuffer)提供對(duì)音頻、鍵盤(pán)、鼠標(biāo)、游戲操縱桿(joystick)和3D硬件的底層訪問(wèn)。它被廣泛的應(yīng)用于MPEG回放軟件、模擬器和多個(gè)著名游戲中,如獲得大獎(jiǎng)的《文明:權(quán)傾天下》(Civilization: Call To Power)的Linux移植版本。它的官方站點(diǎn)是:http://www.libsdl.org/ ,還有一個(gè)非常個(gè)性的LOGO(圖1)。

在Win32編程中,如果要操縱2D圖像,可以選擇使用GDI或者DirectDraw,前者速度較慢,而后者是特定針對(duì)Microsoft平臺(tái)的,在非Win32平臺(tái)上移植會(huì)帶來(lái)很大的麻煩。這時(shí),你可以選擇使用SDL。SDL支持多種平臺(tái):Linux、Windows, BeOS, MacOS Classic, MacOS X, FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX和QNX,同時(shí)也部分支持部分其他平臺(tái):Windows CE, AmigaOS, Dreamcast, Atari, NetBSD, AIX, OSF/Tru64, RISC OS和SymbianOS。當(dāng)然SDL本身是針對(duì)2D圖像編程的,如果使用到3D編程,那么需要將SDL和OpenGL結(jié)合使用。
SDL是用C編寫(xiě)的,但是也支持C++,同時(shí)其他多種語(yǔ)言,下面給出了其他語(yǔ)言的SDL的開(kāi)發(fā)包的相關(guān)信息:
·Ada
AdaSDL - http://sourceforge.net/projects/adasdl/
·C#
SDL.Net - http://cs-sdl.sourceforge.net/
·Eiffel
ewg - http://ewg.sourceforge.net/
·Erlang
ESDL - http://www.ericsson.com/cslab/~dgud/esdl/
·Euphoria
SDL_Wrap - http://www.rapideuphoria.com/sdl_wrap.zip
·Guile
guile-sdl - http://sourceforge.net/projects/guile-sdl/
·Java
JSDL - http://jsdl.sourceforge.net/
sdljava - http://sdljava.sourceforge.net
·Lisp
CL-SDL - http://cl-sdl.sourceforge.net/
SDL for Corman Common Lisp - http://www.balooga.com/lisp_sdl.php3
·Lua
luaSDL - http://lua-users.org/wiki/LuaModuleLuaSdl
·ML
SDLML - http://www.HardcoreProcessing.com/Freeware/SDLML.html
OCamlSDL - http://ocamlsdl.sourceforge.net/
·Objective C
SDLOBJC - http://savannah.nongnu.org/projects/sdlobjc/
·Pascal
SDL4Freepascal - http://sdl4fp.sourceforge.net/
JEDI-SDL - http://www.delphi-jedi.org/Jedi:TEAM_SDL_HOME
·Perl
SDLPerl - http://sdl.perl.org
·PHP
PHP SDL module - http://phpsdl.sourceforge.net
·Pike
Natively supported (module SDL) - http://pike.ida.liu.se/
·Pliant
Pligame - http://pligame.sourceforge.net/
·Python
PyGame - http://pygame.seul.org/
·Ruby
Ruby/SDL - http://www.kmc.kyoto-u.ac.jp/~ohai/index.en.html
RUDL - http://rudl.sourceforge.net


