Allegro (software)

Last updated
Allegro
Allegro-logo.svg
Allegro logo
Original author(s) Shawn Hargreaves  [ pl ]
Developer(s) Allegro developers
Initial releaseearly 1990;29 years ago (1990)
Stable release
5.2.5 / February 25, 2019;9 months ago (2019-02-25)
Repository OOjs UI icon edit-ltr-progressive.svg
Written in C
Operating system Windows, Linux, macOS, et al.
Type Multimedia and Games SDK
License Allegro 4: Beerware [1]
Allegro 5: zlib
Website liballeg.org

Allegro is a software library for video game development. [2] [3] [4] The functionality of the library includes support for basic 2D graphics, image manipulation, text output, audio output, MIDI music, input and timers, as well as additional routines for fixed-point and floating-point matrix arithmetic, Unicode strings, file system access, file manipulation, data files, and 3D graphics. The library is written in the C programming language and designed to be used with C, C++, or Objective-C, with bindings available for Python, Lua, Scheme, D, Go, and other languages. [5] Allegro comes with extensive documentation and many examples.

Contents

Allegro supports Windows, macOS, Unix-like systems, Android, and iOS, abstracting their application programming interfaces (APIs) into one portable interface. Previous versions up to 4.4 supported Windows, macOS, DOS, BeOS, and various Unix-like systems with (or without) the X Window System. There is also an independent port of Allegro on AmigaOS 4 and MorphOS.

Released under the terms of the zlib license, Allegro is free and open source software.

History

Initially standing for Atari Low-Level Game Routines, [6] Allegro was originally created by Shawn Hargreaves  [ pl ] for the Atari ST in the early 1990s. However, Hargreaves abandoned the Atari version as he realized the platform was dying, and reimplemented his work for the Borland C++ and DJGPP compilers in 1995. Support for Borland C++ was dropped in version 2.0, and DJGPP was the only supported compiler. As DJGPP was a DOS compiler, all games which used Allegro therefore used DOS. Around 1998, Allegro branched out into several versions. A port to Windows, WinAllegro, was created, and also during this time, a Unix port of Allegro, XwinAllegro, was created. These various ports were brought together during the Allegro 3.9 WIP versions, with Allegro 4.0 being the first stable version of Allegro to support multiple platforms.

Allegro 5

Current development is focused on the Allegro 5 branch, a complete redesign of both the API and much of the library's internal operation. Effort was made to make the API more consistent and multi-thread safe. By default, the library is now hardware accelerated using OpenGL or DirectX rendering backends where appropriate. Many of the addons that existed as separate projects for Allegro 4 now interface seamlessly with Allegro proper and are bundled with the default installation. Allegro 5 is event driven.

Features

Allegro provides the following graphic functions:

Addons

The community of Allegro users have contributed several library extensions to handle things like scrolling tile maps and import and export of various file formats (e.g. PNG, GIF, JPEG images, MPEG video, Ogg, MP3, IT, S3M, XM music, TTF fonts, and more).

Allegro 4.x and below can be used in conjunction with OpenGL by using the library AllegroGL which extends Allegro's functionality into OpenGL and therefore the hardware. Allegro 5 natively supports OpenGL.

See also

Related Research Articles

Cygwin Unix subsystem for Windows machines

Cygwin is a POSIX-compatible environment that runs natively on Microsoft Windows. Its goal is to allow programs of Unix-like systems to be recompiled and run natively on Windows with minimal source code modifications by providing them with the same underlying POSIX API they would expect in those systems.

IRIX operating system

IRIX is a discontinued operating system developed by Silicon Graphics (SGI) to run on the company's proprietary MIPS workstations and servers. It is a variety of UNIX System V with BSD extensions. In IRIX, SGI originated the XFS file system and the universally adopted industry-standard OpenGL graphics system.

OpenGL application programming interface for rendering 2D and 3D vector graphics

Open Graphics Library (OpenGL) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardware-accelerated rendering.

The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines the application programming interface (API), along with command line shells and utility interfaces, for software compatibility with variants of Unix and other operating systems.

OpenStep is a defunct object-oriented application programming interface (API) specification for a legacy object-oriented operating system, with the basic goal of offering a NeXTSTEP-like environment on non-NeXTSTEP operating systems. OpenStep was principally developed by NeXT with Sun Microsystems, to allow advanced application development on Sun's operating systems, specifically Solaris. NeXT produced a version of OpenStep for its own Mach-based Unix, stylized as OPENSTEP, as well as a version for Windows NT. The software libraries that shipped with OPENSTEP are a superset of the original OpenStep specification, including many features from the original NeXTSTEP.

ScriptBasic is a scripting language variant of BASIC. The source of the interpreter is available as a C program under the LGPL license.

PowerBASIC brand of several commercial compilers by PowerBASIC Inc. that compile a dialect of the BASIC programming language

