[Cairo] [patch] implement push/pull on xc surfaces
cworth at east.isi.edu
Fri Sep 5 15:45:06 PDT 2003
On Jul 29, graydon hoare wrote:
> this implements the previously-disabled push and pull functions on xc
> surfaces. this allows you to, for example, call cairo_show_surface to
> display a local image surface on a remote RENDER surface.
Thanks for this patch.
I'm sorry it took so long, but I've finally committed a modified
version of this patch, (obviously it's in Cairo now, not Xc). ;-)
In addition to the feature mention by Graydon, this also enables
running Cairo to display on X servers that do not have the Render
extension, (before this would just crash).
However, I should point out that running Cairo on a non-Render X
server right now is woefully slow. This is the fault of Cairo, not the
server. The current braindead implementation does a GetImage/PutImage
pair for the entire area of every drawable affected by every single
Cairo drawing request.
Obviously this can be optimized greatly, (in many cases with very
little effort). But I thought I should at least put out something that
Feedback or patches to improve the performance will be welcome, (as
[*] I haven't actually tested this on a non-Render server yet. But I
did install a fake libXrender that acts as if the extension doesn't
exist. So I'm fairly confident I've seen the behavior one will get
with a non-Render server.
More information about the cairo