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 SkUnitMapper;
     18 
     19 class SkDrawGradient : public SkDrawShader {
     20     DECLARE_PRIVATE_MEMBER_INFO(DrawGradient);
     21     SkDrawGradient();
     22     virtual ~SkDrawGradient();
     23     virtual bool addChild(SkAnimateMaker& , SkDisplayable* child) SK_OVERRIDE;
     24 #ifdef SK_DUMP_ENABLED
     25     virtual void dumpRest(SkAnimateMaker*);
     26 #endif
     27     virtual void onEndElement(SkAnimateMaker& );
     28 protected:
     29     SkTDScalarArray offsets;
     30     SkString unitMapper;
     31     SkTDColorArray fColors;
     32     SkTDDrawColorArray fDrawColors;
     33     SkUnitMapper* fUnitMapper;
     34     int addPrelude();
     35 private:
     36     typedef SkDrawShader INHERITED;
     37 };
     38 
     39 class SkDrawLinearGradient : public SkDrawGradient {
     40     DECLARE_MEMBER_INFO(DrawLinearGradient);
     41     SkDrawLinearGradient();
     42     virtual void onEndElement(SkAnimateMaker& );
     43 #ifdef SK_DUMP_ENABLED
     44     virtual void dump(SkAnimateMaker*);
     45 #endif
     46     virtual SkShader* getShader();
     47 protected:
     48     SkTDScalarArray points;
     49 private:
     50     typedef SkDrawGradient INHERITED;
     51 };
     52 
     53 class SkDrawRadialGradient : public SkDrawGradient {
     54     DECLARE_MEMBER_INFO(DrawRadialGradient);
     55     SkDrawRadialGradient();
     56 #ifdef SK_DUMP_ENABLED
     57     virtual void dump(SkAnimateMaker*);
     58 #endif
     59     virtual SkShader* getShader();
     60 protected:
     61     SkPoint center;
     62     SkScalar radius;
     63 private:
     64     typedef SkDrawGradient INHERITED;
     65 };
     66 
     67 #endif // SkDrawGradient_DEFINED
     68