[cairo] Plans for 1.6?

Baz brian.ewins at gmail.com
Fri Dec 7 16:11:55 PST 2007


On Dec 7, 2007 11:26 PM, Carl Worth <cworth at cworth.org> wrote:
> On Fri, 30 Nov 2007 00:57:03 +0000, Baz wrote:
> > However I guess the one thing I want for christmas is, quartz should
> > be markked as officially supported.
>
> Yes, let's get there.
>
> > I knocked together the docs changes etc a while back, the only reason
> > I've not pushed for it yet is that we fail tests; despite the api
> > having been solid since March or so. I'm not sure that we'll be 100%
> > with the unit tests by 2008, but marking quartz as supported isn't
> > saying that - its just saying that the api is stable, and that we've
> > got community support; which I hope is there now since mozilla rely on
> > cairo/quartz on mac. Carl?
>
> I have said "should pass the whole test suite" as part of being marked
> supported, but that's not exactly true of course, (we still have the
> few XFAIL tests for currently supported backends of course[*]).
>
> And it's not even that the automated test suite needs to pass
> perfectly either. It's currently much too harsh for things like font
> rasterization details that we really don't care about, for example.
>
> The point is that there shouldn't be any "features" that are
> missing/broken in quartz, (think clipping, masking, gradients,
> etc.). I want people to be able to write an application with Linux/X
> and then move it to Mac OS X/quartz and have all the graphics look the
> same, (to a human---not necessarily to a bit-counting computer). I
> don't want "oh, yeah, that won't work on cairo-quartz". As long as we
> have problems like that, we should continue to have the backend marked
> as experimental.
>
> And the fallback approach we have in cairo should make this really
> simple. That's what let us do "supported" backends for PostScript and
> PDF even when they had giant page-size rasterization going on. Now,
> obviously we've done a lot of optimization since then, but we've tried
> to maintain good fidelity throughout the process.
>
> So there is more than just API stability and community support to
> this. I do want the feature set to be trusted and reliable, (not
> necessarily bug free of course), from day one.
>
> So the obvious question is, what things are still failing in the test
> suite? Are they things where the test suite is being too picky? Could
> they be fixed by just doing more fallbacks in the right places? Or is
> there something else more fundamental that needs to be done?

Actually one of the problems right now is that the /fallbacks/ fail
the tests on quartz. I mentioned this in passing in the mail; the
problem is that the acquire_dest_surface returns an image surface
which refs the buffer used by quartz's CGBitmapContext. So fallbacks
that draw to this bypass clipping (and possibly other things). I tried
to write the fix for this last weekend - which is to make fallback
work the same as eg the windows surface; copy the region of interest,
do the fallback drawing, then paint that back onto the quartz surface.
I didn't get it working yet, I've messed up the coordinate flipping
somewhere.

Of course we want to reduce the use of fallbacks over time, but if the
native rendering /and/ the fallbacks are broken we can't hope to
render things correctly. So fixing this one is a priority; I don't
think we have other fundamental problems.

As for the rest of the test suite... I'm loath to remove tests that
might usefully show up a problem. However, it might be worth marking
quartz as being a 'vector' surface in the boilerplate; those tests are
currently ignoring antialiasing failures on the other backends, and
quartz ignores those flags too.

>
> Also, finally, on the community/support side, another aspect of a
> backend being "supported" is that we really need to commit to doing
> good testing of that backend at release time. We've actually not done
> a good job of that with win32 already. I know Vlad is working to set
> up various systems for autobuilding cairo and hopefully that will
> help. Interested humans willing to work closely with me (or others) at
> release time will also be greatly appreciated.
>
> > I'll hold off pushing these patches as long as you like; with a bit of
> > luck fixing the clipping problem we identified in cairo-quartz this
> > week will put it on a par with the other platforms for most things.
>
> That sounds great. If you'd like to post the image results of "make
> test" somewhere to get a thumbs up from me, I'd be glad to look at
> them.

Sure.

>
> -Carl
>
> [*] Though we are trying hard to get rid of as many of those as
> possible for 1.6.
>
>


More information about the cairo mailing list