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 } 45