Cairo

Federico Mena en su charla de GNOME Canvas, habló de Cairo, que es una biblioteca de gráfico de vectores, que pretende ser independiente del dispositivo de salida. De esta forma, se pueden obtener los mismos resultados tanto en una impresora como en pantalla. Además, por trabajar con gráficos vectoriales, es posible escalar las imágenes sin problemas. Se basa en el modelo de iméges PS y PDF, y se encuentra disponible el paper que explica su funcionamiento y muestra algunos ejemplos. Al final del paper se indica que podría emplearse Cairo como una capa superior para OpenGL (así como lo hay para X11) y aprovechar las potencialidades de cada tarjeta para realizar el renderizado.

En la charla, además, indicó que, si se reescribiera GNOME Canvas, debiera ser a través de Cairo. Aún no me imagino como se integra, quizás a través de GDK o tal vez directamente. Pero mientras tanto, reviso los ejemplos.

El proceso para probarlo es bastante sencillo, y dado que la biblioteca es pequeña, compila bastante rápido. Para tener un ambiente sencillo, donde instalarlo sin problemas.

$ alias go-cairo='source ~/bin/go-cairo'

Donde go-cairo es un script que solo asigna nuevos valores para las principales variables de ambiente de desarrollo y ejecución:

$ cat ~/bin/go-cairo
BASE=/home/gpoo/desarrollo/cairo
export PATH=$BASE/bin:${PATH}
export LD_RUN_PATH=$BASE/bin
export LD_LIBRARY_PATH=$BASE/lib
export PKG_CONFIG_PATH=$BASE/lib/pkgconfig:${PKG_CONFIG_PATH}
ulimit -c unlimited

Posteriormente, para cada uno de los módulos descargados del CVS de Cairo (como se describe en la página), se procede a ejecutar:

$ ./autogen.sh --prefix=/home/gpoo/desarrollo/cairo

El módulo que contiene los ejemplos es cairo-demo, y es necesario ingresar a cada directorio para probar los ejemplos. En general, son bastante lentos, pero ha de ser porque aún está en desarrollo.