[cairo] Getting started

Vladimir Vukicevic vladimirv at gmail.com
Mon Jul 25 07:54:09 PDT 2005


On 7/25/05, Behdad Esfahbod <behdad at cs.toronto.edu> wrote:
>   - Do not translate.
> 
>   - For drawing lines, set width to 1 and add +0.5,+0.5 to all
> points.

You don't want +0.5,+0.5 to all points though, especially not for
horizontal/vertical lines.  (See my original reply.)  However, in
thinking about it, if you use CAIRO_LINE_CAP_SQUARE (instead of the
default BUTT), then adding +0.5,+0.5 should give you correct (and
still fast) results.

>   - When drawing filled stroked rectangles, do not use the same
> path for both fill and stroke.  Use integer coordinates for the
> fill, and half-off coordinates for the stroke.  This is the only
> way to avoid alpha-blending.
> 
> I wish there was a way to have a fill+stroke to use the same path
> and still be fast, but I that's only an issue with axis-aligned
> rectangles.

Yeah, this is a bit of a pain.  To be more accurate, you want integer
coordinates for fill or for even line widths, and you want offset
coordinates for odd line widths.  I don't think there's a good way
around this though, unfortunately.

    - Vlad



More information about the cairo mailing list