|
1 |
|
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 |
|
9 |
|
10 #include "SkSVGLinearGradient.h" |
|
11 #include "SkSVGParser.h" |
|
12 |
|
13 const SkSVGAttribute SkSVGLinearGradient::gAttributes[] = { |
|
14 SVG_ATTRIBUTE(gradientTransform), |
|
15 SVG_ATTRIBUTE(gradientUnits), |
|
16 SVG_ATTRIBUTE(x1), |
|
17 SVG_ATTRIBUTE(x2), |
|
18 SVG_ATTRIBUTE(y1), |
|
19 SVG_ATTRIBUTE(y2) |
|
20 }; |
|
21 |
|
22 DEFINE_SVG_INFO(LinearGradient) |
|
23 |
|
24 void SkSVGLinearGradient::translate(SkSVGParser& parser, bool defState) { |
|
25 if (fMatrixID.size() == 0) |
|
26 parser.translateMatrix(f_gradientTransform, &fMatrixID); |
|
27 parser._startElement("linearGradient"); |
|
28 if (fMatrixID.size() > 0) |
|
29 parser._addAttribute("matrix", fMatrixID); |
|
30 INHERITED::translateGradientUnits(f_gradientUnits); |
|
31 SkString points; |
|
32 points.appendUnichar('['); |
|
33 points.append(f_x1); |
|
34 points.appendUnichar(','); |
|
35 points.append(f_y1); |
|
36 points.appendUnichar(','); |
|
37 points.append(f_x2); |
|
38 points.appendUnichar(','); |
|
39 points.append(f_y2); |
|
40 points.appendUnichar(']'); |
|
41 parser._addAttribute("points", points.c_str()); |
|
42 INHERITED::translate(parser, defState); |
|
43 parser._endElement(); |
|
44 } |