Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7.9k
Support odd-length dash patterns in Agg.#17444
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
return 0; | ||
} | ||
Py_ssize_t nentries = PySequence_Size(dashes_seq); | ||
Py_ssize_t dash_pattern_length = (nentries % 2) ? 2 * nentries : nentries; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Can you add a comment what this is doing and why? It's hard to understand if one doesn't know the context.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
done
All vector backends already support passing an odd-length dash pattern,duplicating the on/off array (so that on the second repetition "on"becomes "off" and vice-versa). This is also explicitly supported bythe svg spec for `stroke-dasharray` ("If an odd number of values isprovided, then the list of values is repeated to yield an even number ofvalues. Thus, 5,3,2 is equivalent to 5,3,2,5,3,2.") and less explicitlyby the pdf and ps specs, and by cairo. So the backend needing supportis Agg; iterating twice over the sequence is likely simplest.
PR Summary
All vector backends already support passing an odd-length dash pattern,
duplicating the on/off array (so that on the second repetition "on"
becomes "off" and vice-versa). This is also explicitly supported by
the svg spec for
stroke-dasharray
("If an odd number of values isprovided, then the list of values is repeated to yield an even number of
values. Thus, 5,3,2 is equivalent to 5,3,2,5,3,2.") and less explicitly
by the pdf and ps specs, and by cairo. So the backend needing support
is Agg; iterating twice over the sequence is likely simplest.
PR Checklist