diff options
author | fmalita <fmalita@chromium.org> | 2016-09-13 12:56:11 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-09-13 12:56:11 -0700 |
commit | cecd617a4297ffdcec632ca7e2ed1e6b61665e04 (patch) | |
tree | 48e32288114528e7085bf6aa0190653e7ad0bf99 /experimental/svg/model/SkSVGAttributeParser.cpp | |
parent | 649985a530c39afcda23d1f188fa2fc92df3ac56 (diff) |
[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
Diffstat (limited to 'experimental/svg/model/SkSVGAttributeParser.cpp')
-rw-r--r-- | experimental/svg/model/SkSVGAttributeParser.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/experimental/svg/model/SkSVGAttributeParser.cpp b/experimental/svg/model/SkSVGAttributeParser.cpp index 9d2d6b8136..04b050828a 100644 --- a/experimental/svg/model/SkSVGAttributeParser.cpp +++ b/experimental/svg/model/SkSVGAttributeParser.cpp @@ -491,6 +491,29 @@ bool SkSVGAttributeParser::parseLineJoin(SkSVGLineJoin* join) { return parsedValue && this->parseEOSToken(); } +// https://www.w3.org/TR/SVG/pservers.html#LinearGradientElementSpreadMethodAttribute +bool SkSVGAttributeParser::parseSpreadMethod(SkSVGSpreadMethod* spread) { + static const struct { + SkSVGSpreadMethod::Type fType; + const char* fName; + } gSpreadInfo[] = { + { SkSVGSpreadMethod::Type::kPad , "pad" }, + { SkSVGSpreadMethod::Type::kReflect, "reflect" }, + { SkSVGSpreadMethod::Type::kRepeat , "repeat" }, + }; + + bool parsedValue = false; + for (size_t i = 0; i < SK_ARRAY_COUNT(gSpreadInfo); ++i) { + if (this->parseExpectedStringToken(gSpreadInfo[i].fName)) { + *spread = SkSVGSpreadMethod(gSpreadInfo[i].fType); + parsedValue = true; + break; + } + } + + return parsedValue && this->parseEOSToken(); +} + // https://www.w3.org/TR/SVG/shapes.html#PolygonElementPointsAttribute bool SkSVGAttributeParser::parsePoints(SkSVGPointsType* points) { SkTDArray<SkPoint> pts; |