Home | History | Annotate | Download | only in animator
      1 
      2 /*
      3  * Copyright 2006 The Android Open Source Project
      4  *
      5  * Use of this source code is governed by a BSD-style license that can be
      6  * found in the LICENSE file.
      7  */
      8 
      9 
     10 #ifndef SkDrawGradient_DEFINED
     11 #define SkDrawGradient_DEFINED
     12 
     13 #include "SkDrawColor.h"
     14 #include "SkDrawShader.h"
     15 #include "SkIntArray.h"
     16 
     17 class SkDrawGradient : public SkDrawShader {
     18     DECLARE_PRIVATE_MEMBER_INFO(DrawGradient);
     19     SkDrawGradient();
     20     virtual ~SkDrawGradient();
     21     virtual bool addChild(SkAnimateMaker& , SkDisplayable* child) SK_OVERRIDE;
     22 #ifdef SK_DUMP_ENABLED
     23     virtual void dumpRest(SkAnimateMaker*);
     24 #endif
     25     virtual void onEndElement(SkAnimateMaker& );
     26 protected:
     27     SkTDScalarArray offsets;
     28     SkString unitMapper;
     29     SkTDColorArray fColors;
     30     SkTDDrawColorArray fDrawColors;
     31     int addPrelude();
     32 private:
     33     typedef SkDrawShader INHERITED;
     34 };
     35 
     36 class SkDrawLinearGradient : public SkDrawGradient {
     37     DECLARE_MEMBER_INFO(DrawLinearGradient);
     38     SkDrawLinearGradient();
     39     virtual void onEndElement(SkAnimateMaker& );
     40 #ifdef SK_DUMP_ENABLED
     41     virtual void dump(SkAnimateMaker*);
     42 #endif
     43     virtual SkShader* getShader();
     44 protected:
     45     SkTDScalarArray points;
     46 private:
     47     typedef SkDrawGradient INHERITED;
     48 };
     49 
     50 class SkDrawRadialGradient : public SkDrawGradient {
     51     DECLARE_MEMBER_INFO(DrawRadialGradient);
     52     SkDrawRadialGradient();
     53 #ifdef SK_DUMP_ENABLED
     54     virtual void dump(SkAnimateMaker*);
     55 #endif
     56     virtual SkShader* getShader();
     57 protected:
     58     SkPoint center;
     59     SkScalar radius;
     60 private:
     61     typedef SkDrawGradient INHERITED;
     62 };
     63 
     64 #endif // SkDrawGradient_DEFINED
     65