打开主菜单

Allegro

用於視頻遊戲開發的程式庫

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

Allegro
Allegro-logo.svg
徽标
開發者 Allegro的开发者
穩定版本
5.2.5
(2019年2月25日,​6個月前​(2019-02-25
源代码库 編輯維基數據鏈接
操作系统 跨平台
类型 多媒体电子游戏相关SDK
许可协议

Allegro 4: Giftware(类似MIT许可证

Allegro 5: Zlib
网站 liballeg.org

该库提供基本二维图形、图像操作、音效输出、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)。

当前稳定版本为4.2.2;计划中的新版本5.0来源于4.9.x,当前为Allegro 4.9.13。

硬件加速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
  5. Daniel Borca. Mesa 3-D graphics library. [2009-10-26]. (原始内容存档于2009-10-25). 
  6. Allegro Introduction. [2009-10-26]. (原始内容存档于2009-12-01). 

外部链接编辑