fmalita
3dbb7b9f19
[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
Review-Url: https://codereview.chromium.org/2353503005
2016-09-20 12:44:31 -07:00
fmalita
7cf4ae7122
[SVGDom] Only apply opacity when needed
...
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
2016-09-19 06:42:39 -07: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
a26cab0c53
[SVGDom] Don't truncate opacity scalars
...
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
2016-08-29 05:54:42 -07:00
fmalita
6cf896d7ce
Reland: 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
Review-Url: https://codereview.chromium.org/2271743002
2016-08-25 08:44:35 -07:00
fmalita
0172e77ad6
Revert of Experimental parsing expression grammar (PEG) template library (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
2016-08-25 05:50:26 -07:00
fmalita
9d08cbc8c6
Experimental parsing expression grammar (PEG) template library
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2271743002
Review-Url: https://codereview.chromium.org/2271743002
2016-08-24 18:23:25 -07:00
fmalita
be49378e92
[SVGDom] Fix <ellipse> positioning
...
R=robertphillips@google.com ,stephana@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2253283002
Review-Url: https://codereview.chromium.org/2253283002
2016-08-17 15:08:48 -07:00
fmalita
280e282d2a
[SVGDom] Add support for assorted absolute units
...
R=robertphillips@google.com ,stephana@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2259473002
Review-Url: https://codereview.chromium.org/2259473002
2016-08-17 14:51:03 -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
fmalita
2aafe6f427
Add SkSVGCanvas
...
Add a public SVG canvas factory + move the SVG files from
experimental -> src/svg/.
Update current clients to the new API.
R=reed@google.com , mtklein@google.com , halcanary@google.com
Review URL: https://codereview.chromium.org/902583006
2015-02-06 12:51:10 -08:00
reed
e73da40c35
add length parameter to addText, to match attr values
...
BUG=skia:3392
Review URL: https://codereview.chromium.org/896363002
2015-02-04 18:29:27 -08:00
fmalita
a9d9de45c1
[SkSVGDevice] drawTextOnPath() support
...
R=reed@google.com ,mtklein@google.com
Review URL: https://codereview.chromium.org/874853003
2015-02-04 17:54:46 -08:00
fmalita
12753ccc9a
[SkSVGDevice] Add support for more stroke params
...
stroke-linecap, stroke-linejoin, stroke-miterlimit, non-scaling-stroke.
R=mtklein@google.com
Review URL: https://codereview.chromium.org/897953004
2015-02-04 14:56:35 -08:00
fmalita
1a481fe4bf
[SkSVGDevice] Initial clipping support
...
Implement SVG clips based on clip stack flattening -
which is now exposed in SkClipStack::asPath() and shared
with SkCanvas's simplify-clip code.
R=reed@google.com ,mtklein@google.com
Review URL: https://codereview.chromium.org/876923003
2015-02-04 07:39:34 -08:00
fmalita
fe3f260ff9
[SkSVGDevice] Initial text support
...
R=reed@google.com ,mtklein@google.com
Review URL: https://codereview.chromium.org/899683002
2015-02-03 17:47:12 -08:00
fmalita
532faa9021
[SkSVGDevice] Initial shader/gradient support
...
* linear gradient support (based on shawcroft@google.com's CL)
* generic paint resources reorg
* opacity support
R=reed@google.com ,mtklein@google.com,halcanary@google.com
Review URL: https://codereview.chromium.org/892973002
2015-02-03 05:44:40 -08:00
fmalita
93957f4e80
Initial SVG backend stubbing
...
This adds SkSVGDevice and a small utility for converting SKP files to SVG (skp2svg).
R=reed@google.com ,jcgregorio@google.com
BUG=skia:3368
Review URL: https://codereview.chromium.org/892533002
2015-01-30 09:03:29 -08:00