[cairo] API Status?

Carl Worth cworth at cworth.org
Tue Apr 5 12:23:17 PDT 2005


On Tue, 5 Apr 2005 12:11:18 -0600, "Peter Dennis Bartok" wrote:
> There seems to have been a flurry of API redo activity lately. Could 
> somebody be so kind and provide a status as to where the cairo public API 
> stands at the moment? Are all the major changes already done (in CVS), (ie, 
> is it close to being a 1.0 API), or are major changes still to be 
> anticipated?

There are still a fair number of changes in progress. I've been
keeping notes on the API Shakeup in cairo/TODO which you can view
online at:

	http://cvs.cairographics.org/*checkout*/cairo/TODO

> Just asking to get a feel whether we should migrate our libgdiplus library 
> to use the latest cairo or wait a bit longer, so we don't have to do it 
> twice.

To avoid porting twice, you'll want to wait. But I have been keeping
the old API almost entirely alive, so that if there is something
interesting in CVS that you want, you can go ahead and try it out.

I've put the current version of the API Shakeup chart from cairo/TODO
below.

From that, you can see that we've been focusing on the "somewhat
backwards-compatible changes first". Each entry in the table
corresponds to an "API Shakeup" thread of a similar name.

I've got patches nearly finished for cairo_paint, set_source,
current_matrix, and fill_preserve.

After those and cairo_mask, I think everything else is either trivial
to implement, or completely new functionality (so there's no porting
concern). So once we reach that point, I'll do all the "eliminating"
changes which will break backwards compatibility. At that point, I
will recommend people start porting and we'll draw up a porting guide
to help with the process.

Thanks for your patience during this process.

-Carl

API Shakeup planning
--------------------
 Patch submitted to mailing list?
/ Documentation included in patch?
|/ Review of patch completed?
||/ Test case included?
|||/ Committed.
||||/
Somewhat backwards-compatible changes
-----------------------------------
PDRTC	user data (was Re: [cairo] Patch improving fallbacks)
PDRTC	setters and getters
PDR C	cairo_output_stream_t and cairo_surface_finish()
PDRTC	cairo_current_path -> cairo_copy_path_data
PDR C	cairo_surface_finish, cairo_surface_flush
PD  C	Abbreviation hunt: cairo_init_clip and cairo_concat_matrix
-----	Renaming the terms of the rendering equation
PD	default matrix
	cairo_paint
	cairo_begin_group, cairo_end_group, cairo_get_group
	Making set_source consistent
-----	cairo_stroke_path -> cairo_stroke_to_path
	cairo_current_matrix
	cairo_mask
	cairo_create and eliminating cairo_set_target_surface
	cairo_fill_preserve, cairo_stroke_preserve, cairo_clip_preserve
	cairo_<device>_surface_mark_dirty
	A hidden offset for the xlib backend
	Simplifying the operator set
	Consistent error handling for all objects

Backwards incompatible
----------------------
	Eliminating cairo_copy
	Eliminating cairo_surface_set_repeat/matrix/filter
	Eliminating cairo_show_surface
-------------- 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/20050405/5307b514/attachment.pgp


More information about the cairo mailing list