[cairo] cairo_win32_surface_create api change

Stuart Parmenter stuartp at gmail.com
Mon Dec 5 12:16:03 PST 2005

On 12/2/05, Owen Taylor <otaylor at redhat.com> wrote:
> On Thu, 2005-12-01 at 14:54 -0800, Stuart Parmenter wrote:
> > Here is my patch.
> >
> > The things "set up so that the width/height *are not* necessary" are
> > broken it turns out.  You are using the clipbox as the width/height of
> > the surface which will almost always be wrong if you're using
> > clipping. Backend functions such as get_extents need to actually
> > return the proper values for things to work.  Both of these tests hit
> > code paths that use get_extents after setting the clip region to null
> > resulting in a 0,0,0,0 return from get_extents which ends up clipping
> > out lots of stuff, which isn't really what you want.
> Without an actual description of the code paths that aren't working,
> it's hard for me to propose the correct fix, but the extents of a
> DIB or DDB are determinable without extra API and on general grounds
> having a drawing operation depend on the extents of a window almost
> certainly indicates that something is wrong.
> Regards,
>                                                 Owen

I noticed that I only sent this to Owen previously.  Resending to list.

Run the tests I said previously and put some break points in
_cairo_win32_surface_get_extents and then see what happens when you
get 0,0,0,0 returned.  Or simply grep for cairo_surface_get_extents
and look at all the callers.

More information about the cairo mailing list