11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/*
31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2006 The Android Open Source Project
41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger *
51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be
61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file.
71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */
81cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
90910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkSVGRadialGradient.h"
110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkSVGParser.h"
120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkSVGAttribute SkSVGRadialGradient::gAttributes[] = {
140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(cx),
150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(cy),
160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(fx),
170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(fy),
180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(gradientTransform),
190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(gradientUnits),
200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(r)
210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project};
220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectDEFINE_SVG_INFO(RadialGradient)
240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectvoid SkSVGRadialGradient::translate(SkSVGParser& parser, bool defState) {
260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    if (fMatrixID.size() == 0)
270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        parser.translateMatrix(f_gradientTransform, &fMatrixID);
280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    parser._startElement("radialGradient");
290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    if (fMatrixID.size() > 0)
300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        parser._addAttribute("matrix", fMatrixID);
310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    INHERITED::translateGradientUnits(f_gradientUnits);
320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkString center;
330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    center.appendUnichar('[');
340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    center.append(f_cx);
350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    center.appendUnichar(',');
360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    center.append(f_cy);
370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    center.appendUnichar(']');
380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    parser._addAttribute("center", center);
390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    parser._addAttribute("radius", f_r);
400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    INHERITED::translate(parser, defState);
410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    parser._endElement();
420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}
43