Florin Malita
ffe6ae49e4
[SVGDom] Add 'visibility' support
...
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>
2017-10-12 17:06:34 +00:00
Florin Malita
1aa1bb65fd
[SVGDom] Initial <pattern> support
...
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>
2017-10-11 18:56:38 +00:00
Florin Malita
6a69c053ff
[SVGDom] Initial <use> support
...
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>
2017-10-11 18:21:37 +00:00
Florin Malita
57a0edf7ba
[SVGDom] Add clip-rule support
...
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>
2017-10-10 19:23:23 +00:00
Florin Malita
4de426b242
[SVGDom] stroke-miterlimit support
...
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>
2017-10-10 16:20:43 +00:00
Florin Malita
f6143ffa3a
[SVGDom] Add support for <a> elements
...
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>
2017-10-10 15:03:42 +00:00
Florin Malita
cc6cc2963b
[SVGDom] Radial gradient support
...
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>
2017-10-09 20:26:54 +00:00
Florin Malita
ebca0ddac0
Fix SkSVGDOM length & presentation context scoping
...
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>
2017-09-09 14:06:28 +00:00
Florin Malita
ce8840e384
[SVGDom] ClipPath support
...
* 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>
2016-12-08 15:00:18 +00:00
Florin Malita
e932d4b3a9
[SVGDom] Add fill-rule support
...
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>
2016-12-06 16:05:41 +00:00
fmalita
e1baa7c105
[SVGDom] Expose intrinsic size info
...
* 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
2016-09-14 12:04:30 -07:00
fmalita
ceb93abddc
[SVGDom] Linear gradient 'gradientTransform' support
...
R=stephana@google.com ,robertphillips@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339533002
Review-Url: https://codereview.chromium.org/2339533002
2016-09-13 13:59:05 -07:00
fmalita
cecd617a42
[SVGDom] Linear gradient 'spreadMethod' support
...
R=stephana@google.com ,robertphillips@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2337203002
Review-Url: https://codereview.chromium.org/2337203002
2016-09-13 12:56:11 -07:00
fmalita
28d5b72d86
[SVGDom] Initial linear gradient support
...
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
2016-09-12 17:06:47 -07:00
fmalita
d24ee1419f
[SVGDom] Add <line> support
...
R=robertphillips@google.com ,stephana@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2244223005
Review-Url: https://codereview.chromium.org/2244223005
2016-08-17 08:38:15 -07:00
fmalita
dc4c2a9fb7
[SVGDom] Add <circle>, <ellipse> support
...
R=robertphillips@google.com ,stephana@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2249033003
Review-Url: https://codereview.chromium.org/2249033003
2016-08-16 15:38:51 -07:00
fmalita
6fb0648c35
[SVGDom] Add opacity support
...
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
2016-08-15 12:45:11 -07:00
fmalita
ca39d716f1
[SVGDom] SVGPong sample app
...
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
2016-08-12 13:17:11 -07:00
fmalita
5b31f321fc
[SVGDom] <polygon> & <polyline> support
...
R=robertphillips@google.com ,stephana@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2235273003
Review-Url: https://codereview.chromium.org/2235273003
2016-08-12 12:15:33 -07:00
fmalita
2d961e086b
[SVGDom] Add more presentation attributes.
...
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
2016-08-11 09:16:29 -07:00
fmalita
286a8657da
[SVGDom] Add rx/ry support for <rect>
...
R=stephana@google.com ,robertphillips@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2234863002
Review-Url: https://codereview.chromium.org/2234863002
2016-08-10 17:11:29 -07:00
fmalita
fea704e115
[SVGDom] Disable verbose parsing messages be default
...
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
2016-08-10 16:25:33 -07:00
fmalita
61f36b3708
[SVGDom] Improve whitespace handling in style parsing
...
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
2016-08-08 13:58:50 -07:00
fmalita
c97796b47b
[SVGDom] Improved transform parsing
...
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
2016-08-08 12:58:57 -07:00
fmalita
397a517d1a
[SVGDom] Add viewBox support
...
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
2016-08-08 11:38:55 -07:00
fmalita
bffc256687
[SVGDom] Initial SVGLength support
...
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
2016-08-03 10:21:11 -07:00
fmalita
58649ccc75
[SVGDom] Parse style attributes
...
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
2016-07-29 08:52:03 -07:00
fmalita
6ceef3dd67
Initial SVG model
...
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
2016-07-26 18:46:34 -07:00