2d059fcc22
Implement support for text 'rotate' attribute: https://www.w3.org/TR/SVG11/text.html#TSpanElementRotateAttribute. Unlike other character-positioning attributes (x/y/dx/dy), rotate - is not cumulative - only applies to its respective node scope (does not affect other fragments in the current chunk) - has different padding semantics: if there are fewer rotate values than characters, the remaining characters use the last specified value from the closest ancestor To the last point, we now have to discriminate three states: - unspecified (default -> 0) - explicit value for the given character index - implicit value (last value in the closest ancestor) Local implicit values override implicit ancestor values -- but not explicit ancestor values. High level changes: - plumb 'rotate' attribute - expand per-character position info (ShapeBuffer) to include rotation - expand per-glyph position info (RunRec) to include rotation - expand PosAttrs to include rotation and add specific inheritance rules (see above) - pass computed rotation values to RSX blob buffers Bug: skia:10840 Change-Id: Ia19ec5e8bb6fea06d49a9bd72ace575c2ffd100e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/348877 Commit-Queue: Florin Malita <fmalita@google.com> Reviewed-by: Tyler Denniston <tdenniston@google.com> |
||
---|---|---|
.. | ||
audioplayer | ||
canvaskit | ||
particles | ||
pathkit | ||
skottie | ||
skparagraph | ||
skplaintexteditor | ||
skresources | ||
sksg | ||
skshaper | ||
svg |