Allegro是一個特別針對於電子遊戲的開發的自由軟體程式庫。 [3][4][5]
該庫提供基本二維圖形、圖像操作、音效輸出、MIDI音樂、輸入、計時器,以及額外的尋路矩陣計算、UNICODE、檔案系統管理、有限而建基於軟體的三維圖形。
其版本4.0可以執行在DOS、Microsoft Windows、BeOS、Mac OS X、多種類Unix,程式只需要嵌入其API即可使用。該庫還有獨立的AmigaOS 4移植版。
附件
Allegro社群使用者貢獻了多種擴充,包括軸捲圖塊形式的地圖、輸入輸出各種格式(有PNG、GIF、JPEG、MPEG、Ogg、MP3、IT、S3M、XM、TTF)。其還有多個語言繫結,比如 Python、Perl、Scheme、C#、D語言等。
歷史
Allegro原本的含義是"Atari Low-Level Game Routines"[6] 。20世紀90年代初由Shawn Hargreaves為Atari 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實現。結合Glide和MesaFX (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硬體加速彩現後端,當前的大多數外掛程式都需要重寫介面。
其他
- SDL (Simple DirectMedia Layer)
- DirectX
- OpenGL
- ClanLib
- 開放多媒體程式庫(OpenML)
- PLIB
- XNA
- SFML
參考資料
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.