[cairo] cairo_new_sub_path: Making cairo_arc easier to use and more

Carl Worth cworth at cworth.org
Mon Jan 23 18:08:52 PST 2006

On Mon, 23 Jan 2006 14:37:01 -0800, Bill Spitzak wrote:
> Sounds like a great idea. I really like this because it makes it a lot 
> easier to emulate other graphics API's on Cairo, ones that work like 
> this. It is a lot easier to emulate a PostScript style on top of this 
> than the other way around!

Thanks. The concept seems fairly well accepted so far.

Already there have been a couple of complaints (on and off list) about
the name, but I don't have a good substitute yet.

> Only question I have is the same as another poster: what does close_path 
> do? I'm thinking it *should* do a new_sub_path because otherwise you 
> would have three lines joining at a point, which you may want to avoid 
> having to define the exact results of.

Oh, in that sense, yes, it does need to start a new sub path.

I suppose it could still preserve the current point after the
close_path, (in which case we could define it as doing an implicit
move_to at the end).

Or we could just decide that preserving the current point after close
path was a bug and we could make it to the new_sub_path.

> > 	if (has_current_point)
> > 	    cairo_line_to (cr, x, y);
> > 	else
> > 	    cairo_move_to (cr, x, y);
> > 
> > can become:
> > 
> > 	cairo_move_to (cr, x, y);
> The second example probably should say line_to, not move_to.

Yes, my mistake.

> I would suggest that move_to be removed entirely from the cairo 
> interface, by removing the code from the path-enumeration api and 
> replacing it with the new_sub_path code. move_to can be emulated by 
> calling new_sub_path and line_to.

Aside from compatibility problems, this would actually be "harder" for
the user to deal with. With move_to and line_to, (and the documented
rule that all line_to calls after a new_sub_path will be turned into a
move_to), there is an unambiguous meaning for each operation. With an
exposed new_sub_path the user would be required to maintain more state
in order to handle two different actions for line_to.


-------------- 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/20060123/50ae19a9/attachment.pgp

More information about the cairo mailing list