|  |  | 
|  | /* | 
|  | * Copyright 2006 The Android Open Source Project | 
|  | * | 
|  | * Use of this source code is governed by a BSD-style license that can be | 
|  | * found in the LICENSE file. | 
|  | */ | 
|  |  | 
|  |  | 
|  | #ifndef SkDrawGradient_DEFINED | 
|  | #define SkDrawGradient_DEFINED | 
|  |  | 
|  | #include "SkDrawColor.h" | 
|  | #include "SkDrawShader.h" | 
|  | #include "SkIntArray.h" | 
|  |  | 
|  | class SkDrawGradient : public SkDrawShader { | 
|  | DECLARE_PRIVATE_MEMBER_INFO(DrawGradient); | 
|  | SkDrawGradient(); | 
|  | virtual ~SkDrawGradient(); | 
|  | bool addChild(SkAnimateMaker& , SkDisplayable* child) override; | 
|  | #ifdef SK_DUMP_ENABLED | 
|  | virtual void dumpRest(SkAnimateMaker*); | 
|  | #endif | 
|  | void onEndElement(SkAnimateMaker& ) override; | 
|  | protected: | 
|  | SkTDScalarArray offsets; | 
|  | SkString unitMapper; | 
|  | SkTDColorArray fColors; | 
|  | SkTDDrawColorArray fDrawColors; | 
|  | int addPrelude(); | 
|  | private: | 
|  | typedef SkDrawShader INHERITED; | 
|  | }; | 
|  |  | 
|  | class SkDrawLinearGradient : public SkDrawGradient { | 
|  | DECLARE_MEMBER_INFO(DrawLinearGradient); | 
|  | SkDrawLinearGradient(); | 
|  | void onEndElement(SkAnimateMaker& ) override; | 
|  | #ifdef SK_DUMP_ENABLED | 
|  | void dump(SkAnimateMaker*) override; | 
|  | #endif | 
|  | SkShader* getShader() override; | 
|  | protected: | 
|  | SkTDScalarArray points; | 
|  | private: | 
|  | typedef SkDrawGradient INHERITED; | 
|  | }; | 
|  |  | 
|  | class SkDrawRadialGradient : public SkDrawGradient { | 
|  | DECLARE_MEMBER_INFO(DrawRadialGradient); | 
|  | SkDrawRadialGradient(); | 
|  | #ifdef SK_DUMP_ENABLED | 
|  | void dump(SkAnimateMaker*) override; | 
|  | #endif | 
|  | SkShader* getShader() override; | 
|  | protected: | 
|  | SkPoint center; | 
|  | SkScalar radius; | 
|  | private: | 
|  | typedef SkDrawGradient INHERITED; | 
|  | }; | 
|  |  | 
|  | #endif // SkDrawGradient_DEFINED |