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 19class SkDrawMaskFilter; 20class SkDrawPathEffect; 21class SkDrawShader; 22class SkTransferMode; 23class SkDrawTypeface; 24 25class 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; 41protected: 42 static const SkFunctionParamType fFunctionParameters[]; 43 void setupPaint(SkPaint* paint) const; 44public: 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; 73private: 74 typedef SkADrawable INHERITED; 75 friend class SkTextToPath; 76 friend class SkSaveLayer; 77}; 78 79#endif // SkDrawPaint_DEFINED 80