blob: 3caf6b6e49c6db1230957c862070e2de951eba9d [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001
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
reed@android.com8a1c16f2008-12-17 15:59:43 +00009
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
19class SkDrawMaskFilter;
20class SkDrawPathEffect;
21class SkDrawShader;
22class SkTransferMode;
23class SkDrawTypeface;
24
25class SkDrawPaint : public SkDrawable {
26 DECLARE_DRAW_MEMBER_INFO(Paint);
27 SkDrawPaint();
28 virtual ~SkDrawPaint();
tomhudson@google.comd6caf2e2011-07-08 14:41:12 +000029 virtual bool add(SkAnimateMaker* , SkDisplayable* child);
reed@android.com8a1c16f2008-12-17 15:59:43 +000030 virtual SkDisplayable* deepCopy(SkAnimateMaker* );
31 virtual bool draw(SkAnimateMaker& );
32#ifdef SK_DUMP_ENABLED
33 virtual void dump(SkAnimateMaker* );
34#endif
rmistry@google.comd6176b02012-08-23 18:14:13 +000035 virtual void executeFunction(SkDisplayable* target, int index,
reed@android.com8a1c16f2008-12-17 15:59:43 +000036 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);
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 SkDrawable INHERITED;
75 friend class SkTextToPath;
76 friend class SkSaveLayer;
77};
78
79#endif // SkDrawPaint_DEFINED