blob: 83dad488a5abf4f3ac729176b59bfee0005358f8 [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001
2/*
3 * Copyright 2006 The Android Open Source Project
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
reed@android.com8a1c16f2008-12-17 15:59:43 +00009
10#include "SkSVGPolyline.h"
11#include "SkSVGParser.h"
12
13enum {
14 kCliipRule,
15 kFillRule,
16 kPoints
17};
18
19const SkSVGAttribute SkSVGPolyline::gAttributes[] = {
20 SVG_LITERAL_ATTRIBUTE(clip-rule, f_clipRule),
21 SVG_LITERAL_ATTRIBUTE(fill-rule, f_fillRule),
22 SVG_ATTRIBUTE(points)
23};
24
25DEFINE_SVG_INFO(Polyline)
26
rmistry@google.comd6176b02012-08-23 18:14:13 +000027void SkSVGPolyline::addAttribute(SkSVGParser& , int attrIndex,
reed@android.com8a1c16f2008-12-17 15:59:43 +000028 const char* attrValue, size_t attrLength) {
29 if (attrIndex != kPoints)
30 return;
31 f_points.set("[");
32 f_points.append(attrValue, attrLength);
33 SkSVGParser::ConvertToArray(f_points);
34}
35
36void SkSVGPolyline::translate(SkSVGParser& parser, bool defState) {
37 parser._startElement("polyline");
38 INHERITED::translate(parser, defState);
39 SVG_ADD_ATTRIBUTE(points);
rmistry@google.comd6176b02012-08-23 18:14:13 +000040 if (f_fillRule.size() > 0)
reed@android.com8a1c16f2008-12-17 15:59:43 +000041 parser._addAttribute("fillType", f_fillRule.equals("evenodd") ? "evenOdd" : "winding");
42 parser._endElement();
43}