| 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 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 SK_Scalar1 * 100), | 113 SK_Scalar1 * 100), |
| 114 40 * SK_Scalar1, 20 * SK_Scalar1, | 114 40 * SK_Scalar1, 20 * SK_Scalar1, |
| 115 SkPath::kCW_Direction); | 115 SkPath::kCW_Direction); |
| 116 | 116 |
| 117 fPaths.push_back().addRoundRect(SkRect::MakeXYWH(0, 0, | 117 fPaths.push_back().addRoundRect(SkRect::MakeXYWH(0, 0, |
| 118 SK_Scalar1 * 100, | 118 SK_Scalar1 * 100, |
| 119 SK_Scalar1 * 100), | 119 SK_Scalar1 * 100), |
| 120 20 * SK_Scalar1, 40 * SK_Scalar1, | 120 20 * SK_Scalar1, 40 * SK_Scalar1, |
| 121 SkPath::kCCW_Direction); | 121 SkPath::kCCW_Direction); |
| 122 | 122 |
| 123 // large number of points |
| 124 enum { |
| 125 kLength = 100, |
| 126 kPtsPerSide = (1 << 12), |
| 127 }; |
| 128 fPaths.push_back().moveTo(0, 0); |
| 129 for (int i = 1; i < kPtsPerSide; ++i) { // skip the first point due to m
oveTo. |
| 130 fPaths.back().lineTo(kLength * SkIntToScalar(i) / kPtsPerSide, 0); |
| 131 } |
| 132 for (int i = 0; i < kPtsPerSide; ++i) { |
| 133 fPaths.back().lineTo(kLength, kLength * SkIntToScalar(i) / kPtsPerSi
de); |
| 134 } |
| 135 for (int i = kPtsPerSide; i > 0; --i) { |
| 136 fPaths.back().lineTo(kLength * SkIntToScalar(i) / kPtsPerSide, kLeng
th); |
| 137 } |
| 138 for (int i = kPtsPerSide; i > 0; --i) { |
| 139 fPaths.back().lineTo(0, kLength * SkIntToScalar(i) / kPtsPerSide); |
| 140 } |
| 141 |
| 123 // shallow diagonals | 142 // shallow diagonals |
| 124 fPaths.push_back().lineTo(100 * SK_Scalar1, SK_Scalar1); | 143 fPaths.push_back().lineTo(100 * SK_Scalar1, SK_Scalar1); |
| 125 fPaths.back().lineTo(98 * SK_Scalar1, 100 * SK_Scalar1); | 144 fPaths.back().lineTo(98 * SK_Scalar1, 100 * SK_Scalar1); |
| 126 fPaths.back().lineTo(3 * SK_Scalar1, 96 * SK_Scalar1); | 145 fPaths.back().lineTo(3 * SK_Scalar1, 96 * SK_Scalar1); |
| 127 | 146 |
| 128 | |
| 129 //It turns out arcTos are not automatically marked as convex and they | 147 //It turns out arcTos are not automatically marked as convex and they |
| 130 //may in fact be ever so slightly concave. | 148 //may in fact be ever so slightly concave. |
| 131 //fPaths.push_back().arcTo(SkRect::MakeXYWH(0, 0, | 149 //fPaths.push_back().arcTo(SkRect::MakeXYWH(0, 0, |
| 132 // 50 * SK_Scalar1, | 150 // 50 * SK_Scalar1, |
| 133 // 100 * SK_Scalar1), | 151 // 100 * SK_Scalar1), |
| 134 // 25 * SK_Scalar1, 130 * SK_Scalar1, false); | 152 // 25 * SK_Scalar1, 130 * SK_Scalar1, false); |
| 135 | 153 |
| 136 // cubics | 154 // cubics |
| 137 fPaths.push_back().cubicTo( 1 * SK_Scalar1, 1 * SK_Scalar1, | 155 fPaths.push_back().cubicTo( 1 * SK_Scalar1, 1 * SK_Scalar1, |
| 138 10 * SK_Scalar1, 90 * SK_Scalar1, | 156 10 * SK_Scalar1, 90 * SK_Scalar1, |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 typedef GM INHERITED; | 274 typedef GM INHERITED; |
| 257 SkTArray<SkPath> fPaths; | 275 SkTArray<SkPath> fPaths; |
| 258 }; | 276 }; |
| 259 | 277 |
| 260 ////////////////////////////////////////////////////////////////////////////// | 278 ////////////////////////////////////////////////////////////////////////////// |
| 261 | 279 |
| 262 static GM* MyFactory(void*) { return new ConvexPathsGM; } | 280 static GM* MyFactory(void*) { return new ConvexPathsGM; } |
| 263 static GMRegistry reg(MyFactory); | 281 static GMRegistry reg(MyFactory); |
| 264 | 282 |
| 265 } | 283 } |
| OLD | NEW |