skia2/modules/svg/include
Florin Malita 735ac97eb4 [svg] Relative postioning support for text
Introduce support for relative position adjustments [1]:

  - plumb dx, dy attributes
  - extend ScopedPosResolver to also handle the new attributes
  - introduce ShapeBuffer to store both utf8 text and position
    adjustments for shaping (replaces prev 'filtered' array).
  - position adjustments are cumulative (relative adjustments affect
    all following characters)
  - utf8 encoding is variable length; for simplicity, ensure that the
    pos adjustment array and the utf8 array are always the same size by
    repeating the pos adjustment times number of utf8 bytes
  - introduce a temporary buffer for retrieving utf8 cluster information
    from SkShaper
  - post-shaping, use the utf8 cluster info to map back to character
    indices and apply the associated position adjutment

[1] https://www.w3.org/TR/SVG11/text.html#TSpanElementDXAttribute

Bug: skia:10840
Change-Id: Ia9f227f91723400711ff2b5d260976290da1e2e5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/346636
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Tyler Denniston <tdenniston@google.com>
2020-12-22 19:19:12 +00:00
..
SkSVGAttribute.h [svg] Add feFlood filter node 2020-12-11 15:02:20 +00:00
SkSVGAttributeParser.h [svg] Convert stop-color and stop-opacity to presentation attrs 2020-12-09 21:37:17 +00:00
SkSVGCircle.h [svg] Minor cleanups 2020-12-11 16:25:20 +00:00
SkSVGClipPath.h Reland "[svg] Relocate out of experimental" 2020-10-16 02:32:41 +00:00
SkSVGContainer.h [svg] Minor cleanups 2020-12-11 16:25:20 +00:00
SkSVGDefs.h Reland "[svg] Relocate out of experimental" 2020-10-16 02:32:41 +00:00
SkSVGDOM.h [svg] Allow clients to pass a custom SkFontMgr 2020-11-11 01:51:44 +00:00
SkSVGEllipse.h [svg] Minor cleanups 2020-12-11 16:25:20 +00:00
SkSVGFe.h [svg] Prep work for filter primitive subregion 2020-12-11 18:21:21 +00:00
SkSVGFeColorMatrix.h [svg] Prep work for filter primitive subregion 2020-12-11 18:21:21 +00:00
SkSVGFeComposite.h [svg] Prep work for filter primitive subregion 2020-12-11 18:21:21 +00:00
SkSVGFeFlood.h [svg] Prep work for filter primitive subregion 2020-12-11 18:21:21 +00:00
SkSVGFeTurbulence.h [svg] Prep work for filter primitive subregion 2020-12-11 18:21:21 +00:00
SkSVGFilter.h [svg] Prep work for filter primitive subregion 2020-12-11 18:21:21 +00:00
SkSVGFilterContext.h [svg] Implement feComposite, basic filter result storage 2020-11-10 14:00:56 +00:00
SkSVGG.h Reland "[svg] Relocate out of experimental" 2020-10-16 02:32:41 +00:00
SkSVGGradient.h [svg] Minor cleanups 2020-12-11 16:25:20 +00:00
SkSVGHiddenContainer.h Reland "[svg] Relocate out of experimental" 2020-10-16 02:32:41 +00:00
SkSVGIDMapper.h Reland "[svg] Relocate out of experimental" 2020-10-16 02:32:41 +00:00
SkSVGLine.h [svg] Minor cleanups 2020-12-11 16:25:20 +00:00
SkSVGLinearGradient.h [svg] Minor cleanups 2020-12-11 16:25:20 +00:00
SkSVGNode.h [svg] Add feFlood filter node 2020-12-11 15:02:20 +00:00
SkSVGPath.h [svg] Minor cleanups 2020-12-11 16:25:20 +00:00
SkSVGPattern.h [svg] Minor cleanups 2020-12-11 16:25:20 +00:00
SkSVGPoly.h [svg] Fix filter region bounds 2020-12-15 16:15:19 +00:00
SkSVGRadialGradient.h [svg] Minor cleanups 2020-12-11 16:25:20 +00:00
SkSVGRect.h [svg] Minor cleanups 2020-12-11 16:25:20 +00:00
SkSVGRenderContext.h [svg] Refactor text rendering context plumbing 2020-12-15 16:54:42 +00:00
SkSVGShape.h [svg] Minor cleanups 2020-12-11 16:25:20 +00:00
SkSVGStop.h [svg] Minor cleanups 2020-12-11 16:25:20 +00:00
SkSVGSVG.h [svg] Minor cleanups 2020-12-11 16:25:20 +00:00
SkSVGText.h [svg] Relative postioning support for text 2020-12-22 19:19:12 +00:00
SkSVGTransformableNode.h [svg] Minor cleanups 2020-12-11 16:25:20 +00:00
SkSVGTypes.h [svg] Split out SkSVGColor from paint 2020-12-09 21:28:07 +00:00
SkSVGUse.h [svg] Minor cleanups 2020-12-11 16:25:20 +00:00
SkSVGValue.h [svg] Use new parsing for gradient classes 2020-11-10 19:04:49 +00:00