Allegro

用於電子遊戲開發的程式庫

Allegro是一個特別針對於電子遊戲的開發的自由軟件程式庫[3][4][5]

Allegro
徽標
徽標
開發者Allegro的開發者
目前版本
  • 5.2.8.0(2022年6月5日)[1]
  • 5.2.9.1(2024年1月20日;穩定版本)[2]
編輯維基數據連結
原始碼庫 編輯維基數據連結
作業系統跨平台
類型多媒體電子遊戲相關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"[6] 。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硬件加速方案。[7]

功能

編輯
  • 向量繪製:
    • 像素、線、矩形、圓柱、貝塞爾曲線等幾何圖形、
    • 有圖案(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格式的動畫函數[8]

Allegro 5

編輯

目前的開發着手在Allegro 5這條分支,4.9.14是其不穩定的版本。Allegro 5對庫的API及其大量的內部操作進行了完全重新的設計,致力於使API能更穩定地適用於多核間的協同工作。其預設使用OpenGL或DirectX硬件加速渲染後端,當前的大多數外掛程式都需要重寫介面。

其他

編輯

參考資料

編輯
  1. ^ https://github.com/liballeg/allegro5/releases/tag/5.2.8.0.
  2. ^ Release 5.2.9.1. 2024年1月20日 [2024年6月24日]. 
  3. ^ Harbour, Jonathan. Game Programming All in One, Second Edition. Course Technology PTR. 2004. ISBN 1592003834. 
  4. ^ Steinke, Lennart. Spielprogrammierung. BHV Verlag. 2003. ISBN 3826680758. 
  5. ^ P. J. Deitel, P. J. C How to Program. HowtoProgram. Prentice Hall. 2006. ISBN 0-13-240416-8. 
  6. ^ Forum posting by Shawn Hargreaves. [2009-10-26]. (原始內容存檔於2009-01-08). 
  7. ^ Daniel Borca. Mesa 3-D graphics library. [2009-10-26]. (原始內容存檔於2009-10-25). 
  8. ^ Allegro Introduction. [2009-10-26]. (原始內容存檔於2009-12-01). 

外部連結

編輯

(英文)