OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 #include "gm.h" | 8 #include "gm.h" |
9 | 9 |
10 typedef SkScalar (*MakePathProc)(SkPath*); | 10 typedef SkScalar (*MakePathProc)(SkPath*); |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 make_star_13, | 111 make_star_13, |
112 make_line, | 112 make_line, |
113 }; | 113 }; |
114 | 114 |
115 #define N SK_ARRAY_COUNT(gProcs) | 115 #define N SK_ARRAY_COUNT(gProcs) |
116 | 116 |
117 class PathFillGM : public skiagm::GM { | 117 class PathFillGM : public skiagm::GM { |
118 SkPath fPath[N]; | 118 SkPath fPath[N]; |
119 SkScalar fDY[N]; | 119 SkScalar fDY[N]; |
120 protected: | 120 protected: |
121 void onOnceBeforeDraw() SK_OVERRIDE { | 121 void onOnceBeforeDraw() override { |
122 for (size_t i = 0; i < N; i++) { | 122 for (size_t i = 0; i < N; i++) { |
123 fDY[i] = gProcs[i](&fPath[i]); | 123 fDY[i] = gProcs[i](&fPath[i]); |
124 } | 124 } |
125 } | 125 } |
126 | 126 |
127 | 127 |
128 SkString onShortName() SK_OVERRIDE { | 128 SkString onShortName() override { |
129 return SkString("pathfill"); | 129 return SkString("pathfill"); |
130 } | 130 } |
131 | 131 |
132 SkISize onISize() SK_OVERRIDE { | 132 SkISize onISize() override { |
133 return SkISize::Make(640, 480); | 133 return SkISize::Make(640, 480); |
134 } | 134 } |
135 | 135 |
136 void onDraw(SkCanvas* canvas) SK_OVERRIDE { | 136 void onDraw(SkCanvas* canvas) override { |
137 SkPaint paint; | 137 SkPaint paint; |
138 paint.setAntiAlias(true); | 138 paint.setAntiAlias(true); |
139 | 139 |
140 for (size_t i = 0; i < N; i++) { | 140 for (size_t i = 0; i < N; i++) { |
141 canvas->drawPath(fPath[i], paint); | 141 canvas->drawPath(fPath[i], paint); |
142 canvas->translate(SkIntToScalar(0), fDY[i]); | 142 canvas->translate(SkIntToScalar(0), fDY[i]); |
143 } | 143 } |
144 } | 144 } |
145 | 145 |
146 private: | 146 private: |
147 typedef skiagm::GM INHERITED; | 147 typedef skiagm::GM INHERITED; |
148 }; | 148 }; |
149 | 149 |
150 // test inverse-fill w/ a clip that completely excludes the geometry | 150 // test inverse-fill w/ a clip that completely excludes the geometry |
151 class PathInverseFillGM : public skiagm::GM { | 151 class PathInverseFillGM : public skiagm::GM { |
152 SkPath fPath[N]; | 152 SkPath fPath[N]; |
153 SkScalar fDY[N]; | 153 SkScalar fDY[N]; |
154 protected: | 154 protected: |
155 void onOnceBeforeDraw() SK_OVERRIDE { | 155 void onOnceBeforeDraw() override { |
156 for (size_t i = 0; i < N; i++) { | 156 for (size_t i = 0; i < N; i++) { |
157 fDY[i] = gProcs[i](&fPath[i]); | 157 fDY[i] = gProcs[i](&fPath[i]); |
158 } | 158 } |
159 } | 159 } |
160 | 160 |
161 SkString onShortName() SK_OVERRIDE { | 161 SkString onShortName() override { |
162 return SkString("pathinvfill"); | 162 return SkString("pathinvfill"); |
163 } | 163 } |
164 | 164 |
165 SkISize onISize() SK_OVERRIDE { | 165 SkISize onISize() override { |
166 return SkISize::Make(450, 220); | 166 return SkISize::Make(450, 220); |
167 } | 167 } |
168 | 168 |
169 static void show(SkCanvas* canvas, const SkPath& path, const SkPaint& paint, | 169 static void show(SkCanvas* canvas, const SkPath& path, const SkPaint& paint, |
170 const SkRect* clip, SkScalar top, const SkScalar bottom) { | 170 const SkRect* clip, SkScalar top, const SkScalar bottom) { |
171 canvas->save(); | 171 canvas->save(); |
172 if (clip) { | 172 if (clip) { |
173 SkRect r = *clip; | 173 SkRect r = *clip; |
174 r.fTop = top; | 174 r.fTop = top; |
175 r.fBottom = bottom; | 175 r.fBottom = bottom; |
176 canvas->clipRect(r); | 176 canvas->clipRect(r); |
177 } | 177 } |
178 canvas->drawPath(path, paint); | 178 canvas->drawPath(path, paint); |
179 canvas->restore(); | 179 canvas->restore(); |
180 } | 180 } |
181 | 181 |
182 void onDraw(SkCanvas* canvas) SK_OVERRIDE { | 182 void onDraw(SkCanvas* canvas) override { |
183 SkPath path; | 183 SkPath path; |
184 | 184 |
185 path.addCircle(SkIntToScalar(50), SkIntToScalar(50), SkIntToScalar(40)); | 185 path.addCircle(SkIntToScalar(50), SkIntToScalar(50), SkIntToScalar(40)); |
186 path.toggleInverseFillType(); | 186 path.toggleInverseFillType(); |
187 | 187 |
188 SkRect clipR = { 0, 0, SkIntToScalar(100), SkIntToScalar(200) }; | 188 SkRect clipR = { 0, 0, SkIntToScalar(100), SkIntToScalar(200) }; |
189 | 189 |
190 canvas->translate(SkIntToScalar(10), SkIntToScalar(10)); | 190 canvas->translate(SkIntToScalar(10), SkIntToScalar(10)); |
191 | 191 |
192 for (int doclip = 0; doclip <= 1; ++doclip) { | 192 for (int doclip = 0; doclip <= 1; ++doclip) { |
(...skipping 19 matching lines...) Expand all Loading... |
212 typedef skiagm::GM INHERITED; | 212 typedef skiagm::GM INHERITED; |
213 }; | 213 }; |
214 | 214 |
215 /////////////////////////////////////////////////////////////////////////////// | 215 /////////////////////////////////////////////////////////////////////////////// |
216 | 216 |
217 static skiagm::GM* MyFactory(void*) { return new PathFillGM; } | 217 static skiagm::GM* MyFactory(void*) { return new PathFillGM; } |
218 static skiagm::GMRegistry reg(MyFactory); | 218 static skiagm::GMRegistry reg(MyFactory); |
219 | 219 |
220 static skiagm::GM* F1(void*) { return new PathInverseFillGM; } | 220 static skiagm::GM* F1(void*) { return new PathInverseFillGM; } |
221 static skiagm::GMRegistry gR1(F1); | 221 static skiagm::GMRegistry gR1(F1); |
OLD | NEW |