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]. 

外部連結

(英文)