HOME

TheInfoList



OR:

Anti-Grain Geometry (AGG) is a 2D rendering
graphics library A graphics library is a program library designed to aid in rendering computer graphics to a monitor. This typically involves providing optimized versions of functions that handle common rendering tasks. This can be done purely in software and runn ...
written in
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
. It features
anti-aliasing Anti-aliasing may refer to any of a number of techniques to combat the problems of aliasing in a sampled signal such as a digital image or digital audio recording. Specific topics in anti-aliasing include: * Anti-aliasing filter, a filter used be ...
and
sub-pixel resolution In digital image processing, sub-pixel resolution can be obtained in images constructed from sources with information exceeding the nominal pixel resolution of said images. Aliasing When an object with a certain resolution is represented o ...
. 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 provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wi ...
,
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
,
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lap ...
,
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 BeOS is an operating system for personal computers first developed by Be Inc. in 1990. It was first written to run on BeBox hardware. BeOS was positioned as a multimedia platform that could be used by a substantial population of desktop users an ...
, SDL. The examples also include an
SVG Scalable Vector Graphics (SVG) is an XML-based vector image format for defining two-dimensional graphics, having support for interactivity and animation. The SVG specification is an open standard developed by the World Wide Web Consortium s ...
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 License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general ...
, version 2 or greater, AGG version 2.4 is still available under the
3-clause BSD license BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lice ...
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 GNU () is an extensive collection of free software (383 packages as of January 2022), which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operat ...
's Gnash Flash player. * Graphical version of Rebol language interpreter is using AGG for scalable vector graphics DRAW dialect. *
Hilti Hilti Corporation (Hilti Aktiengesellschaft or Hilti AG, also known as Hilti Group) is a Liechtensteiner multinational company that develops, manufactures, and markets products for the construction, building maintenance, energy and manufacturi ...
uses it in some of their rebar detection tools, like the PS 1000. *
Matplotlib Matplotlib is a plotting library for the Python programming language and its numerical mathematics extension NumPy. It provides an object-oriented API for embedding plots into applications using general-purpose GUI toolkits like Tkinter, wxPy ...
uses AGG as its back-end rendering engine. * 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 Mapnik is an open-source mapping toolkit for desktop and server based map rendering, written in C++. Artem Pavlenko, the original developer of Mapnik, set out with the explicit goal of creating beautiful maps by employing the sub-pixel anti-ali ...
, the toolkit that renders the maps on the
OpenStreetMap OpenStreetMap (OSM) is a free, open geographic database updated and maintained by a community of volunteers via open collaboration. Contributors collect data from surveys, trace from aerial imagery and also import from other freely licensed g ...
website, uses AGG for all its map rendering. * HTTPhotos uses AGG to scale photos. * Pdfium, the PDF rendering engine used by
Google Chrome Google Chrome is a cross-platform 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, ...
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.


Creator

Primary author of the library is 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 ), colloquially shortened to Nizhny, from the 13th to the 17th century Novgorod of the Lower Land, formerly known as Gork ...
, Russia) was reported to be dead at the age of 47. He died suddenly, at his home in
Columbia Columbia may refer to: * Columbia (personification), the historical female national personification of the United States, and a poetic name for America Places North America Natural features * Columbia Plateau, a geologic and geographic region i ...
,
Maryland Maryland ( ) is a state in the Mid-Atlantic region of the United States. It shares borders with Virginia, West Virginia, and the District of Columbia to its south and west; Pennsylvania to its north; and Delaware and the Atlantic Ocean t ...
(US) allegedly from an epileptic
seizure An epileptic seizure, informally known as a seizure, is a period of symptoms due to abnormally excessive or synchronous neuronal activity in the brain. Outward effects vary from uncontrolled shaking movements involving much of the body with lo ...
that he has 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 VK (short for its original name ''VKontakte''; russian: ВКонтакте, 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 predomin ...
He was a graduate of 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. Variations of purpose include basic transport, a recreational activity, or a competitive winter sport. Many types of competitive skiing events are recognized by the International Olympic Committee ( ...
,
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 Paralympic ...
(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.4
that maintains the original BSD license.
Updated fork of v2.6 on GitHub
that maintains the original BSD license.
agg-sharp
Is a c# port of the c++ library.
AggPas
is an Object Pascal port of the c++ library.
AggPasMod
is a modernized Object Pascal port of the c++ library.
AntiGrainRT
is a WinRT wrapper for Windows Store and Windows Phone. Anti-aliasing Computer graphic artifacts Graphics software