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 wit ...
,
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 serv ...
,
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 (computer), Mac computers. Within the market of ...
,
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 version ...
,
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 a ...
, 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 C, or c, is the third Letter (alphabet), letter in the Latin alphabet, used in the English alphabet, modern English alphabet, the alphabets of other western European languages and others worldwide. Its name in English is English alphabet#Le ...
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 (Free software), four freedoms to run, study, share, and modify the software. The license was th ...
, 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 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 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 The Skia Graphics Engine or Skia is an open-source 2D graphics library written in C++. Skia abstracts away platform-specific graphics API (which differ from one to another). Skia Inc. originally developed the library; Google acquired it in 2005, ...
. * 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,
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 to ...
(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 los ...
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 Nizhny Novgorod State Technical University (russian: Нижегородский государственный технический университет им. Р. Е. Алексеева, NNSTU) is a public technical university in Nizhny Novg ...
. 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 (IO ...
,
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 Paralympi ...
(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