aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental/svg/model
Commit message (Collapse)AuthorAge
* Guard ignored SVG attribute logging with SK_VERBOSE_SVG_PARSINGGravatar Florin Malita2018-02-16
| | | | | | | Change-Id: I01bb8c70dfcd3180aaf620f987b99ae0286cc48c Reviewed-on: https://skia-review.googlesource.com/108160 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* report ignore attr once onlyGravatar Cary Clark2018-02-16
| | | | | | | | | | | | | | bots like this one https://chromium-swarm.appspot.com/task?id=3bb84dda02fc0e10 fill its log with this debug message, so just write it once R=fmalita@chromium.org Bug: skia: Change-Id: Ia82d89aa23c3a5984080f5d9efdc03ff18b6515e Reviewed-on: https://skia-review.googlesource.com/108100 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Enable conditional-uninitialized flagGravatar Kevin Lubick2018-01-05
| | | | | | | | | Bug: skia:7462 Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-SKNX_NO_SIMD Change-Id: I1c0a09984bf28a5c620a89af56040f018bae6310 Reviewed-on: https://skia-review.googlesource.com/90941 Commit-Queue: Kevin Lubick <kjlubick@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* [SVGDom] Add 'stroke-dashoffset' supportGravatar Florin Malita2017-10-13
| | | | | | | | https://www.w3.org/TR/SVG/painting.html#StrokeDashoffsetProperty Change-Id: Ia25d0048a56ac3835cabcb4e1794d91667367d7c Reviewed-on: https://skia-review.googlesource.com/59820 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [SVGDom] Add 'stroke-dasharray' supportGravatar Florin Malita2017-10-13
| | | | | | | | https://www.w3.org/TR/SVG/painting.html#StrokeDasharrayProperty Change-Id: I9a63ebbd958d661c865ed405570b86cca68f63bf Reviewed-on: https://skia-review.googlesource.com/59700 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Robert Phillips <robertphillips@google.com>
* [SVGDom] Add 'visibility' supportGravatar Florin Malita2017-10-12
| | | | | | | | | https://www.w3.org/TR/SVG/painting.html#VisibilityProperty Change-Id: I8b872af26150d93cf39cf8eeba23c91e1decace3 Reviewed-on: https://skia-review.googlesource.com/58863 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [SVGDom] Initial <pattern> supportGravatar Florin Malita2017-10-11
| | | | | | | | | https://www.w3.org/TR/SVG/pservers.html#Patterns Change-Id: I80455c4ae04cf03526f8e8797f40b0b2d24e043f Reviewed-on: https://skia-review.googlesource.com/58461 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Robert Phillips <robertphillips@google.com>
* [SVGDom] Avoid some unneeded canvas save()sGravatar Florin Malita2017-10-11
| | | | | | | | | | | The canvas only needs to be saved once, per local SkSVGRenderContext. Add a helper (saveOnce) to implement this optimization. Change-Id: I0c21fa78ad9fd5d3d11de0a29f8441620488d676 Reviewed-on: https://skia-review.googlesource.com/58340 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Robert Phillips <robertphillips@google.com>
* [SVGDom] Initial <use> supportGravatar Florin Malita2017-10-11
| | | | | | | | | https://www.w3.org/TR/SVG/struct.html#UseElement Change-Id: Id85c2648255dcd4763bf11c7bdb8b1490286f1e4 Reviewed-on: https://skia-review.googlesource.com/58260 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Robert Phillips <robertphillips@google.com>
* [SVGDom] Fix SkSVGTransformableNode::mapToParent()Gravatar Florin Malita2017-10-11
| | | | | | | | | | The method is used for clip path resolution, and is supposed to transform the path into parent node coords -- so it should use the forward matrix, not the inverse. Change-Id: Id6eb9fbaf024b083e19f56eddb1c293becea48fc Reviewed-on: https://skia-review.googlesource.com/58280 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [SVGDom] Add clip-rule supportGravatar Florin Malita2017-10-10
| | | | | | | | | | | | | Currently we use 'fill-rule' when emitting clip paths. This is wrong: per spec [1], clip paths observe 'clip-rule', not 'fill-rule'. [1] https://www.w3.org/TR/SVG/masking.html#ClipRuleProperty Change-Id: Idf81de05e9601663c8dbc9856900ffa679daf4a5 Reviewed-on: https://skia-review.googlesource.com/57661 Reviewed-by: Robert Phillips <robertphillips@google.com> Reviewed-by: Stephan Altmueller <stephana@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [SVGDom] stroke-miterlimit supportGravatar Florin Malita2017-10-10
| | | | | | | | https://www.w3.org/TR/SVG/painting.html#StrokeMiterlimitProperty Change-Id: I5e488e95afe17c4b753e8177ea5783d4820e3d2c Reviewed-on: https://skia-review.googlesource.com/57221 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [SVGDom] Add support for <a> elementsGravatar Florin Malita2017-10-10
| | | | | | | | | | | | | | | https://www.w3.org/TR/SVG/linking.html#AElement The Skia SVG DOM is not a user agent, so link semantics are not particularly interesting. But since <a> can wrap actual content, it is important to not drop it on the floor. The simplest thing to do is turn it into a <g> node and run with it. Change-Id: I4e103553354746ceb49bc1038680a1c477a1320a Reviewed-on: https://skia-review.googlesource.com/57620 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [SVGDom] Fix href handling for radial gradientsGravatar Florin Malita2017-10-10
| | | | | | | | | | Currently, the href logic only visits linear gradient nodes. Update to also visit radial gradients, per https://www.w3.org/TR/SVG/pservers.html#RadialGradientElementHrefAttribute. Change-Id: I8d33d9faa65dae776c13e134c497acccfb428abb Reviewed-on: https://skia-review.googlesource.com/57480 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* [SVGDom] Radial gradient supportGravatar Florin Malita2017-10-09
| | | | | | | | | | | | Implement support for https://www.w3.org/TR/SVG/pservers.html#RadialGradients. BUG=skia:7074 Change-Id: I19645a4a3bbddfd1ee0d08a2775381a0017acbfc Reviewed-on: https://skia-review.googlesource.com/57340 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Robert Phillips <robertphillips@google.com>
* [SVGDom] Factor out common gradient logicGravatar Florin Malita2017-10-09
| | | | | | | | | | In preparation of radial gradient support, move common logic into an abstract base class (SkSVGGradient). Change-Id: Ie5361048ca8fddd9070c573c8daef0d0f57dc95e Reviewed-on: https://skia-review.googlesource.com/57108 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Fix SkSVGDOM length & presentation context scopingGravatar Florin Malita2017-09-09
| | | | | | | | | | TBR= BUG=skia:7033 Change-Id: I07584acc35253acfd6ca2c3c91c615bb507f7601 Reviewed-on: https://skia-review.googlesource.com/44620 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* SkCanvas: Helpers for draw{Point,Line,Circle}Gravatar Hal Canary2017-05-16
| | | | | | | Change-Id: Ie9c7d3b8f01aee435563b23b7d27f098f07dd287 Reviewed-on: https://skia-review.googlesource.com/16909 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Mark overridden destructors with 'override' and remove 'virtual'Gravatar Brian Salomon2017-03-22
| | | | | | | | | This silences a new warning in clang 5.0 Change-Id: Ieb5b75a6ffed60107c3fd16075d2ecfd515b55e8 Reviewed-on: https://skia-review.googlesource.com/10006 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* [SVGDom] Clipped clipPath supportGravatar Florin Malita2016-12-09
| | | | | | | | | | | | | | | | | ClipPaths can be clipped too, e.g.: <clipPath id="clip1" clip-path="url(#clip2)">...</clipPath> Since we're not really drawing clips but resolving their geometry, asPath() needs to take composed clipping into account (and intersect as needed). R=reed@google.com,robertphillips@google.com,stephana@google.com Change-Id: I25959e22fe50f72042147cfe6b416b6b9ac20cd4 Reviewed-on: https://skia-review.googlesource.com/5720 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [SVGDom] ClipPath supportGravatar Florin Malita2016-12-08
| | | | | | | | | | | | | * clip-path attribute handling * clipPath container element * asPath() SkSVGNode virtual for capturing subtree geometry R=robertphillips@google.com,stephana@google.com Change-Id: I9597534fe3047b631da6309eafac055dff5696e9 Reviewed-on: https://skia-review.googlesource.com/5650 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [SVGDom] Add fill-rule supportGravatar Florin Malita2016-12-06
| | | | | | | | | | | | | | | | There's a bit of friction with this attribute, because per spec it is an inherited presentation attribute, but in Skia it is part of the actual SkPath state. So we must add some plumbing to SkSVGShape & friends to allow overriding the fill type at render-time. R=robertphillips@google.com,stephana@google.com Change-Id: I9c926d653c6211beb3914bffac50d4349dbdd2c0 Reviewed-on: https://skia-review.googlesource.com/5415 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* [SVGDom] Opacity optimizationGravatar fmalita2016-09-20
| | | | | | | | | | | Apply opacity as fill/stroke paint alpha instead of saveLayer, when possible. R=robertphillips@google.com,stephana@google.com,reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2353503005 Committed: https://skia.googlesource.com/skia/+/3dbb7b9f196d793fbd16243157ee67638891f5dc Review-Url: https://codereview.chromium.org/2353503005
* Revert of [SVGDom] Opacity optimization (patchset #4 id:60001 of ↵Gravatar borenet2016-09-20
| | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/2353503005/ ) Reason for revert: Failing assertion Original issue's description: > [SVGDom] Opacity optimization > > Apply opacity as fill/stroke paint alpha instead of saveLayer, when > possible. > > R=robertphillips@google.com,stephana@google.com,reed@google.com > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2353503005 > > Committed: https://skia.googlesource.com/skia/+/3dbb7b9f196d793fbd16243157ee67638891f5dc TBR=reed@google.com,robertphillips@google.com,stephana@google.com,fmalita@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2359603002
* [SVGDom] Opacity optimizationGravatar fmalita2016-09-20
| | | | | | | | | | Apply opacity as fill/stroke paint alpha instead of saveLayer, when possible. R=robertphillips@google.com,stephana@google.com,reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2353503005 Review-Url: https://codereview.chromium.org/2353503005
* [SVGDom] Only apply opacity when neededGravatar fmalita2016-09-19
| | | | | | | | | Opacity: 1 is a no-op, but it shows up quite a bit in existing documents. R=robertphillips@google.com,stephana@google.com,reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2349143002 Review-Url: https://codereview.chromium.org/2349143002
* [SVGDom] Expose intrinsic size infoGravatar fmalita2016-09-14
| | | | | | | | | | | | | | * expose intrinsic size info on <svg> nodes. * tweak the SkSVGDOM constructor to no longer take an container size param, but instead default to intrinsic size * update clients to call SkSVGDOM::setContainerSize() explicitly, when needed R=robertphillips@google.com,stephana@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2345533002 Review-Url: https://codereview.chromium.org/2345533002
* [SVGDom] Linear gradient 'gradientTransform' supportGravatar fmalita2016-09-13
| | | | | | | R=stephana@google.com,robertphillips@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339533002 Review-Url: https://codereview.chromium.org/2339533002
* [SVGDom] Linear gradient 'spreadMethod' supportGravatar fmalita2016-09-13
| | | | | | | R=stephana@google.com,robertphillips@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2337203002 Review-Url: https://codereview.chromium.org/2337203002
* [SVGDom] Initial linear gradient supportGravatar fmalita2016-09-12
| | | | | | | | | | | | | | | Kind of a big change, to connect several new bits into something useful: * ID tracking & lookup * new asPaint() node virtual to support shader (and in the future filter) based paint servers * <defs>, <linearGradient> and <stop> element support * 'href', 'offset', 'stop-color', 'stop-opacity' attribute support * IRI/FuncIRI and rgb(...) parsing BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2327233003 Review-Url: https://codereview.chromium.org/2327233003
* [SVGDom] Don't truncate opacity scalarsGravatar fmalita2016-08-29
| | | | | | | | | Round instead, for more accurate values. R=robertphillips@google.com,stephana@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2284123003 Review-Url: https://codereview.chromium.org/2284123003
* Reland: Experimental parsing expression grammar (PEG) template libraryGravatar fmalita2016-08-25
| | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2271743002 Committed: https://skia.googlesource.com/skia/+/9d08cbc8c6131ff61a1e71cc5c8cf27841d62b42 Review-Url: https://codereview.chromium.org/2271743002
* Revert of Experimental parsing expression grammar (PEG) template library ↵Gravatar fmalita2016-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | (patchset #8 id:140001 of https://codereview.chromium.org/2271743002/ ) Reason for revert: G3 roll & Msan woes. Original issue's description: > Experimental parsing expression grammar (PEG) template library > > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2271743002 > > Committed: https://skia.googlesource.com/skia/+/9d08cbc8c6131ff61a1e71cc5c8cf27841d62b42 TBR=mtklein@google.com,bungeman@google.com,reed@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2275943004
* Experimental parsing expression grammar (PEG) template libraryGravatar fmalita2016-08-24
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2271743002 Review-Url: https://codereview.chromium.org/2271743002
* [SVGDom] Fix <ellipse> positioningGravatar fmalita2016-08-17
| | | | | | | R=robertphillips@google.com,stephana@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2253283002 Review-Url: https://codereview.chromium.org/2253283002
* [SVGDom] Add support for assorted absolute unitsGravatar fmalita2016-08-17
| | | | | | | R=robertphillips@google.com,stephana@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2259473002 Review-Url: https://codereview.chromium.org/2259473002
* [SVGDom] Add <line> supportGravatar fmalita2016-08-17
| | | | | | | R=robertphillips@google.com,stephana@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2244223005 Review-Url: https://codereview.chromium.org/2244223005
* [SVGDom] Add <circle>, <ellipse> supportGravatar fmalita2016-08-16
| | | | | | | R=robertphillips@google.com,stephana@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2249033003 Review-Url: https://codereview.chromium.org/2249033003
* [SVGDom] Add opacity supportGravatar fmalita2016-08-15
| | | | | | | | | | Group opacity support. Unlike the other presentation attributes we support thus far, group opacity is not inherited. R=robertphillips@google.com,stephana@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2246943002 Review-Url: https://codereview.chromium.org/2246943002
* [SVGDom] SVGPong sample appGravatar fmalita2016-08-12
| | | | | | | | | Shows off SVG dom-based animations. R=robertphillips@google.com,stephana@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2243853003 Review-Url: https://codereview.chromium.org/2243853003
* [SVGDom] <polygon> & <polyline> supportGravatar fmalita2016-08-12
| | | | | | | R=robertphillips@google.com,stephana@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2235273003 Review-Url: https://codereview.chromium.org/2235273003
* [SVGDom] Add more presentation attributes.Gravatar fmalita2016-08-11
| | | | | | | | | | | | | | | | Implement proper presentation attribute inheritance, and add support for * fill-opacity * stroke-linecap * stroke-linejoin * stroke-opacity * stroke-width R=robertphillips@google.com,stephana@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2234153002 Review-Url: https://codereview.chromium.org/2234153002
* [SVGDom] Add rx/ry support for <rect>Gravatar fmalita2016-08-10
| | | | | | | R=stephana@google.com,robertphillips@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2234863002 Review-Url: https://codereview.chromium.org/2234863002
* [SVGDom] Disable verbose parsing messages be defaultGravatar fmalita2016-08-10
| | | | | | | | | Guard with SK_VERBOSE_SVG_PARSING R=robertphillips@google.com,rmistry@google.com,stephana@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2235963003 Review-Url: https://codereview.chromium.org/2235963003
* [SVGDom] Improve whitespace handling in style parsingGravatar fmalita2016-08-08
| | | | | | | | | Handle whitespace-padded style names/values. R=stephana@google.com,robertphillips@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2225623002 Review-Url: https://codereview.chromium.org/2225623002
* [SVGDom] Improved transform parsingGravatar fmalita2016-08-08
| | | | | | | | | Update 'transform' attribute parsing to a more robust, SkSVGAttributeParser-based implementation. R=robertphillips@google.com,stephana@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2220933003 Review-Url: https://codereview.chromium.org/2220933003
* [SVGDom] Add viewBox supportGravatar fmalita2016-08-08
| | | | | | | | | | | | | | | | | | | | The main feature is <svg> viewBox and proper viewport support, but the CL touches a few other things: * refactor SkSVGRenderContext to auto-restore canvas state, and split the presentation bits into a separate CoW SkSVGPresentationContext * introduce SkSVGNode::onPrepareToRender(), as a way for nodes to push their custom state before the actual onRender() call (instead of relying on non-virtual SkSVGNode to know about all possible state bits) * add a "Type" suffix to SVG types, to disambiguate (e.g. SkSVGRectType vs. SkSVGRect) R=robertphillips@google.com,stephana@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2222793002 Review-Url: https://codereview.chromium.org/2222793002
* [SVGDom] Initial SVGLength supportGravatar fmalita2016-08-03
| | | | | | | | | | Mostly plumb new length types, but also introduce a stateful parser, rect shape and named color support. R=reed@google.com,robertphillips@google.com,stephana@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2202053002 Review-Url: https://codereview.chromium.org/2202053002
* [SVGDom] Parse style attributesGravatar fmalita2016-07-29
| | | | | | | | | | Dispatch style-encoded (style="foo: bar; ...") attributes via normal attribute setters. R=reed@google.com,robertphillips@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2193663002 Review-Url: https://codereview.chromium.org/2193663002
* Initial SVG modelGravatar fmalita2016-07-26
A minimal subset needed to render tiger.svg: <svg>, <g>, <path>, 'd', 'fill'/'stroke' (color-only), 'transform'. R=reed@google.com,robertphillips@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2164193002 Review-Url: https://codereview.chromium.org/2164193002