
Hay una cosa que me preocupa de la librería de trazado gráfico de imágenes SVG de Firefox (cairo): es relativamente lenta, sobre todo si se compara con ASV. Esto compromete la viabilidad comercial de algunas de mis creaciones. En algunas aplicaciones que desarrollé para la empresa HYDS, al emplear animación intensiva de elementos raster, era imposible prescindir del ASV: sigue siendo el más rápido, pero su empleo es óptimo sólo para MSIE, no para el resto de navegadores, en los que actúa como un applet más y es difícil o imposible la interacción entre elementos XHTML y SVG. El único navegador que se aproxima en prestaciones gráficas al ASV es Opera (para cualquier OS), pero sigue siendo más lento y todavía no soporta completamente el SMIL.
He aquí que en la Gran Canaria Desktop Summit, en la que se reunían conjuntamente por primera vez GUADEC y Akademy (lo que fue muy enriquecedor), al comentar el problema alguien me sugirió, si me decidía a meterle mano a las tripas de Firefox, que le echara un vistazo a la librería gráfica Anti-Grain Geometry, que es mucho más rápida. Eso hice y he de decir que es un auténtico hallazgo.

Una de las primeras cosas que miré fue la sección de pantallazos y demostraciones. Ahí fue cuando empecé a entusiasmarme: no sólo tiene todo lo que hay que tener sobre gráficos 2D, incluyendo las transformaciones afines y los filtros de la especificación SVG, sino que, además, soporta transformaciones proyectivas y no lineales. ¡Casi nada!
Al leer la documentación vi que la librería (que está escrita en C++, otro motivo de elogio más) tiene una estructura sencilla y muy bien organizada. No es el típico monstruo que ha crecido desaforado al incorporar sin ton ni son funcionalidad extravagante e innecesaria, sino que, tal como afirma el autor, está estructurada en un conjunto de algoritmos débilmente acoplados y plantillas de clase con un planteamiento común, por lo que los componentes se pueden combinar fácilmente; además, el diseño ha tenido en cuenta la extensibilidad y la flexibilidad. Le he echado un vistazo al código y, aparentemente, es cierto. No se complica la vida con autoconfiguradores e instaladores (es de los míos): como las dependencias externas son mínimas, cada cual que se lo monte como quiera en función de sus necesidades.
En la página se adjunta también un visor sencillo de SVG para las pruebas, lo que da una idea de sus capacidades. De hecho, puede observar la diferencia entre ASV y AGG en el trazado en la imagen inferior.
En resumen: esta librería es muy prometedora y creo que les voy a tener informados en el futuro con más artículos sobre ella.