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 SkPaintParts_DEFINED
     11 #define SkPaintParts_DEFINED
     12 
     13 #include "SkDisplayable.h"
     14 #include "SkMemberInfo.h"
     15 #include "SkPaint.h"
     16 #include "SkShader.h"
     17 #include "SkTypeface.h"
     18 #include "SkXfermode.h"
     19 
     20 class SkDrawPaint;
     21 class SkDrawMatrix;
     22 
     23 class SkPaintPart : public SkDisplayable {
     24 public:
     25     SkPaintPart();
     26     virtual bool add() = 0;
     27     virtual SkDisplayable* getParent() const;
     28     virtual bool setParent(SkDisplayable* parent);
     29 #ifdef SK_DEBUG
     30     virtual bool isPaintPart() const { return true; }
     31 #endif
     32 protected:
     33     SkDrawPaint* fPaint;
     34 };
     35 
     36 class SkDrawMaskFilter : public SkPaintPart {
     37     DECLARE_EMPTY_MEMBER_INFO(MaskFilter);
     38     virtual SkMaskFilter* getMaskFilter();
     39 protected:
     40     virtual bool add();
     41 };
     42 
     43 class SkDrawPathEffect : public SkPaintPart {
     44     DECLARE_EMPTY_MEMBER_INFO(PathEffect);
     45     virtual SkPathEffect* getPathEffect();
     46 protected:
     47     virtual bool add();
     48 };
     49 
     50 class SkDrawShader : public SkPaintPart {
     51     DECLARE_DRAW_MEMBER_INFO(Shader);
     52     SkDrawShader();
     53     virtual SkShader* getShader();
     54 protected:
     55     virtual bool add();
     56     void addPostlude(SkShader* shader);
     57     SkDrawMatrix* matrix;
     58     int /*SkShader::TileMode*/ tileMode;
     59 };
     60 
     61 class SkDrawTypeface  : public SkPaintPart {
     62     DECLARE_DRAW_MEMBER_INFO(Typeface);
     63     SkDrawTypeface();
     64 #ifdef SK_DUMP_ENABLED
     65     virtual void dump(SkAnimateMaker *);
     66 #endif
     67     SkTypeface* getTypeface() {
     68         return SkTypeface::CreateFromName(fontName.c_str(), style); }
     69 protected:
     70     virtual bool add();
     71     SkString fontName;
     72     SkTypeface::Style style;
     73 };
     74 
     75 #endif // SkPaintParts_DEFINED
     76