当前位置: 首页 > 工具软件 > SDL2-CS > 使用案例 >

SDL

邵羽
2023-12-01


  SimpleDirectMediaLayer,简称SDL,是一个自由的跨平台的多媒体开发包,主要通过OpenGL和2D视频帧缓冲 (framebuffer)提供对音频、键盘、鼠标、游戏操纵杆(joystick)和3D硬件的底层访问。它被广泛的应用于MPEG回放软件、模拟器和 多个著名游戏中,如获得大奖的《文明:权倾天下》(Civilization:CallToPower)的Linux移植版本。它的官方站点 是:http://www.libsdl.org/,还有一个非常个性的LOGO(图1)。

软件开发网



  在Win32编程中,如果要操纵2D图像,可以选择使用GDI或者 DirectDraw,前者速度较慢,而后者是特定针对Microsoft平台的,在非Win32平台上移植会带来很大的麻烦。这时,你可以选择使用 SDL。SDL支持多种平台:Linux、 Windows,BeOS,MacOSClassic,MacOSX,FreeBSD,OpenBSD,BSD/OS,Solaris,IRIX和 QNX,同时也部分支持部分其他平 台:WindowsCE,AmigaOS,Dreamcast,Atari,NetBSD,AIX,OSF/Tru64,RISCOS和 SymbianOS。当然SDL本身是针对2D图像编程的,如果使用到3D编程,那么需要将SDL和OpenGL结合使用。

  SDL是 用C编写的,但是也支持C ,同时其他多种语言,下面给出了其他语言的SDL的开发包的相关信息:

  ·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/
    SDLforCormanCommonLisp-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/
  ·ObjectiveC
    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
    PHPSDLmodule-http://phpsdl.sourceforge.net
  ·Pike
    Nativelysupported(moduleSDL)-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

  功 能

  视频

  ·设置8bpp或更高的任意色彩深度的视频模式。如果某个模式硬件不支持,可以选择转 化为另一模式。

  ·直接写入线性的图像帧缓冲(framebuffer)。

  ·用颜色键值(colorkey)或者 alpha混合属性创建用于绘图的表面(surface)。

  ·Surface的blit能自动的转化为目标格式。blit是优化过 的,并能使用硬件加速。x86平台上有针对MMX优化过的blit。

  ·硬件加速的blit和fill(填充)操作,如果硬件支持的 话。

  事件

  ·提供以下事件:

 类似资料: