[cairo] API Shakeup wrapup: The plan going forward

David Reveman davidr at novell.com
Fri Feb 25 04:56:00 PST 2005


On Wed, 2005-02-23 at 14:53 -0500, Carl Worth wrote: 
> OK, I think I've now written up pretty much everything we talked about
> in the meeting last week, (and a few more things as well).

Great work, Carl!

> 
> If anyone else has proposals for other API changes or removals, (is
> there anything we haven't touched?), please bring them up now. I'd
> really like to have the 1.0 API nailed down soon.

I've got three things:

Perspective Transformations - 
Maybe we don't want this in gstate but I think we should leave the door
open for perspective transformations of patterns. If we just make sure
that cairo_matrix_t is 3x3 when exposing it to the API as planned. hmm,
maybe cairo_concat_matrix should be named cairo_affine_transform.

Advanced Filters -
We need to get convolution filters and such into the pattern interface.
Can't think of anything better than
cairo_pattern_set_filter (pattern, filter, params, nparams)
right now.

Shape Format -
I'm most concerned about support for sub-pixel rendering, especially for
text. This could also support aliased rendering, if we want that.

> 
> Of course, proposals for additions to the API are also welcome, but
> they're easier to deal with in general, so are not as pressing.
> 
> As far as a plan for actually getting this work all done, I think I'd
> like to do something like the following:
> 
> 1) Get any big, outstanding patches committed.
> 
> 	Basically just David's work I think.

As soon as you give me a go, I'll start writing changelogs and
committing. 

> 
> 2) Push out one last "old API" snapshot.
> 
> 	Just in case we're slower than we want to be
> 
> 	This gets the win32 backend out in a snapshot for the first
> 	time.
> 
> 3) Write a patch for each "API Shakeup" proposal.
> 
> 	Send to the list as followups to the proposal.
> 
> 4) Do the big churn in CVS.
> 
> 	Many of the changes are quite minor, and I'm not too worried
> 	about interdependencies or any need for careful patch
> 	scheduling.
> 
> 	I do want to hold off on big changes that don't affect the API
> 	during this period, (eg. renaming cairo_foo.c to cairo-foo.c,
> 	backend interface rework).
> 
> 5) Publish a porting guide to help application authors.
> 
> 6) Spit out the first "new API" snapshot.
> 
> Any help with any of these would be most welcome. The ordering above
> is not strict. We can start writing the patches (3) without waiting
> for the last old snapshot (1,2), and we can start a porting guide
> document (5) before everything lands in CVS (4).
> 
> Should be fun. And I think we'll have a much better library when we're
> done.
> 

So do I.

-David




More information about the cairo mailing list