[cairo] cairo_set_dash performance
cairouser at yahoo.com
Thu Feb 5 20:39:36 PST 2009
Thanks for the reply, this seems promising but could you elaborate on a
few points (sorry, I am being dense).
1) when you talk about dashed area vs. "small portion being rendered"
does this apply to other shapes?
I.e. if I have a long line describing what would appear as a polygon,
but only draw it as an outline - it would be better to not "close" the
shape (cairo_close_path at the end) but rather split the line into a few
shorter pieces and draw each one separately?
2) I actually switched from integer to double values just recently - I
wonder if this has any effect. Will switch back and retry :) All the
dash patterns are described with whole numbers, no fractions (but I
wonder if this matters for lines that are not axis aligned?)
> Dashes compared to normal lines are pretty expensive, especially if the
> lines were always pixel aligned (and resulted in pixel aligned regions
> being filled). There are some things you can do, though:
> 1) If you're drawing something like a dashed rectangle, where there's a
> large surface area but only a small portion of it is actually rendered
> to, you can often get better performance by drawing each side
> separately. (I don't know if this is still the case with the scanline
> 2) Try to ensure that your dash patterns all result in pixel aligned
> dashes; effectively this means that your lines must start/end on integer
> pixels (and fully fill those pixels), and that the dash pattern should
> be composed of integers only. All gets thrown out the door if you have
> scaling/rotation/etc. going on, though.
> - Vlad
> cairo mailing list
> cairo at cairographics.org
More information about the cairo