Glynn Clements glynn at
Wed Apr 8 17:21:26 PDT 2009

Mark Wagner wrote:

> >> Thanks.  Is there any documentation on the best way to do various
> >> high-level tasks, such as drawing images?
> >
> > As already discussed, for higher-level tasks you'll be better of going
> > through a higher-level library such as cairo.
> >
> > cairo is not listed proeminently as an X component, because it also
> > works on non-X systems but it is a core library for anything doing GUI
> > stuff under X nowadays (with the exception of QT apps, but QT has a
> > wider scope than cairo)
> How standard is Cairo?  The proof-of-concept app from 15 years ago
> still works fine because it's only got two dependancies: Xlib and
> libc.  It works everywhere for the same reason.  If I added Cairo as a
> dependancy, would apps still work on 100% of Linux systems, and would
> they still work unmodified 15 years from now?

I would guess that your 15-year-old app has a looser definition of
"works" than is the norm nowadays. E.g. how well does it work in CJK
or right-to-left locales? What about accessibility? Session
management? Is it usable on a 200 DPI display?

Having said that, modern applications aren't exactly immune from
adjusting requirements according to ease of implementation. Try using
some on a remote display with 500ms lag.

[The "Clueless Idiot of the Year" award goes to the PyOpenGL developer
who thought that raising a Python exception for any OpenGL error was a
good idea.]

Glynn Clements <glynn at>

More information about the xorg mailing list