[cairo] Problem with quartz backend update logic
Tim Rowley
tor at cs.brown.edu
Thu Jan 27 13:28:27 PST 2005
I've been working with the cairo Quartz backend and have
encountered with how it updates the screen after a drawing
operation. As I follow the code, each drawing operation calls
_cairo_surface_set_image, which in turn calls the backend's
set_image. In the quartz backend's case, this calls
GCContextDrawImage to composite the image surface it uses onto
the screen (or Quartz surface). Each time a drawing operation
completes, partially transparent areas are repeatedly composited
and build up opacity.
There's at least two ways of fixing this:
* have quartz's set_surface clear the surface whenever it does
the composite.
* have quartz's get_surface read the underlying pixels and
change set_surface to do a simple blit instead of compositing.
Which way are the backends supposed to operate?
-tor
More information about the cairo
mailing list