SDL-我的爱

在将近一年以前,我决定学习新的图形库SDL,这是我图形编程生涯的又一次转折,虽然我不认为ALLEGRO有什么不好,但由于它的不普及,我不得不考虑换用大家更熟悉的SDL来开发我的下一个GUI作品,这个被命名为COOPA的家伙,真正的基于消息机制和多任务内核的GUI。 SDL的官方主页是:http://www.libsdl.org 我在访问它多次之后,发现SDL可以支持的语言还不只是C/C++,比ALLEGRO更多的应用在不同的系统平台,虽然用SDL编程看起来更接近DIRECTX的那种晦涩难懂。但我还是是愿意尝试SDL的美丽。 如果你愿意跟我共同的领会SDL的美,那么今天之后,你将看到我使用SDL开发GUI的完整过程,我以往的GUI开发日志其实很不科学,以为记录的都是含糊的功能增加以及我在某处的修改,如果你不是我,恐怕你很难看懂我写的日志,即使给你代码,你也要找好长的时间,才可以找到我所提到的修改。 为了改变这种状况,我曾经考虑过CVS,但是那不适合我,我不是一个可以随时维护CVS的人。另外,由于ALLEGRO也支持VC,所以VISUAL STDIO里的SOURCE管理我也考虑尝试应用一下,但那也不适合我,我习惯的是把修改过的版本都一个一个的备份起来,即使它们将占用我很大的硬盘空间。 在日志方面,我更喜欢把心得写下来,但有时只是方便自己维护各个版本,所以简单的描述是足够的。 似乎我说的东西开始跑题了,重新回到SDL的话题。 Simple DirectMedia Layer 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. 以上的一段话来自SDL的官方网站的主页,如果大家稍微懂一点英语的话,可以理解SDL的宗旨。如果不是很理解,他是一个提供音频,键盘,鼠标,游戏手柄,3D硬件[通过OPENGL],和2D framebuffer的底层库,他是平台交互的多媒体库。支持的系统包括当前流行的LINUX,WINDOWS,BEOS,MACOS,FreeBSD,OpenBSD,Solaris,IRIX和QNX等系统,我想你该为这个激动的,因为在所有这些系统上你都可以找到GCC的身影,只要我们使用的是GCC和SDL,我们的程序只要通过重新编译,变可以轻松的运行在不同的系统平台上,这就是我们所希望的平台交互。 好了,看到了SDL的优点之后,就让我们真正的开始我们的SDL之旅吧。 下一次,我们从封装SDL谈起。

你可能感兴趣的:(sd)