blob: f277b65cc39818a60bd2e5797f8f8cfa070d7692 [file] [log] [blame]
Florin Malitacc6cc292017-10-09 16:05:30 -04001/*
2 * Copyright 2017 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef SkSVGRadialGradient_DEFINED
9#define SkSVGRadialGradient_DEFINED
10
11#include "SkSVGGradient.h"
12#include "SkSVGTypes.h"
13
14class SkSVGRadialGradient final : public SkSVGGradient {
15public:
16 ~SkSVGRadialGradient() override = default;
17 static sk_sp<SkSVGRadialGradient> Make() {
18 return sk_sp<SkSVGRadialGradient>(new SkSVGRadialGradient());
19 }
20
21 void setCx(const SkSVGLength&);
22 void setCy(const SkSVGLength&);
23 void setR(const SkSVGLength&);
24 void setFx(const SkSVGLength&);
25 void setFy(const SkSVGLength&);
26
27protected:
28 void onSetAttribute(SkSVGAttribute, const SkSVGValue&) override;
29
30 sk_sp<SkShader> onMakeShader(const SkSVGRenderContext&,
31 const SkColor*, const SkScalar*, int count,
32 SkShader::TileMode, const SkMatrix&) const override;
33private:
34 SkSVGRadialGradient();
35
36 SkSVGLength fCx = SkSVGLength(50, SkSVGLength::Unit::kPercentage);
37 SkSVGLength fCy = SkSVGLength(50, SkSVGLength::Unit::kPercentage);
38 SkSVGLength fR = SkSVGLength(50, SkSVGLength::Unit::kPercentage);
39 SkTLazy<SkSVGLength> fFx;
40 SkTLazy<SkSVGLength> fFy;
41
42
43 typedef SkSVGGradient INHERITED;
44};
45
46#endif // SkSVGRadialGradient_DEFINED