Allegro

本页使用了标题或全文手工转换,现处于繁体转换模式
出自求聞百科
Allegro
徽標
徽標
開發者Allegro的開發者
穩定版本
5.2.6
(2020年2月10日,​4年前​(2020-02-10
操作系統跨平台
類型多媒體電子遊戲相關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]. 
  5. Daniel Borca. Mesa 3-D graphics library. [2009-10-26]. 
  6. Allegro Introduction. [2009-10-26]. 

外部連結

(英文)