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 SkDrawPaint_DEFINED
     11 #define SkDrawPaint_DEFINED
     12 
     13 #include "SkDrawable.h"
     14 #include "SkIntArray.h"
     15 #include "SkMemberInfo.h"
     16 #include "SkPaint.h"
     17 #include "SkXfermode.h"
     18 
     19 class SkDrawMaskFilter;
     20 class SkDrawPathEffect;
     21 class SkDrawShader;
     22 class SkTransferMode;
     23 class SkDrawTypeface;
     24 
     25 class SkDrawPaint : public SkDrawable {
     26     DECLARE_DRAW_MEMBER_INFO(Paint);
     27     SkDrawPaint();
     28     virtual ~SkDrawPaint();
     29     virtual bool add(SkAnimateMaker* , SkDisplayable* child);
     30     virtual SkDisplayable* deepCopy(SkAnimateMaker* );
     31     virtual bool draw(SkAnimateMaker& );
     32 #ifdef SK_DUMP_ENABLED
     33     virtual void dump(SkAnimateMaker* );
     34 #endif
     35     virtual void executeFunction(SkDisplayable* target, int index,
     36         SkTDArray<SkScriptValue>& parameters, SkDisplayTypes type,
     37         SkScriptValue* );
     38     virtual const SkFunctionParamType* getFunctionsParameters();
     39     virtual bool getProperty(int index, SkScriptValue* value) const;
     40     virtual bool resolveIDs(SkAnimateMaker& maker, SkDisplayable* original, SkApply* apply);
     41 protected:
     42     static const SkFunctionParamType fFunctionParameters[];
     43     void setupPaint(SkPaint* paint) const;
     44 public:
     45     SkBool antiAlias;
     46     SkDrawColor* color;
     47     SkBool fakeBold;
     48     SkBool filterBitmap;
     49     SkBool linearText;
     50     SkDrawMaskFilter* maskFilter;
     51     SkDrawPathEffect* pathEffect;
     52     SkDrawShader* shader;
     53     SkBool strikeThru;
     54     SkBool stroke;
     55     int /*SkPaint::Cap*/ strokeCap;
     56     int /*SkPaint::Join */ strokeJoin;
     57     SkScalar strokeMiter;
     58     SkScalar strokeWidth;
     59     int /* SkPaint::Style */ style;
     60     int /* SkPaint::Align */ textAlign;
     61     SkScalar textScaleX;
     62     SkScalar textSize;
     63     SkScalar textSkewX;
     64     SkDrawTypeface* typeface;
     65     SkBool underline;
     66     int /*SkXfermode::Modes*/ xfermode;
     67     SkBool8 fOwnsColor;
     68     SkBool8 fOwnsMaskFilter;
     69     SkBool8 fOwnsPathEffect;
     70     SkBool8 fOwnsShader;
     71     SkBool8 fOwnsTransferMode;
     72     SkBool8 fOwnsTypeface;
     73 private:
     74     typedef SkDrawable INHERITED;
     75     friend class SkTextToPath;
     76     friend class SkSaveLayer;
     77 };
     78 
     79 #endif // SkDrawPaint_DEFINED
     80