[cairo] [cairo-announce] cairo snapshot 1.3.2 now available

Steve Chaplin stevech1097 at yahoo.com.au
Sun Jan 7 18:52:31 PST 2007


On Wed, 2006-11-15 at 15:28 -0800, Carl Worth wrote:
> API additions
> -------------
> Several new API additions are available in this release. There is a
> common theme among all the additions in that they allow cairo to
> advertise information about its state that it was refusing to
> volunteer earlier. So this isn't groundbreaking new functionality, but
> it is essential for easily achieving several tasks.
> 
> The new functions can be divided into three categories:
> 
> 	Getting information about the current clip region
> 	-------------------------------------------------
> 	cairo_clip_extents
> 	cairo_copy_clip_rectangles
> 	cairo_rectangle_list_destroy
> 
> 	Getting information about the current dash setting
> 	--------------------------------------------------
> 	cairo_get_dash_count
> 	cairo_get_dash
> 
> 	Getting information from a pattern
> 	----------------------------------
> 	cairo_pattern_get_rgba
> 	cairo_pattern_get_surface
> 	cairo_pattern_get_color_stop_rgba
> 	cairo_pattern_get_color_stop_count
> 	cairo_pattern_get_linear_points
> 	cairo_pattern_get_radial_circles
> 
> In each of these areas, we have new API for providing a list of
> uniform values from cairo. The closest thing we had to this before was
> cairo_copy_path, (which is rather unique in providing a list of
> non-uniform data).
> 
> The copy_clip_rectangles/rectangle_list_destroy functions follow a
> style similar to that of cairo_copy_path. Meanwhile, the dash and
> pattern color stop functions introduce a new style in which there is a
> single call to return the number of elements available (get_dash_count
> and get_color_stop_count) and then a function to be called once to get
> each element (get_dash and get_color_stop_rgba).
> 
> I'm interested in hearing feedback from users of these new API
> functions, particularly from people writing language bindings. One
> open question is whether the clip "getter" functionality should adopt
> a style similar to that of the new dash and color_stop interfaces.

Are you saying that the new dash and color_stop interfaces are similar
and that the new clip "getter" is different? I can't see that.

I've started to implement the new API for the Python bindings.

In Python notation
cairo_get_dash()
  returns a list of dashes and an offset == [1.0, 2.0, 3.0, 4.0], offset

cairo_copy_clip_rectangles()
  returns a list of rectangles == [(x,y,w,h), (x,y,w,h), ...]

cairo_copy_path()
  returns a list of path elements == [(type, points), (type,
points), ...]

cairo_pattern_get_color_stop_rgba()
  returns one item from a list   list[i] == (o,r,g,b,a)
                           where list    == [(o,r,g,b,a),
(o,r,g,b,a), ...]

It looks like cairo_pattern_get_color_stop_rgba() is the odd one out -
it returns an item from a list whereas the others return lists.
Why not simply return the whole list?

Steve

Send instant messages to your online friends http://au.messenger.yahoo.com 


More information about the cairo mailing list