michael@0: michael@0: /* michael@0: * Copyright 2006 The Android Open Source Project michael@0: * michael@0: * Use of this source code is governed by a BSD-style license that can be michael@0: * found in the LICENSE file. michael@0: */ michael@0: michael@0: michael@0: #ifndef SkDrawPaint_DEFINED michael@0: #define SkDrawPaint_DEFINED michael@0: michael@0: #include "SkDrawable.h" michael@0: #include "SkIntArray.h" michael@0: #include "SkMemberInfo.h" michael@0: #include "SkPaint.h" michael@0: #include "SkXfermode.h" michael@0: michael@0: class SkDrawMaskFilter; michael@0: class SkDrawPathEffect; michael@0: class SkDrawShader; michael@0: class SkTransferMode; michael@0: class SkDrawTypeface; michael@0: michael@0: class SkDrawPaint : public SkDrawable { michael@0: DECLARE_DRAW_MEMBER_INFO(Paint); michael@0: SkDrawPaint(); michael@0: virtual ~SkDrawPaint(); michael@0: virtual bool add(SkAnimateMaker* , SkDisplayable* child); michael@0: virtual SkDisplayable* deepCopy(SkAnimateMaker* ); michael@0: virtual bool draw(SkAnimateMaker& ); michael@0: #ifdef SK_DUMP_ENABLED michael@0: virtual void dump(SkAnimateMaker* ); michael@0: #endif michael@0: virtual void executeFunction(SkDisplayable* target, int index, michael@0: SkTDArray& parameters, SkDisplayTypes type, michael@0: SkScriptValue* ); michael@0: virtual const SkFunctionParamType* getFunctionsParameters(); michael@0: virtual bool getProperty(int index, SkScriptValue* value) const; michael@0: virtual bool resolveIDs(SkAnimateMaker& maker, SkDisplayable* original, SkApply* apply); michael@0: protected: michael@0: static const SkFunctionParamType fFunctionParameters[]; michael@0: void setupPaint(SkPaint* paint) const; michael@0: public: michael@0: SkBool antiAlias; michael@0: SkDrawColor* color; michael@0: SkBool fakeBold; michael@0: SkBool filterBitmap; michael@0: SkBool linearText; michael@0: SkDrawMaskFilter* maskFilter; michael@0: SkDrawPathEffect* pathEffect; michael@0: SkDrawShader* shader; michael@0: SkBool strikeThru; michael@0: SkBool stroke; michael@0: int /*SkPaint::Cap*/ strokeCap; michael@0: int /*SkPaint::Join */ strokeJoin; michael@0: SkScalar strokeMiter; michael@0: SkScalar strokeWidth; michael@0: int /* SkPaint::Style */ style; michael@0: int /* SkPaint::Align */ textAlign; michael@0: SkScalar textScaleX; michael@0: SkScalar textSize; michael@0: SkScalar textSkewX; michael@0: SkDrawTypeface* typeface; michael@0: SkBool underline; michael@0: int /*SkXfermode::Modes*/ xfermode; michael@0: SkBool8 fOwnsColor; michael@0: SkBool8 fOwnsMaskFilter; michael@0: SkBool8 fOwnsPathEffect; michael@0: SkBool8 fOwnsShader; michael@0: SkBool8 fOwnsTransferMode; michael@0: SkBool8 fOwnsTypeface; michael@0: private: michael@0: typedef SkDrawable INHERITED; michael@0: friend class SkTextToPath; michael@0: friend class SkSaveLayer; michael@0: }; michael@0: michael@0: #endif // SkDrawPaint_DEFINED