[cairo] cairo_win32_surface_create api change

Carl Worth cworth at redhat.com
Thu Dec 22 11:18:46 PST 2005


On Thu, 08 Dec 2005 10:32:05 -0500, Owen Taylor wrote:
> On Wed, 2005-12-07 at 22:03 -0800, Keith Packard wrote:
> > > All the code calling _cairo_surface_get_extents() expects this, but the
> > > problem is that the call in _cairo_clip_intersect_mask() is calling
> > > _cairo_surface_get_extents() on a surface *where the clip isn't 
> > > up-to-date*.
> > 
> > So _cairo_surface_get_extents should update the clip before computing
> > the extents, right? Not setting the clip lazily will cause serious
> > troubles for some backends iirc.
> 
> But _cairo_surface_get_extents() doesn't have the clip information,
> does it ... 

So is the answer here that the lazy aspect of the clipping needs to
get pushed down from the gstate to the surface layer? Would that allow
this Owen's patch for correctness without sacrificing any performance
benefit?

I'm still not at all a fan of the clipping interface we have in the
surface backend. It's quite fragile as correctness depends on calling
_cairo_surface_set_clip at the "right" times, (such as before calling
any of the 5 fundamental drawing operations).

Perhaps it's time to bite the bullet, get rid of _set_clip, and make
the clip object another parameter to the drawing operations.

-Carl
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/cairo/attachments/20051222/063d5c08/attachment.pgp


More information about the cairo mailing list