Articulo de referencia

Geometría antigrano

Anti-Grain Geometry ( AGG ) es una biblioteca de gráficos de renderizado 2D escrita en C++ . Ofrece suavizado de bordes y resolución subpíxel . No es una biblioteca gráfica prop...

Anti-Grain Geometry ( AGG ) es una biblioteca de gráficos de renderizado 2D escrita en C++ . Ofrece suavizado de bordes y resolución subpíxel . No es una biblioteca gráfica propiamente dicha, sino más bien un marco de trabajo sobre el cual construir una biblioteca gráfica.

La biblioteca es independiente del sistema operativo y renderiza en un objeto de memoria abstracto. Incluye ejemplos con interfaz para X Window System , Microsoft Windows , Mac OS X , AmigaOS , BeOS y SDL . Los ejemplos también incluyen un visor de SVG .

El diseño de AGG utiliza plantillas de C++ solo a un nivel muy alto, en lugar de hacerlo de forma extensiva, para lograr la flexibilidad necesaria para integrar clases personalizadas en el pipeline de renderizado, sin requerir una jerarquía de clases rígida, y permite que el compilador inserte en línea muchas de las llamadas a métodos para un alto rendimiento. Para una biblioteca de su complejidad, es notablemente ligera: no tiene dependencias más allá de las bibliotecas estándar de C++ y evita la STL de C++ en la implementación de los algoritmos básicos. Sin embargo, las interfaces implícitas no están bien documentadas, lo que puede dificultar bastante el proceso de aprendizaje.

Si bien la versión 2.5 de AGG está licenciada bajo la Licencia Pública General de GNU , versión 2 o superior, la versión 2.4 de AGG todavía está disponible bajo la licencia BSD de 3 cláusulas y es prácticamente idéntica a la versión 2.5.

Historia

El desarrollo activo del código fuente de AGG se estancó en 2006, alrededor de la fecha de lanzamiento de la versión 2.5, debido a un cambio en las prioridades de su principal desarrollador y mantenedor, Maxim Shemanarev. M. Shemanarev permaneció activo en la comunidad hasta su repentina muerte en 2013. El desarrollo ha continuado en una bifurcación de la versión 2.4, con una licencia más permisiva, en SourceForge.net. [ 1 ]

Uso

  • El sistema operativo Haiku utiliza AGG en su sistema de ventanas.
  • Es uno de los motores de renderizado disponibles para su uso en el reproductor Flash Gnash de GNU .
  • La versión gráfica del intérprete del lenguaje Rebol utiliza el dialecto DRAW de AGG para gráficos vectoriales escalables.
  • Hilti lo utiliza en algunas de sus herramientas de detección de barras de refuerzo, como la PS 1000.
  • Matplotlib utiliza AGG como su motor de renderizado canónico para interfaces de usuario interactivas. [ 2 ]
  • fpGUI Toolkit tiene un motor de renderizado de back-end AggPas opcional. [ 3 ] Se está trabajando para que AggPas sea el motor de renderizado predeterminado o único para fpGUI.
  • Mapnik , el conjunto de herramientas que renderiza los mapas en el sitio web OpenStreetMap , utiliza AGG para todos sus renderizados de mapas de bits por defecto. [ 4 ]
  • HTTPphotos utiliza AGG para escalar las fotos.
  • Pdfium, el motor de renderizado de PDF utilizado por Google Chrome, utiliza AGG, [ 5 ] aunque se está trabajando para reemplazarlo con Skia Graphics Engine . [ 6 ]
  • Graphics Mill, el SDK de imágenes de .NET, utiliza AGG como su motor de dibujo. [ 7 ]
  • Image-Line FL Studio , una estación de trabajo de audio digital, desde la versión 10.8 lanzada el 30 de septiembre de 2012, utiliza AGG para dibujar. [ 8 ]
  • Los compresores Supercharger y Supercharger GT de Native Instruments utilizan AGG para su interfaz de usuario.

Autor

El autor principal de la biblioteca fue Maxim Shemanarev ( en ruso : Максим Шеманарёв ). El 26 de noviembre de 2013, Shemanarev (nacido el 15 de junio de 1966 en Nizhny Novgorod , Rusia) falleció a los 47 años en su casa de Columbia , Maryland (EE. UU.). Murió repentinamente, supuestamente a causa de un ataque epiléptico que padecía desde hacía tiempo. [ nota 1 ] [ 9 ] [ 10 ] Se graduó en la Universidad Técnica Estatal de Nizhny Novgorod . Se sabe poco sobre su vida personal. Sin embargo, se sabe que estaba divorciado y que su madre vivía al momento de su muerte. Le encantaba esquiar , practicar snowboard (en Colorado) y patinar en línea . [ nota 2 ] Sus amigos lo elogiaban por su gran habilidad para la programación. [ 9 ]

Notas

  1. La información proviene principalmente de un foro ruso en línea, RSDN, que solía visitar, y de su página personal en VKontakte.
  2. Como se evidencia en algunos videos que publicó en YouTube en marzo de 2012.

Referencias

  1. "Biblioteca de geometría antigrano" . 28 de mayo de 2021.
  2. "Documentación de Matplotlib - Uso de Matplotlib - Figuras y backends - Backends" . Consultado el 26 de septiembre de 2023 .
  3. "Noticias del kit de herramientas fpGUI" . Archivado del original el 23 de abril de 2012. Consultado el 14 de mayo de 2013 .
  4. "Wiki de Mapnik" .
  5. "Fuente de Pdfium" . Consultado el 23 de diciembre de 2016 .
  6. "11 - Soporte de Skia - pdfium" . Consultado el 23 de abril de 2022 .
  7. "Documentación de Graphics Mill" . Consultado el 16 de agosto de 2015 .
  8. "Historial - FL Studio 10.8 (beta)" . Archivado del original el 3 de mayo de 2019. Consultado el 4 de mayo de 2019 .
  9. ^ "Максим Шеманарев alias McSeem2, 1966-2013 - О жизни - RSDN" [ Maxim Shemanaev alias McSeem2, 1966-2014 - Acerca de la vida - RSDN ] . 28 de noviembre de 2013. Archivado desde el original el 4 de marzo de 2016 . Consultado el 3 de octubre de 2021 .
  10. "RIP Maxim Shemanarev" . vector-agg-general.narkive.com . Consultado el 3 de octubre de 2021 .
  • Versión actualizada derivada de la v2.4 que mantiene la licencia BSD original.
  • Versión actualizada derivada de la v2.6 en GitHub que mantiene la licencia BSD original.
  • agg-sharp es una versión para ac# de la biblioteca de c++.
  • AggPas es una adaptación a Object Pascal de la biblioteca de C++.
  • AggPasMod es una versión modernizada en Object Pascal de la biblioteca de C++.
  • AntiGrainRT es un envoltorio WinRT para Windows Store y Windows Phone.