[cairo] cairo_xlib_surface_set_drawable

Bill Spitzak spitzak at d2.com
Fri Jul 8 14:27:50 PDT 2005

Keith Packard wrote:
> I chatted with Carl on the phone and he thought the idea of extending
> the xlib backend for this double buffering case seemed reasonable
> enough; swapping out the drawable is necessary as X cannot resize
> pixmaps.  He did, however, suggest that perhaps the correct API would be
> more like:
> void
> cairo_xlib_surface_set_drawable (cairo_surface_t *surface,
>                                  Drawable         drawable,
>                                  int              width,
>                                  int              height);
> I've got the obvious patch which implements this function; are there
> other comments in this area?

If the Drawable is the same as before I hope this is just as efficient 
as cairo_xlib_surface_set_size(). One way to make sure is to perhaps get 
rid of the set_size() call and only provide this one.

It would be nice to provide similar functions for the Win32 and any 
other window system back-ends. Even though the Win32 version requires 
you to destroy and create a HGC to change, this has to be more efficient 
that destroying and recreating the entire cairo_t.

More information about the cairo mailing list