SDL - 初识
SDL 初识
SDL
的全称是Simple Directmedia Layer
,它是一个跨平台的开发库,通过OpenGL
及Direct3D
,可以提供针对音频、键盘、鼠标、游戏杆及图形硬件的低级访问,在开发视频播放软件、模拟器及游戏时,都可以使用它。
官方支持以下平台:
Windows
macOS
Linux
iOS
Android
也可以在源代码中找到对其它平台的支持
SDL
是由C
语言编写的。
SDL
官网: https://www.libsdl.org/index.php,在这里,可以找到源代码下载链接,目前,最新版本是2.0.x
,与1.0.x
版本有较大的不同,因此,为了区别这两个版本,多用SDL
代表1.0.x
版本,用SDL2
或SDL 2
代表2.0.x
版本。
目前,多数的开发,是基于
2.0.x
版本进行的。
SDL 扩展库
扩展库相关链接:https://libsdl.org/projects/
常用的有:
SDL_image
SDL_mixer
SDL_net
SDL_ttf
除了其官网提供的以上4个扩展库,另外还有一个名为SDL2_gfx
的扩展库,可以在https://sourceforge.net/projects/sdl2gfx/这里下载其源代码。
SDL_image
它是一个图像文件加载库。可通过加载图像,生成SDL surface
及SDL texture
,支持以下格式:
BMP
GIF
JPEG
LBM
PCX
PNG
PNM
SVG
TGA
TIFF
WEBP
XCF
XPM
XV
SDL_mixer
它是一个多通道混音库。支持同时播放任意数量的16位立体声通道,也支持由FLAC
、MikMod MOD
、Timidity MIDI
、Ogg Vorbis
、SMPEG MP3
这些库所混合的单声道音乐。
SDL_net
它是一个小的跨平台网络库,含有聊天客户端及聊天服务器端示例程序。聊天客户端使用了GUIlib库。
与SDL_image
、SDL_mixer
、SDL_ttf
相比,它并没有那么常用,因为有比它更强大、更好用的跨平台网络库,比如libuv
、libev
、libevent
。
SDL_ttf
通过它,就可以在程序中使用TrueType
字体。
SDL2_gfx
它包含20多种图元(直线、方框、圆、多边形等等)。