Jump to content

Anti-Grain Geometry: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Development: push external link into footnote
Development: add note about death of developer from talk page
Line 20: Line 20:


== Development ==
== Development ==
For a while development of the C++ AGG library has stalled, after the v2.5 release. Since then, developers seem to have come together to continue development efforts. A fork of the more liberally licensed v2.4 has been continuing on SourceForge.net.<ref>http://sourceforge.net/projects/agg</ref>
Development of the C++ AGG library stalled after the v2.5 release, apparently due to the sudden death of developer Максим Шеманарев.<ref>http://rsdn.ru/forum/life/5377743.flat</ref> Development continues on a fork of the more liberally licensed v2.4 on SourceForge.net.<ref>http://sourceforge.net/projects/agg</ref>


== Usage ==
== Usage ==

Revision as of 15:38, 3 December 2014

Anti-Grain Geometry
Developer(s)Maxim Shemanarev
Stable release
2.5.0 / October 1, 2006; 18 years ago (2006-10-01)
Written inC++
Operating systemCross-platform
TypeGraphics library
LicenseGPL
Websiteantigrain.com

Anti-Grain Geometry (AGG) is a high-quality 2D rendering library written in C++. It features anti-aliasing and sub-pixel resolution. 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, Microsoft Windows, Mac OS X, AmigaOS, 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, 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.

Development

Development of the C++ AGG library stalled after the v2.5 release, apparently due to the sudden death of developer Максим Шеманарев.[1] Development continues on a fork of the more liberally licensed v2.4 on SourceForge.net.[2]

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 uses AGG as its back-end rendering engine.[3]

fpGUI Toolkit has an optional AggPas back-end rendering engine.[4] 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 website, uses AGG for all its map rendering.

HTTPhotos uses AGG to scale photos.

Pdfium, the PDF rendering engine used by Google Chrome makes use of AGG[5]

References

  1. ^ http://rsdn.ru/forum/life/5377743.flat
  2. ^ http://sourceforge.net/projects/agg
  3. ^ "Matplotlib 1.1 documentation". Archived from the original on 15 May 2011. Retrieved 2011-04-08. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  4. ^ "fpGUI Toolkit news". Archived from the original on 23 April 2012. Retrieved 2013-05-14. {{cite web}}: Unknown parameter |deadurl= ignored (|url-status= suggested) (help)
  5. ^ "Pdfium Source". Retrieved 22 May 2014.