[cairo] cairo_win32_surface_create api change

Owen Taylor otaylor at redhat.com
Thu Dec 8 07:32:05 PST 2005


On Wed, 2005-12-07 at 22:03 -0800, Keith Packard wrote:
> > I spent some time tracking down the problem with trap-clip.c on win32,
> > and it wasn't really related to the win32 code at all.
> > 
> > Note that _cairo_surface_get_extents() is possibly dependent
> > on the clip ... this has always been the case and was intended to be
> > the case, though it isn't entirely clear from the function docs.
> > 
> > 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 ... 

In _cairo_clip_intersect_mask() we could call:

   status = _cairo_surface_set_clip (target, &clip);

But we can't do that if we just have 'target'

					Owen





More information about the cairo mailing list