Cairo is a 2D graphics library that provides a unified imaging model for screen and printer. It takes advantage of hardware acceleration where available. Here is some of the software on OLPC that uses Cairo as a graphics back-end:
- the GTK GUI of Sugar
- the Evince document viewer library used by the Read activity
- the XULRunner Mozilla runtime used by the Browse activity
- the librsvg library used by Sugar to render SVG icons.
There is a low-level Python module that allows applications programmers to use the Cairo canvas to full effect. This is in addition to the GTK+ API layer above Cairo.
The pycairo source can be helpful. Eg, http://webcvs.cairographics.org/pycairo/cairo/pycairo-context.c?view=markup
Improvements for XO-1s
- See this discussion thread.