/* * Copyright 2016 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkSVGLinearGradient_DEFINED #define SkSVGLinearGradient_DEFINED #include "SkSVGGradient.h" #include "SkSVGTypes.h" class SkSVGLinearGradient final : public SkSVGGradient { public: ~SkSVGLinearGradient() override = default; static sk_sp<SkSVGLinearGradient> Make() { return sk_sp<SkSVGLinearGradient>(new SkSVGLinearGradient()); } void setX1(const SkSVGLength&); void setY1(const SkSVGLength&); void setX2(const SkSVGLength&); void setY2(const SkSVGLength&); protected: void onSetAttribute(SkSVGAttribute, const SkSVGValue&) override; sk_sp<SkShader> onMakeShader(const SkSVGRenderContext&, const SkColor*, const SkScalar*, int count, SkShader::TileMode, const SkMatrix&) const override; private: SkSVGLinearGradient(); SkSVGLength fX1 = SkSVGLength(0 , SkSVGLength::Unit::kPercentage); SkSVGLength fY1 = SkSVGLength(0 , SkSVGLength::Unit::kPercentage); SkSVGLength fX2 = SkSVGLength(100, SkSVGLength::Unit::kPercentage); SkSVGLength fY2 = SkSVGLength(0 , SkSVGLength::Unit::kPercentage); typedef SkSVGGradient INHERITED; }; #endif // SkSVGLinearGradient_DEFINED