Anti-Grain Geometry (AGG) is a 2D rendering
graphics library written in
C++. It features
anti-aliasing and
sub-pixel resolution
In digital image processing, sub-pixel resolution can be obtained in images constructed from sources with information exceeding the nominal Image resolution, pixel resolution of said images.
Example
For example, if the image of a ship of leng ...
. It is not a graphics library, per se, but rather a framework to build a graphics library upon.
The library is
operating system independent and renders to an abstract memory object. It comes with examples interfaced to the
X Window System
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
,
Microsoft Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
,
Mac OS X
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
,
AmigaOS
AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions ...
,
BeOS,
SDL. The examples also include an
SVG viewer.
The design of AGG uses C++ templates only at a very high level, rather than extensively, to achieve 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: it has no dependencies above the standard C++ libraries and it avoids the
C++ STL in the implementation of the basic algorithms. The implicit interfaces are not well documented, however, and this can make the learning process quite cumbersome.
While AGG version 2.5 is licensed under the
GNU General Public License
The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
, version 2 or greater, AGG version 2.4 is still available under the
3-clause BSD license and is virtually the same as version 2.5.
History
Active development of the AGG codebase stalled in 2006, around the time of the v2.5 release, due to shifting priorities of its main developer and maintainer Maxim Shemanarev. M. Shemanarev remained active in the community until his sudden death in 2013. Development has continued on a fork of the more liberally licensed v2.4 on SourceForge.net.
Usage
* The
Haiku operating system uses AGG in its windowing system.
* It is one of the renderers available for use in
GNU's
Gnash Flash player.
* Graphical version of
Rebol language interpreter is using AGG for scalable vector graphics DRAW dialect.
*
Hilti uses it in some of their rebar detection tools, like the PS 1000.
*
Matplotlib
Matplotlib (portmanteau of MATLAB, plot, and library) is a Plotter, plotting Library (computer science), library for the Python (programming language), Python programming language and its Numerical analysis, numerical mathematics extension NumPy. ...
uses AGG as its canonical renderer for interactive user interfaces.
*
fpGUI Toolkit has an optional AggPas back-end rendering engine. Work is being done to make AggPas the default or sole rendering engine for fpGUI.
*
Mapnik, the toolkit that renders the maps on the
OpenStreetMap
OpenStreetMap (abbreviated OSM) is a free, Open Database License, open geographic database, map database updated and maintained by a community of volunteers via open collaboration. Contributors collect data from surveying, surveys, trace from Ae ...
website, uses AGG for all its bitmap map rendering by default.
* HTTPhotos uses AGG to scale photos.
* Pdfium, the PDF rendering engine used by
Google Chrome
Google Chrome is a web browser developed by Google. It was first released in 2008 for Microsoft Windows, built with free software components from Apple WebKit and Mozilla Firefox. Versions were later released for Linux, macOS, iOS, iPadOS, an ...
makes use of AGG, although work is progressing to replace this with
Skia Graphics Engine.
* Graphics Mill, the .NET imaging SDK uses AGG as its drawing engine.
*
Image-Line FL Studio, a digital audio workstation, since version 10.8 released on September 30, 2012, uses AGG for drawing.
*
Native Instruments
Native Instruments is a German company that develops, manufactures, and supplies music software and hardware for music production, sound design, performance, and DJing. The company's corporate headquarters and main development facilities are lo ...
's Supercharger and Supercharger GT compressors use AGG for its user interface.
Author
The main author of the library was Maxim Shemanarev (). On November 26, 2013 Shemanarev (born June 15, 1966,
Nizhny Novgorod
Nizhny Novgorod ( ; rus, links=no, Нижний Новгород, a=Ru-Nizhny Novgorod.ogg, p=ˈnʲiʐnʲɪj ˈnovɡərət, t=Lower Newtown; colloquially shortened to Nizhny) is a city and the administrative centre of Nizhny Novgorod Oblast an ...
, Russia) was reported dead at the age of 47 at his home in
Columbia,
Maryland
Maryland ( ) is a U.S. state, state in the Mid-Atlantic (United States), Mid-Atlantic region of the United States. It borders the states of Virginia to its south, West Virginia to its west, Pennsylvania to its north, and Delaware to its east ...
(US). He died suddenly, allegedly from an epileptic
seizure
A seizure is a sudden, brief disruption of brain activity caused by abnormal, excessive, or synchronous neuronal firing. Depending on the regions of the brain involved, seizures can lead to changes in movement, sensation, behavior, awareness, o ...
that he had suffered for a while.
[The information is primarily sourced from a Russian online forum RSDN he used to visit and his personal page in ]VKontakte
(short for its original name ''VKontakte''; , meaning ''InContact'') is a Russian online social media and social networking service based in Saint Petersburg. VK is available in multiple languages but it is predominantly used by Russian speake ...
He was a graduate from
Nizhny Novgorod State Technical University. Little is known about his personal life. It's known though that he was divorced and his mother was alive at the time of his death. He used to love
skiing
Skiing is the use of skis to glide on snow for basic transport, a recreational activity, or a competitive winter sport. Many types of competitive skiing events are recognized by the International Olympic Committee (IOC), and the International S ...
,
snowboarding
Snowboarding is a recreational and competitive activity that involves descending a snow-covered surface while standing on a snowboard that is almost always attached to a rider's feet. It features in the Winter Olympic Games and Winter Paralym ...
(in Colorado), and
inline skating
Inline skating is a multi-disciplinary sport and can refer to a number of activities practiced using inline skates. Inline skates typically have two to five polyurethane wheels depending on the style of practice, arranged in a single line by a ...
.
[As it's evidenced from some videos he has published on YouTube in March of 2012.] He was praised by his friends for his intelligent programming skills.
Notes
References
{{Reflist
External links
Updated fork of v2.4that maintains the original BSD license.
Updated fork of v2.6 on GitHubthat maintains the original BSD license.
agg-sharpIs a c# port of the c++ library.
AggPasis an Object Pascal port of the c++ library.
AggPasModis a modernized Object Pascal port of the c++ library.
AntiGrainRTis a WinRT wrapper for Windows Store and Windows Phone.
Anti-aliasing
Computer graphic artifacts
Graphics software