SDL的介绍
SDL是Simple DirectMedia Layer(简易直控媒体层)的缩写。它是一个跨平台的多媒体库,以用于直接控制底层的多媒体硬件的接口。这些多媒体功能包括了音频、键盘和鼠标(事件)、游戏摇杆等。当然,最为重要的是提供了 2D图形帧缓冲(framebuffer)的接口,以及为 OpenGL 与各种操作系统之间提供了统一的标准接口以实现 3D图形。从这些属性我们可以看出,SDL 基本上可以认为是为以电脑游戏为核心开发的多媒体库。
SDL 支持主流的操作系统,包括 Windows 和 Linux。在官方的介绍中,我们可以找到它所支持的其他平台。(SDL supports Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX. )。SDL 本身从 C 语言开发,并且能很好的在C++等高级语言中使用。在官方可以看到SDL所支持的语言很多。(Including Ada, C#, Eiffel, Erlang, Euphoria, Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl,
PHP, Pike, Pliant, Python, Ruby, Smalltalk, and Tcl. )
SDL在GNU LGPL version 2 下发布,这意味着你可以免费的使用。并且可以免费的用于商业软件的制作(只要你直接使用 SDL 的动态链接库,Windows 下的 SDL.dll)。如果你将 SDL 库编译进了自己的二进制代码中,你需要指明你所使用的 SDL 库的版本以及包括你自己修改的源代码,并说明这些代码的原始出处。这是很宽松的法律,你可以用如此强大的多媒体库完全合法的免费开发商业游戏。
SDL的组成
SDL本身是封装各种操作系统,图形,输入,输出等底层输出。在某一些分支,还有一些额外的库支持来扩展SDL的功能。常见的扩展有
lSDL_image ,SDL默认只支持BMP格式图象,如果需要其它图形JPEG/GIF/PNG/TIFF等就需要这个扩展库