|
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 |