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 "SkADrawable.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 SkADrawable { 26 DECLARE_DRAW_MEMBER_INFO(Paint); 27 SkDrawPaint(); 28 virtual ~SkDrawPaint(); 29 virtual bool add(SkAnimateMaker* , SkDisplayable* child); 30 SkDisplayable* deepCopy(SkAnimateMaker* ) override; 31 bool draw(SkAnimateMaker& ) override; 32 #ifdef SK_DUMP_ENABLED 33 void dump(SkAnimateMaker* ) override; 34 #endif 35 void executeFunction(SkDisplayable* target, int index, 36 SkTDArray<SkScriptValue>& parameters, SkDisplayTypes type, 37 SkScriptValue* ) override; 38 const SkFunctionParamType* getFunctionsParameters() override; 39 bool getProperty(int index, SkScriptValue* value) const override; 40 bool resolveIDs(SkAnimateMaker& maker, SkDisplayable* original, SkApply* apply) override; 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 SkADrawable INHERITED; 75 friend class SkTextToPath; 76 friend class SkSaveLayer; 77 }; 78 79 #endif // SkDrawPaint_DEFINED 80