skia2/modules/svg/include
Tyler Denniston 0a145b77f7 [svg] Compute and use filter primitive subregion
Spec: https://www.w3.org/TR/SVG11/filters.html#FilterPrimitiveSubRegion

The filter primitive subregion restricts the output of a specific <fe*>
node in a filter DAG. By default it's equal to the union of subregions
of all input filters, or the filter region if no inputs exist. If
x/y/w/h are specified on the <fe*> node, those are used to bound the
primitive subregion instead.

In this CL:
- Implement the computation of the primitive subregion in
  SkSVGFe::resolveFilterSubregion
- Add primitiveUnits to filter context
- Change result registration (by string ID) in filter context to include
  the primitive subregion of that result. This is needed because filters
  referencing previous results need access to those primitive subregions
  to compute the union.

Bug: skia:10841
Change-Id: I66fbb4979e3c65cb5e5cc61f98286ec7ad023438
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/344666
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
2021-01-11 17:42:57 +00:00
..
SkSVGAttribute.h [svg] Add feFlood filter node 2020-12-11 15:02:20 +00:00
SkSVGAttributeParser.h [svg] Text rotate support 2021-01-05 17:43:51 +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] Compute and use filter primitive subregion 2021-01-11 17:42:57 +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] Compute and use filter primitive subregion 2021-01-11 17:42:57 +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] Text rotate support 2021-01-05 17:43:51 +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