[cairo] Problems with cairo_get_line_width and "new" semantics
spitzak at d2.com
Fri May 19 17:52:11 PDT 2006
I think you want the dashes to be in pen space, or in their own space
that is not tied to the CTM.
This is because the main use is to switch between one (or a small set)
of dash patterns and solid, repeatedly, as portions of the drawing are
done. Since the line width is not changing, the programmer probably does
not want the dash pattern to change depending on the current transform
This is not really inconsistent with Cairo using user space for all the
api, because the dash is specified with single numerical lengths, not
the xy vectors that would be needed for a coordinate api.
If, as you indicate, having a different dashCTM and penCTM is not any
harder than using penCTM for everything, then probably there should be a
call to set the dashCTM. This would replace the "dashscale" I proposed
earlier. To emulate the set-pen-width call, it would copy the CTM to
dashCTM, and scale it up by the width and put that in the penCTM. It may
also be a good idea to have set_pen_matrix() always set the dash matrix
to the same value, to avoid two calls in the common case where they want
to be the same.
Carl Worth wrote:
> So when I made the changes for the line-width-scale branch I changed
> this to use the pen matrix rather than the CTM.
> But know you've got me thinking about whether that's the right matrix
> to use.
More information about the cairo