OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "SampleCode.h" | 8 #include "SampleCode.h" |
9 #include "SkAnimTimer.h" | 9 #include "SkAnimTimer.h" |
10 #include "SkView.h" | 10 #include "SkView.h" |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 } | 89 } |
90 }; | 90 }; |
91 | 91 |
92 class PathEffectView : public SampleView { | 92 class PathEffectView : public SampleView { |
93 SkPath fPath; | 93 SkPath fPath; |
94 SkPoint fClickPt; | 94 SkPoint fClickPt; |
95 SkScalar fPhase; | 95 SkScalar fPhase; |
96 | 96 |
97 public: | 97 public: |
98 PathEffectView() : fPhase(0) { | 98 PathEffectView() : fPhase(0) { |
| 99 } |
| 100 |
| 101 protected: |
| 102 void onOnceBeforeDraw() SK_OVERRIDE { |
99 SkRandom rand; | 103 SkRandom rand; |
100 int steps = 20; | 104 int steps = 20; |
101 SkScalar dist = SkIntToScalar(400); | 105 SkScalar dist = SkIntToScalar(400); |
102 SkScalar x = SkIntToScalar(20); | 106 SkScalar x = SkIntToScalar(20); |
103 SkScalar y = SkIntToScalar(50); | 107 SkScalar y = SkIntToScalar(50); |
104 | 108 |
105 fPath.moveTo(x, y); | 109 fPath.moveTo(x, y); |
106 for (int i = 0; i < steps; i++) { | 110 for (int i = 0; i < steps; i++) { |
107 x += dist/steps; | 111 x += dist/steps; |
108 SkScalar tmpY = y + SkIntToScalar(rand.nextS() % 25); | 112 SkScalar tmpY = y + SkIntToScalar(rand.nextS() % 25); |
(...skipping 10 matching lines...) Expand all Loading... |
119 SkIntToScalar(100), SkIntToScalar(60)); | 123 SkIntToScalar(100), SkIntToScalar(60)); |
120 oval.offset(x, 0); | 124 oval.offset(x, 0); |
121 fPath.addRoundRect(oval, SkIntToScalar(8), SkIntToScalar(8)); | 125 fPath.addRoundRect(oval, SkIntToScalar(8), SkIntToScalar(8)); |
122 } | 126 } |
123 | 127 |
124 fClickPt.set(SkIntToScalar(200), SkIntToScalar(200)); | 128 fClickPt.set(SkIntToScalar(200), SkIntToScalar(200)); |
125 | 129 |
126 this->setBGColor(0xFFDDDDDD); | 130 this->setBGColor(0xFFDDDDDD); |
127 } | 131 } |
128 | 132 |
129 protected: | |
130 bool onQuery(SkEvent* evt) SK_OVERRIDE { | 133 bool onQuery(SkEvent* evt) SK_OVERRIDE { |
131 if (SampleCode::TitleQ(*evt)) { | 134 if (SampleCode::TitleQ(*evt)) { |
132 SampleCode::TitleR(evt, "PathEffects"); | 135 SampleCode::TitleR(evt, "PathEffects"); |
133 return true; | 136 return true; |
134 } | 137 } |
135 return this->INHERITED::onQuery(evt); | 138 return this->INHERITED::onQuery(evt); |
136 } | 139 } |
137 | 140 |
138 void onDrawContent(SkCanvas* canvas) SK_OVERRIDE { | 141 void onDrawContent(SkCanvas* canvas) SK_OVERRIDE { |
139 SkPaint paint; | 142 SkPaint paint; |
(...skipping 25 matching lines...) Expand all Loading... |
165 } | 168 } |
166 | 169 |
167 private: | 170 private: |
168 typedef SampleView INHERITED; | 171 typedef SampleView INHERITED; |
169 }; | 172 }; |
170 | 173 |
171 ////////////////////////////////////////////////////////////////////////////// | 174 ////////////////////////////////////////////////////////////////////////////// |
172 | 175 |
173 static SkView* MyFactory() { return new PathEffectView; } | 176 static SkView* MyFactory() { return new PathEffectView; } |
174 static SkViewRegister reg(MyFactory); | 177 static SkViewRegister reg(MyFactory); |
OLD | NEW |