Anti-Grain Geometry
Encyclopedia
Anti-Grain Geometry is a high-quality 2D rendering library
Rendering engine
Rendering engine may refer to:*Game engine, a software system designed for the creation and development of video games*Ray tracing , a technique for generating an image by tracing simulated rays of light...

 written in C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

. It features anti-aliasing
Anti-aliasing
In digital signal processing, spatial anti-aliasing is the technique of minimizing the distortion artifacts known as aliasing when representing a high-resolution image at a lower resolution...

 and sub-pixel resolution
Sub-pixel resolution
In Digital Image Processing, Sub-pixel resolution can be obtained in digital images containing well defined lines, points or edges that can be processed by an algorithm to reliably measure the position of the line, point or edge in the image with an accuracy exceeding the nominal pixel resolution...

.

The library is operating system independent
Cross-platform
In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms...

 and renders to an abstract memory object. It comes with examples interfaced to the X Window System
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...

, Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

, Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

, AmigaOS
AmigaOS
AmigaOS is the default native operating system of the Amiga personal computer. It was developed first by Commodore International, and initially introduced in 1985 with the Amiga 1000...

, BeOS
BeOS
BeOS is an operating system for personal computers which began development by Be Inc. in 1991. It was first written to run on BeBox hardware. BeOS was optimized for digital media work and was written to take advantage of modern hardware facilities such as symmetric multiprocessing by utilizing...

, SDL
SDL
SDL may refer to:In computing:* Simple Declarative Language, a simple universal language for describing typed data in lists, maps and trees* Specification and Description Language, an ITU-specified system description language...

. The examples also include an SVG viewer.

AGG makes heavy use of C++ generic programming
Generic programming
In a broad definition, generic programming is a style of computer programming in which algorithms are written in terms of to-be-specified-later types that are then instantiated when needed for specific types provided as parameters...

: it relies on templates rather than class-based interfaces. This gives it the flexibility to plug custom classes into the rendering pipeline, without requiring a rigid class hierarchy, and allows the compiler to inline many of the method calls for high performance. For a library of its complexity, it is remarkably lightweight, and it has no dependencies above the standard C++ libraries. The implicit interfaces are not well documented, however, and this can make the learning process quite cumbersome.

Through version 2.4 AGG was under the 3-clause BSD license
BSD licenses
BSD licenses are a family of permissive free software licenses. The original license was used for the Berkeley Software Distribution , a Unix-like operating system after which it is named....

. Beginning with version 2.5 it is under the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

, version 2 or greater.

Usage

The Haiku operating system
Haiku (operating system)
Haiku is a free and open source operating system compatible with BeOS. Its development began in 2001, and the operating system became self-hosting in 2008, with the first alpha release in September 2009, the second in May 2010 and the third in June 2011....

 uses AGG in its windowing system.

It is one of the renderers available for use in GNU
GNU
GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...

's Gnash
Gnash
Gnash is a media player for playing SWF files. Gnash is available both as a standalone player for desktop computers and embedded device, as well as a plugin for several browsers. It is part of the GNU Project and is a Free and open-source alternative to Adobe Flash Player...

 Flash player.

Graphical version of Rebol
REBOL
REBOL is a cross-platform data exchange language and a multi-paradigm dynamic programming language originally designed by Carl Sassenrath for network communications and distributed computing. The language and its official implementation, which is a proprietary freely redistributable software are...

 language interpreter is using AGG for scalable vector graphics DRAW dialect.

Matplotlib
Matplotlib
matplotlib is a plotting library for the Python programming language and its NumPy numerical mathematics extension. It provides an object-oriented API which allows plots to be embedded into applications using generic GUI toolkits, like wxPython, Qt, or GTK...

uses AGG as its back-end rendering engine.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK