Zum Inhalt springen

Anti-Grain Geometry

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 10. Juni 2023 um 12:21 Uhr durch imported>InternetArchiveBot (InternetArchiveBot hat 1 Archivlink(s) ergänzt und 0 Link(s) als defekt/tot markiert.) #IABot (v2.0.9.5).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Anti-Grain Geometry

[[Datei:Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)|150px]]
Basisdaten

Maintainer Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Entwickler Maxim Shemanarev
Erscheinungsjahr Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Aktuelle Version 2.5.0
(1. Oktober 2006)
Aktuelle Vorabversion Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
(Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value))
Betriebssystem Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Programmier­sprache C++
Lizenz GPL (freie Software)
antigrain.com

Anti-Grain Geometry (kurz AGG) ist eine freie, plattformunabhängige Grafikbibliothek mit Subpixel-Genauigkeit. Sie ist von Maxim Shemanarev (McSeem) in C++ geschrieben und als freie Software unter den Bedingungen der Version 2 oder höher der GNU General Public License (GPL) verfügbar.<ref><templatestyles src="Webarchiv/styles.css" />Archivierte Kopie (Memento des Vorlage:IconExternal vom 26. September 2015 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/antigrain.com</ref>

Es existiert jeweils eine Portierung für Free Pascal<ref>Webpräsenz von AggPas, einer Free-Pascal-Portierung von AGG</ref> und eine für C#<ref>offizielle Webpräsenz von agg-sharp, einer C#-Portierung von AGG</ref>.

Merkmale

Die Bibliothek zeichnet sich vor allem dadurch aus, dass sie sehr flexibel gestaltet ist und auf sehr vielfältige Weise verwendet und erweitert werden kann. Die Bibliothek ist vollständig im C++ Code verfügbar und wird normalerweise direkt in das Anwendungsprogramm kompiliert. Zudem ist keinerlei Hardwareschnittstelle definiert, denn sämtliche Operationen werden in einem frei wählbaren Puffer durchgeführt. Dabei ist es völlig unerheblich, ob es sich dabei um den Framebuffer einer Grafikkarte oder einfach nur um einen zuvor zugewiesenen Speicher handelt. Diese Eigenschaften machen AGG völlig hardwareunabhängig. Die Bibliothek kann in der Regel für jeden beliebigen Prozessor ohne Anpassungen kompiliert werden.

Trotz dieser Flexibilität ist die Bibliothek ausgesprochen schnell und schlank und bietet qualitativ hochwertiges Antialiasing.

Schichten-Modell

AGG ist in mehreren Schichten vom Pixel-Renderer über Zeilenoperationen bis hin zu elementaren Zeichenoperationen aufgebaut, wodurch es möglich ist, in diesen Ablauf an jeder beliebigen Stelle einzugreifen. Dieses Konzept erschwert allerdings anfangs das Erlernen der Bibliothek.

Geschichte

Ursprünglich wurde AGG entwickelt, um Rastergrafiken mit hoher Qualität transformieren und in jedem beliebigen Winkel drehen zu können. Inzwischen bietet die Bibliothek viele Möglichkeiten der Vektorgrafik. 2002 wurde Version 2.0 freigegeben. Bis Version 2.4 wurde AGG unter der dreiklausligen (modifizierten) BSD-Lizenz veröffentlicht, mit Version 2.5 wurde im Oktober 2006 auf die GNU General Public License umgestellt.

Die Weiterentwicklung der Bibliothek schlief 2006 ein. Der Hauptentwickler Maxim Schemanarew verstarb im Jahr 2013.<ref><templatestyles src="Webarchiv/styles.css" />Максим Шеманарев aka McSeem2, 1966-2013 (Memento vom 4. März 2016 im Internet Archive), rsdn.ru, 28. November 2013</ref>

Verwendung

Das Betriebssystem Haiku nutzt AGG in seinem Fenstersystem.

In GNUs freiem Flash-Player gnash wird es als einer der verfügbaren Renderer eingebunden.

Die graphische Version des Interpreters der Programmiersprache REBOL benutzt AGG für die Verarbeitung von Vektorgraphikdaten in dem SVG-Dialekt DRAW.

Weblinks

Quellen

<references/>