[cairo] Cairo developers conference call 2004-10-19 18:00 UTC

Carl Worth cworth at cworth.org
Fri Oct 15 11:55:56 PDT 2004

On Fri, 15 Oct 2004 21:16:09 +0530, Ravindra wrote:
> Following are some of the requirements. All are followed by a WHY
> statement. I talked to you about some of these before also. Please don't
> mind, if you find something is repeated.

Thanks for the list. I don't mind you repeating some feature requests if
you don't mind me repeating some replies.

I've already responded to the antialiasing request in another
reply. Please follow up in that thread.

> 2. Lines with single end cap
> 3. Lines with different end caps for both the ends

My plan here is to enable the user to provide full-custom caps, (eg. for
arrow-heads etc.). Basically, the approach will be for the user to call
cairo_stroke_path, (a function which is still in progress), then add the
custom caps, and then fill the path.

In order for this work seamlessly, you'll probably also need to be able
to query the coordinates of the butt caps used during the
cairo_stroke_path. This is especially important if the path is to be
filled with alpha < 1.0.

I've added a note to the cairo/TODO file for this item.

> 4. End caps for dashes in a line

I think the dashes are already capped. If not, there's a bug there. Or
do you need custom caps on the dashes too? That might be trickier.

Oh, and there is currently a bug in that only the final sub-path of a
complex path is getting caps. I'll be sure to check the capped-dash
situation at the same time I fix that one.

> 5. PathGradient pattern

I'll still need to learn what this is. I know there are some old threads
on this which I will dig up. I know that I do want to add some sort of
full-custom gradient to cairo, but I'm not yet sure what form that
should take.

> 6. Support for Bitwise operations for drawing stuff like self erasing
> line

Bitwise manipulation of pixels won't happen in cairo. It just can't be
supported in all backends.

If you want to restrict yourself to the image backend, then cairo will
gladly draw to a chunk of memory in your own address space. You're free
to do whatever twiddling you want in that memory, (though we'll likely
need to add a call so that you can let cairo know the image (or a region
of it) is dirty).

Otherwise, if you just want to "erase" a line, you should be able to
take care of that in your own code, (eg. redrawing the background
objects, or saving/restoring an image of the relevant portion of the
background). Another thing that might help with cases like this is a
cairo-based canvas library. But, that would be a separate effort from
cairo itself.

I hope that helps.

If we're talking past each other on any of these points, then lets try
to get together on the conference call and help each other understand
the positions.

Thanks again,


More information about the cairo mailing list