SkSVGRadialGradient.cpp revision 0910916c0f7b951ee55c4b7c6358295b9bca0565
10910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project/* libs/graphics/svg/SkSVGRadialGradient.cpp
20910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project**
30910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** Copyright 2006, The Android Open Source Project
40910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project**
50910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** Licensed under the Apache License, Version 2.0 (the "License");
60910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** you may not use this file except in compliance with the License.
70910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** You may obtain a copy of the License at
80910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project**
90910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project**     http://www.apache.org/licenses/LICENSE-2.0
100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project**
110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** Unless required by applicable law or agreed to in writing, software
120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** distributed under the License is distributed on an "AS IS" BASIS,
130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** See the License for the specific language governing permissions and
150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** limitations under the License.
160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project*/
170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkSVGRadialGradient.h"
190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkSVGParser.h"
200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkSVGAttribute SkSVGRadialGradient::gAttributes[] = {
220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(cx),
230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(cy),
240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(fx),
250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(fy),
260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(gradientTransform),
270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(gradientUnits),
280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(r)
290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project};
300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectDEFINE_SVG_INFO(RadialGradient)
320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectvoid SkSVGRadialGradient::translate(SkSVGParser& parser, bool defState) {
340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    if (fMatrixID.size() == 0)
350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        parser.translateMatrix(f_gradientTransform, &fMatrixID);
360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    parser._startElement("radialGradient");
370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    if (fMatrixID.size() > 0)
380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        parser._addAttribute("matrix", fMatrixID);
390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    INHERITED::translateGradientUnits(f_gradientUnits);
400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkString center;
410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    center.appendUnichar('[');
420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    center.append(f_cx);
430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    center.appendUnichar(',');
440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    center.append(f_cy);
450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    center.appendUnichar(']');
460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    parser._addAttribute("center", center);
470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    parser._addAttribute("radius", f_r);
480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    INHERITED::translate(parser, defState);
490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    parser._endElement();
500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}
51