Allegro

维基百科,自由的百科全书
跳转到导航 跳转到搜索
Allegro
徽标
徽标
开发者Allegro的开发者
当前版本
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    源代码库
    • {{URL|example.com|可选的显示文本}}
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    引擎
      Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
      操作系统跨平台
      类型多媒体电子游戏相关SDK
      许可协议Allegro 4: Giftware(类似MIT许可证
      Allegro 5: Zlib
      网站liballeg.org

      Allegro是一个特别针对于电子游戏的开发的自由软件程序库[1][2][3]

      该库提供基本二维图形、图像操作、音效输出、MIDI音乐、输入、计时器,以及额外的寻路矩阵计算、UNICODE、文件系统管理、有限而建基于软件的三维图形。

      其版本4.0可以运行在DOSMicrosoft WindowsBeOSMac OS X、多种类Unix,程序只需要嵌入其API即可使用。该库还有独立的AmigaOS 4移植版。

      该库使用C语言编写,适用于C或C++,其附带很多文档和实例。

      附件[编辑]

      Allegro社区用户贡献了多种扩展,包括轴卷图块形式的地图、输入输出各种格式(有PNGGIFJPEGMPEGOggMP3ITS3MXMTTF)。其还有多个语言绑定,比如 PythonPerlSchemeC#D语言等。

      历史[编辑]

      Allegro原本的含义是"Atari Low-Level Game Routines"[4] 。20世纪90年代初由Shawn HargreavesAtari ST创造,1995年Shawn因为Atari即将消失而抛弃了对其支持又引入了Borland C++ 和DJGPP编译器。Borland C++ 在2.0版本被抛弃,DJGPP是唯一被支持的编译器——Allegro因此只能用于DOS。1998年前后, Allegro发展出了很多版本,对应Microsoft Windows的WinAllegro、对应类Unix的XwinAllegro,这些融入了Allegro 3.9 WIP版本,这样Allegro 4.0成为首个多平台稳定版本,当前支持Unix (Linux, FreeBSD, Irix, Solaris, Darwin), Windows (MSVC, MinGW, Cygwin, Borland C++), BeOS, QNX, Mac OS X, DOS (DJGPP, Watcom)。

      硬件加速3D/2D应用于Linux、Mac OS X、DOS采用多种方式,包括AllegroGL和OpenLayer。它们是两个附件add-on库,通过OpenGL实现。结合GlideMesaFX (3dfx),AllegroGL是少数对应DOS的开源3D硬件加速方案。[5]

      功能[编辑]

      • 向量绘制:
        • 像素、线、矩形、圆柱、贝塞尔曲线等几何图形、
        • 有图案(Pattern)或者没有图案的形状填充(Shape Fill)
        • 各种多边形(Polygons):单调(Flat)、内插均匀(Gouraud)、三维纹理(3D Textured)和半透明( Translucent)
      • 图块:
        • 掩码(Masked)、压缩(Compressed)和编译(Compiled)三种精灵(Sprites)
        • 位块传输(Blitting)、旋转(Rotation)、拉伸(Stretching)、挤压(Reduction)、α通道混色(Alpha Blending)、内插均匀着色(Gouraud Shading)
        • 内置BMP、LBM、PCX、TGA文件格式支持,其他的可通过扩展库支持
      • 各种调色板(Color Palettes):
        • 调色板的操纵(读、写、转换)
        • RGB和HSV两种色彩格式(Color Formats)之间的转换
      • 文字:
        • 支持多种编码之间的转换,默认UTF-8
        • 点阵字体:掩码(Masking)、彩色(Colouring)、对齐(Alignment)
      • 其他:
        • 直接在屏幕或任意大小的内存位图(Memory Bitmaps)中进行绘制
        • 硬件轴卷(Hardware Scrolling)和三缓存(Triple Buffering)(前提是该处可用)、X模式(mode-X)的分屏(Split Screen)
        • 用于FLI/FLC格式的动画函数[6]

      Allegro 5[编辑]

      目前的开发着手在Allegro 5这条分支,4.9.14是其不稳定的版本。Allegro 5对库的API及其大量的内部操作进行了完全重新的设计,致力于使API能更稳定地适用于多核间的协同工作。其默认使用OpenGL或DirectX硬件加速渲染后端,当前的大多数插件都需要重写接口。

      其他[编辑]

      参考资料[编辑]

      1. ^ Harbour, Jonathan. Game Programming All in One, Second Edition. Course Technology PTR. 2004. ISBN 1592003834. 
      2. ^ Steinke, Lennart. Spielprogrammierung. BHV Verlag. 2003. ISBN 3826680758. 
      3. ^ P. J. Deitel, P. J. C How to Program. HowtoProgram. Prentice Hall. 2006. ISBN 0-13-240416-8. 
      4. ^ Forum posting by Shawn Hargreaves. [2009-10-26]. (原始内容存档于2009-01-08). 
      5. ^ Daniel Borca. Mesa 3-D graphics library. [2009-10-26]. (原始内容存档于2009-10-25). 
      6. ^ Allegro Introduction. [2009-10-26]. (原始内容存档于2009-12-01). 

      外部链接[编辑]