| 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 #include "SkRandom.h" | 9 #include "SkRandom.h" |
| 10 #include "SkTArray.h" | 10 #include "SkTArray.h" |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 30 * SK_Scalar1, SK_Scalar1, | 169 30 * SK_Scalar1, SK_Scalar1, |
| 170 20 * SK_Scalar1, 0); | 170 20 * SK_Scalar1, 0); |
| 171 | 171 |
| 172 // flat cubic where initial tangent is out, end tangent in | 172 // flat cubic where initial tangent is out, end tangent in |
| 173 fPaths.push_back().moveTo(10 * SK_Scalar1, 0); | 173 fPaths.push_back().moveTo(10 * SK_Scalar1, 0); |
| 174 fPaths.back().cubicTo(0, SK_Scalar1, | 174 fPaths.back().cubicTo(0, SK_Scalar1, |
| 175 20 * SK_Scalar1, SK_Scalar1, | 175 20 * SK_Scalar1, SK_Scalar1, |
| 176 30 * SK_Scalar1, 0); | 176 30 * SK_Scalar1, 0); |
| 177 | 177 |
| 178 // triangle where one edge is a degenerate quad | 178 // triangle where one edge is a degenerate quad |
| 179 fPaths.push_back().moveTo(SkFloatToScalar(8.59375f), 45 * SK_Scalar1); | 179 fPaths.push_back().moveTo(8.59375f, 45 * SK_Scalar1); |
| 180 fPaths.back().quadTo(SkFloatToScalar(16.9921875f), 45 * SK_Scalar1, | 180 fPaths.back().quadTo(16.9921875f, 45 * SK_Scalar1, |
| 181 SkFloatToScalar(31.25f), 45 * SK_Scalar1); | 181 31.25f, 45 * SK_Scalar1); |
| 182 fPaths.back().lineTo(100 * SK_Scalar1, 100 * SK_Scalar1); | 182 fPaths.back().lineTo(100 * SK_Scalar1, 100 * SK_Scalar1); |
| 183 fPaths.back().lineTo(SkFloatToScalar(8.59375f), 45 * SK_Scalar1); | 183 fPaths.back().lineTo(8.59375f, 45 * SK_Scalar1); |
| 184 | 184 |
| 185 // triangle where one edge is a quad with a repeated point | 185 // triangle where one edge is a quad with a repeated point |
| 186 fPaths.push_back().moveTo(0, 25 * SK_Scalar1); | 186 fPaths.push_back().moveTo(0, 25 * SK_Scalar1); |
| 187 fPaths.back().lineTo(50 * SK_Scalar1, 0); | 187 fPaths.back().lineTo(50 * SK_Scalar1, 0); |
| 188 fPaths.back().quadTo(50 * SK_Scalar1, 50 * SK_Scalar1, 50 * SK_Scalar1,
50 * SK_Scalar1); | 188 fPaths.back().quadTo(50 * SK_Scalar1, 50 * SK_Scalar1, 50 * SK_Scalar1,
50 * SK_Scalar1); |
| 189 | 189 |
| 190 // triangle where one edge is a cubic with a 2x repeated point | 190 // triangle where one edge is a cubic with a 2x repeated point |
| 191 fPaths.push_back().moveTo(0, 25 * SK_Scalar1); | 191 fPaths.push_back().moveTo(0, 25 * SK_Scalar1); |
| 192 fPaths.back().lineTo(50 * SK_Scalar1, 0); | 192 fPaths.back().lineTo(50 * SK_Scalar1, 0); |
| 193 fPaths.back().cubicTo(50 * SK_Scalar1, 0, | 193 fPaths.back().cubicTo(50 * SK_Scalar1, 0, |
| 194 50 * SK_Scalar1, 50 * SK_Scalar1, | 194 50 * SK_Scalar1, 50 * SK_Scalar1, |
| 195 50 * SK_Scalar1, 50 * SK_Scalar1); | 195 50 * SK_Scalar1, 50 * SK_Scalar1); |
| 196 | 196 |
| 197 // triangle where one edge is a quad with a nearly repeated point | 197 // triangle where one edge is a quad with a nearly repeated point |
| 198 fPaths.push_back().moveTo(0, 25 * SK_Scalar1); | 198 fPaths.push_back().moveTo(0, 25 * SK_Scalar1); |
| 199 fPaths.back().lineTo(50 * SK_Scalar1, 0); | 199 fPaths.back().lineTo(50 * SK_Scalar1, 0); |
| 200 fPaths.back().quadTo(50 * SK_Scalar1, SkFloatToScalar(49.95f), | 200 fPaths.back().quadTo(50 * SK_Scalar1, 49.95f, |
| 201 50 * SK_Scalar1, 50 * SK_Scalar1); | 201 50 * SK_Scalar1, 50 * SK_Scalar1); |
| 202 | 202 |
| 203 // triangle where one edge is a cubic with a 3x nearly repeated point | 203 // triangle where one edge is a cubic with a 3x nearly repeated point |
| 204 fPaths.push_back().moveTo(0, 25 * SK_Scalar1); | 204 fPaths.push_back().moveTo(0, 25 * SK_Scalar1); |
| 205 fPaths.back().lineTo(50 * SK_Scalar1, 0); | 205 fPaths.back().lineTo(50 * SK_Scalar1, 0); |
| 206 fPaths.back().cubicTo(50 * SK_Scalar1, SkFloatToScalar(49.95f), | 206 fPaths.back().cubicTo(50 * SK_Scalar1, 49.95f, |
| 207 50 * SK_Scalar1, SkFloatToScalar(49.97f), | 207 50 * SK_Scalar1, 49.97f, |
| 208 50 * SK_Scalar1, 50 * SK_Scalar1); | 208 50 * SK_Scalar1, 50 * SK_Scalar1); |
| 209 | 209 |
| 210 // triangle where there is a point degenerate cubic at one corner | 210 // triangle where there is a point degenerate cubic at one corner |
| 211 fPaths.push_back().moveTo(0, 25 * SK_Scalar1); | 211 fPaths.push_back().moveTo(0, 25 * SK_Scalar1); |
| 212 fPaths.back().lineTo(50 * SK_Scalar1, 0); | 212 fPaths.back().lineTo(50 * SK_Scalar1, 0); |
| 213 fPaths.back().lineTo(50 * SK_Scalar1, 50 * SK_Scalar1); | 213 fPaths.back().lineTo(50 * SK_Scalar1, 50 * SK_Scalar1); |
| 214 fPaths.back().cubicTo(50 * SK_Scalar1, 50 * SK_Scalar1, | 214 fPaths.back().cubicTo(50 * SK_Scalar1, 50 * SK_Scalar1, |
| 215 50 * SK_Scalar1, 50 * SK_Scalar1, | 215 50 * SK_Scalar1, 50 * SK_Scalar1, |
| 216 50 * SK_Scalar1, 50 * SK_Scalar1); | 216 50 * SK_Scalar1, 50 * SK_Scalar1); |
| 217 | 217 |
| (...skipping 28 matching lines...) Expand all Loading... |
| 246 fPaths.push_back().quadTo(100 * SK_Scalar1, 100 * SK_Scalar1, | 246 fPaths.push_back().quadTo(100 * SK_Scalar1, 100 * SK_Scalar1, |
| 247 50 * SK_Scalar1, 50 * SK_Scalar1); | 247 50 * SK_Scalar1, 50 * SK_Scalar1); |
| 248 fPaths.push_back().quadTo(50 * SK_Scalar1, 50 * SK_Scalar1, | 248 fPaths.push_back().quadTo(50 * SK_Scalar1, 50 * SK_Scalar1, |
| 249 100 * SK_Scalar1, 100 * SK_Scalar1); | 249 100 * SK_Scalar1, 100 * SK_Scalar1); |
| 250 fPaths.push_back().cubicTo(0, 0, | 250 fPaths.push_back().cubicTo(0, 0, |
| 251 0, 0, | 251 0, 0, |
| 252 100 * SK_Scalar1, 100 * SK_Scalar1); | 252 100 * SK_Scalar1, 100 * SK_Scalar1); |
| 253 | 253 |
| 254 // small circle. This is listed last so that it has device coords far | 254 // small circle. This is listed last so that it has device coords far |
| 255 // from the origin (small area relative to x,y values). | 255 // from the origin (small area relative to x,y values). |
| 256 fPaths.push_back().addCircle(0, 0, SkFloatToScalar(1.2f)); | 256 fPaths.push_back().addCircle(0, 0, 1.2f); |
| 257 } | 257 } |
| 258 | 258 |
| 259 virtual void onDraw(SkCanvas* canvas) { | 259 virtual void onDraw(SkCanvas* canvas) { |
| 260 this->makePaths(); | 260 this->makePaths(); |
| 261 | 261 |
| 262 SkPaint paint; | 262 SkPaint paint; |
| 263 paint.setAntiAlias(true); | 263 paint.setAntiAlias(true); |
| 264 SkLCGRandom rand; | 264 SkLCGRandom rand; |
| 265 canvas->translate(20 * SK_Scalar1, 20 * SK_Scalar1); | 265 canvas->translate(20 * SK_Scalar1, 20 * SK_Scalar1); |
| 266 | 266 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 288 typedef GM INHERITED; | 288 typedef GM INHERITED; |
| 289 SkTArray<SkPath> fPaths; | 289 SkTArray<SkPath> fPaths; |
| 290 }; | 290 }; |
| 291 | 291 |
| 292 ////////////////////////////////////////////////////////////////////////////// | 292 ////////////////////////////////////////////////////////////////////////////// |
| 293 | 293 |
| 294 static GM* MyFactory(void*) { return new ConvexPathsGM; } | 294 static GM* MyFactory(void*) { return new ConvexPathsGM; } |
| 295 static GMRegistry reg(MyFactory); | 295 static GMRegistry reg(MyFactory); |
| 296 | 296 |
| 297 } | 297 } |
| OLD | NEW |