[cairo] Expected behavior of dashes, lines and patterns under transform

cu cairouser at yahoo.com
Sun Apr 29 14:39:41 PDT 2012

I've been trying to draw into Cairo context with transform matrix set.
Under scaling transform (with scaling factor of, say, 1000 with small
coordinate values supplied to drawing functions which then scale them up
to user level pixel coordinates) I've seen the following:

1. Line widths seem to be scaled up (which is counter-intuitive)

2. Even if transform is set before drawing and reset to identity before
setting line width, lines don't look quite the same as if scaled
coordinates are used as input - anialiasing is relatively poor.

3. Can't tell for sure what happens with dashes - they seem not to work
half the time (endless loops, perhaps the new release takes care of
that). It seems that dash lengths are scaled as well. Resetting to
identity before drawing dashed lines helps somewhat, but dash lengths
still appear "off" (different from drawing with pre-scaled coordinates).

4. I was unable to draw a source "sprite" pattern  onto a scaled
surface, no matter what combination of scaling/resetting to
identity/moving etc. I tried.

How much of that is expected behavior? Is there a document that
describes in more detail what the expected behavior of dashes,
lines/widths and patterns (i.e. other images used as "sprites") under
transform should be?

More information about the cairo mailing list