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

      外部連結[編輯]