PowerBASIC, formerly Turbo Basic, is the brand of several commercial compilers by PowerBASIC Inc. that compile a dialect of the BASIC programming language. There are both MS-DOS and Windows versions, and two kinds of the latter: Console and Windows. The MS-DOS version has a syntax similar to that of QBasic and QuickBASIC. The Windows versions use a BASIC syntax expanded to include many Windows functions, and the statements can be combined with calls to the Windows API.

In computing, cross-platform software is computer software that is implemented on multiple computing platforms. Cross-platform software may be divided into two types; one requires individual building or compilation for each platform that it supports, and the other one can be directly run on any platform without special preparation, e.g., software written in an interpreted language or pre-compiled portable bytecode for which the interpreters or run-time packages are common or standard components of all platforms.

The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. The name Windows API collectively refers to several different platform implementations that are often referred to by their own names ; see the versions section. Almost all Windows programs interact with the Windows API. On the Windows NT line of operating systems, a small number use the Native API.

DJGPP implementation of the GNU toolchain for MS-DOS

DJ's GNU Programming Platform (DJGPP) is a software development suite for Intel 80386-level and above, IBM PC compatibles which supports DOS operating systems. It is guided by DJ Delorie, who began the project in 1989. It is a port of the GNU Compiler Collection (GCC), and mostly GNU utilities such as Bash, find, tar, ls, GAWK, sed, and ld to DOS Protected Mode Interface (DPMI). Supported languages include C, C++, Objective-C/C++, Ada, Fortran, and Pascal. DJGPP was described as an "aging" product in 2004.

Direct3D and OpenGL are competing application programming interfaces (APIs) which can be used in applications to render 2D and 3D computer graphics. Hardware acceleration of this process has been commonplace since approximately 1999. As of 2005, graphics processing units (GPUs) almost always implement one version of both of these APIs. Examples include: DirectX 9 and OpenGL 2 circa 2004; DirectX 10 and OpenGL 3 circa 2008; and most recently, DirectX 11 and OpenGL 4 circa 2011. GPUs that support more recent versions of the standards are backward-compatible with applications that use the older standards; for example, one can run older DirectX 9 games on a more recent DirectX 11-certified GPU.

Cairo is an open source programming library that provides a vector graphics-based, device-independent API for software developers. It provides primitives for two-dimensional drawing across a number of different back ends. Cairo uses hardware acceleration when available.

The Visual Component Framework (VCF) is an abandoned open source project for development under Microsoft Windows and Apple Macintosh that is distributed under the BSD license. It is an advanced C++ application framework that makes it easier to produce GUI-based C++ applications. The framework is C++ design and has built in support for rapid application development. The framework is designed to be portable over multiple platforms and compilers.

conio.h is a C header file used mostly by MS-DOS compilers to provide console input/output. It is not part of the C standard library or ISO C, nor it is defined by POSIX.

Borland Graphics Interface

The Borland Graphics Interface, also known as BGI, is a graphics library bundled with several Borland compilers for the DOS operating systems since 1987. BGI was also used to provide graphics for many other Borland products including the Quattro spreadsheet. The library loaded graphic drivers (*.BGI) and vector fonts (*.CHR) from disk in order to provide device independent graphics support. It was possible for the programmer to embed the graphic driver into the executable file by linking the graphic driver as object code with the aid of a utility provided by the compiler (bgiobj.exe). There were graphic drivers for common graphic adapters and printers of that time, such as CGA, EGA and VGA. There also were BGI drivers for some kinds of plotters.

GrafX2 drawing free software inspirated by DPaint II, oriented Pixel art & animation

GrafX2 is a bitmap graphics editor inspired by the Amiga programs Deluxe Paint and Brilliance. It is free software and distributed under GNU General Public License.

EGL (API) interface between Khronos rendering APIs and window system

EGL is an interface between Khronos rendering APIs and the underlying native platform windowing system. EGL handles graphics context management, surface/buffer binding, rendering synchronization, and enables "high-performance, accelerated, mixed-mode 2D and 3D rendering using other Khronos APIs." EGL is managed by the non-profit technology consortium Khronos Group.

OpenFL

OpenFL is a free and open-source software framework and platform for the creation of multi-platform applications and video games. OpenFL applications can be written in Haxe, JavaScript, or TypeScript., and may be published as standalone applications for several targets including iOS, Android, HTML5(choice of Canvas, WebGL, SVG or DOM), Windows, macOS, Linux, WebAssembly, Flash, AIR, PlayStation 4, PlayStation 3, PlayStation Vita, Xbox One, Wii U, TiVo, Raspberry Pi, and Node.js.

References

  1. Allegro Development Team. "The giftware license" . Retrieved 2013-11-16.
  2. Harbour, Jonathan (2004). Game Programming All in One, Second Edition. Course Technology PTR. ISBN   1-59200-383-4.
  3. Steinke, Lennart (2003). Spielprogrammierung. BHV Verlag. ISBN   3-8266-8075-8.
  4. Deitel, P. J. (2006). C How to Program. How to Program. Prentice Hall. ISBN   0-13-240416-8.
  5. List of Allegro language bindings
  6. Forum posting by Shawn Hargreaves
  7. Allegro Introduction