OLD | NEW |
1 #include "PathOpsCubicIntersectionTestData.h" | 1 #include "PathOpsCubicIntersectionTestData.h" |
2 #include "PathOpsQuadIntersectionTestData.h" | 2 #include "PathOpsQuadIntersectionTestData.h" |
3 #include "SkCommonFlags.h" | 3 #include "SkCommonFlags.h" |
4 #include "SkPaint.h" | 4 #include "SkPaint.h" |
5 #include "SkPath.h" | 5 #include "SkPath.h" |
6 #include "SkRandom.h" | 6 #include "SkRandom.h" |
7 #include "SkStrokerPriv.h" | 7 #include "SkStrokerPriv.h" |
8 #include "SkTime.h" | 8 #include "SkTime.h" |
9 #include "Test.h" | 9 #include "Test.h" |
10 | 10 |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 cubicSetTest(pointDegenerates, pointDegenerates_count); | 109 cubicSetTest(pointDegenerates, pointDegenerates_count); |
110 cubicSetTest(notPointDegenerates, notPointDegenerates_count); | 110 cubicSetTest(notPointDegenerates, notPointDegenerates_count); |
111 cubicSetTest(lines, lines_count); | 111 cubicSetTest(lines, lines_count); |
112 cubicSetTest(notLines, notLines_count); | 112 cubicSetTest(notLines, notLines_count); |
113 cubicSetTest(modEpsilonLines, modEpsilonLines_count); | 113 cubicSetTest(modEpsilonLines, modEpsilonLines_count); |
114 cubicSetTest(lessEpsilonLines, lessEpsilonLines_count); | 114 cubicSetTest(lessEpsilonLines, lessEpsilonLines_count); |
115 cubicSetTest(negEpsilonLines, negEpsilonLines_count); | 115 cubicSetTest(negEpsilonLines, negEpsilonLines_count); |
116 cubicPairSetTest(tests, tests_count); | 116 cubicPairSetTest(tests, tests_count); |
117 } | 117 } |
118 | 118 |
119 static SkScalar unbounded(SkLCGRandom& r) { | 119 static SkScalar unbounded(SkRandom& r) { |
120 uint32_t val = r.nextU(); | 120 uint32_t val = r.nextU(); |
121 return SkBits2Float(val); | 121 return SkBits2Float(val); |
122 } | 122 } |
123 | 123 |
124 static SkScalar unboundedPos(SkLCGRandom& r) { | 124 static SkScalar unboundedPos(SkRandom& r) { |
125 uint32_t val = r.nextU() & 0x7fffffff; | 125 uint32_t val = r.nextU() & 0x7fffffff; |
126 return SkBits2Float(val); | 126 return SkBits2Float(val); |
127 } | 127 } |
128 | 128 |
129 DEF_TEST(QuadStrokerUnbounded, reporter) { | 129 DEF_TEST(QuadStrokerUnbounded, reporter) { |
130 SkLCGRandom r; | 130 SkRandom r; |
131 SkPaint p; | 131 SkPaint p; |
132 p.setStyle(SkPaint::kStroke_Style); | 132 p.setStyle(SkPaint::kStroke_Style); |
133 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION | 133 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION |
134 int best = 0; | 134 int best = 0; |
135 sk_bzero(gMaxRecursion, sizeof(gMaxRecursion[0]) * 3); | 135 sk_bzero(gMaxRecursion, sizeof(gMaxRecursion[0]) * 3); |
136 #endif | 136 #endif |
137 SkMSec limit = SkTime::GetMSecs() + MS_TEST_DURATION; | 137 SkMSec limit = SkTime::GetMSecs() + MS_TEST_DURATION; |
138 for (int i = 0; i < 1000000; ++i) { | 138 for (int i = 0; i < 1000000; ++i) { |
139 SkPath path, fill; | 139 SkPath path, fill; |
140 path.moveTo(unbounded(r), unbounded(r)); | 140 path.moveTo(unbounded(r), unbounded(r)); |
(...skipping 17 matching lines...) Expand all Loading... |
158 } | 158 } |
159 } | 159 } |
160 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION | 160 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION |
161 if (FLAGS_veryVerbose) { | 161 if (FLAGS_veryVerbose) { |
162 SkDebugf("\n%s max quad=%d\n", __FUNCTION__, best); | 162 SkDebugf("\n%s max quad=%d\n", __FUNCTION__, best); |
163 } | 163 } |
164 #endif | 164 #endif |
165 } | 165 } |
166 | 166 |
167 DEF_TEST(CubicStrokerUnbounded, reporter) { | 167 DEF_TEST(CubicStrokerUnbounded, reporter) { |
168 SkLCGRandom r; | 168 SkRandom r; |
169 SkPaint p; | 169 SkPaint p; |
170 p.setStyle(SkPaint::kStroke_Style); | 170 p.setStyle(SkPaint::kStroke_Style); |
171 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION | 171 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION |
172 int bestTan = 0; | 172 int bestTan = 0; |
173 int bestCubic = 0; | 173 int bestCubic = 0; |
174 sk_bzero(gMaxRecursion, sizeof(gMaxRecursion[0]) * 3); | 174 sk_bzero(gMaxRecursion, sizeof(gMaxRecursion[0]) * 3); |
175 #endif | 175 #endif |
176 SkMSec limit = SkTime::GetMSecs() + MS_TEST_DURATION; | 176 SkMSec limit = SkTime::GetMSecs() + MS_TEST_DURATION; |
177 for (int i = 0; i < 1000000; ++i) { | 177 for (int i = 0; i < 1000000; ++i) { |
178 SkPath path, fill; | 178 SkPath path, fill; |
(...skipping 20 matching lines...) Expand all Loading... |
199 } | 199 } |
200 } | 200 } |
201 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION | 201 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION |
202 if (FLAGS_veryVerbose) { | 202 if (FLAGS_veryVerbose) { |
203 SkDebugf("\n%s max tan=%d cubic=%d\n", __FUNCTION__, bestTan, bestCubic)
; | 203 SkDebugf("\n%s max tan=%d cubic=%d\n", __FUNCTION__, bestTan, bestCubic)
; |
204 } | 204 } |
205 #endif | 205 #endif |
206 } | 206 } |
207 | 207 |
208 DEF_TEST(QuadStrokerConstrained, reporter) { | 208 DEF_TEST(QuadStrokerConstrained, reporter) { |
209 SkLCGRandom r; | 209 SkRandom r; |
210 SkPaint p; | 210 SkPaint p; |
211 p.setStyle(SkPaint::kStroke_Style); | 211 p.setStyle(SkPaint::kStroke_Style); |
212 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION | 212 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION |
213 int best = 0; | 213 int best = 0; |
214 sk_bzero(gMaxRecursion, sizeof(gMaxRecursion[0]) * 3); | 214 sk_bzero(gMaxRecursion, sizeof(gMaxRecursion[0]) * 3); |
215 #endif | 215 #endif |
216 SkMSec limit = SkTime::GetMSecs() + MS_TEST_DURATION; | 216 SkMSec limit = SkTime::GetMSecs() + MS_TEST_DURATION; |
217 for (int i = 0; i < 1000000; ++i) { | 217 for (int i = 0; i < 1000000; ++i) { |
218 SkPath path, fill; | 218 SkPath path, fill; |
219 SkPoint quad[3]; | 219 SkPoint quad[3]; |
(...skipping 30 matching lines...) Expand all Loading... |
250 } | 250 } |
251 } | 251 } |
252 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION | 252 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION |
253 if (FLAGS_veryVerbose) { | 253 if (FLAGS_veryVerbose) { |
254 SkDebugf("\n%s max quad=%d\n", __FUNCTION__, best); | 254 SkDebugf("\n%s max quad=%d\n", __FUNCTION__, best); |
255 } | 255 } |
256 #endif | 256 #endif |
257 } | 257 } |
258 | 258 |
259 DEF_TEST(CubicStrokerConstrained, reporter) { | 259 DEF_TEST(CubicStrokerConstrained, reporter) { |
260 SkLCGRandom r; | 260 SkRandom r; |
261 SkPaint p; | 261 SkPaint p; |
262 p.setStyle(SkPaint::kStroke_Style); | 262 p.setStyle(SkPaint::kStroke_Style); |
263 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION | 263 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION |
264 int bestTan = 0; | 264 int bestTan = 0; |
265 int bestCubic = 0; | 265 int bestCubic = 0; |
266 sk_bzero(gMaxRecursion, sizeof(gMaxRecursion[0]) * 3); | 266 sk_bzero(gMaxRecursion, sizeof(gMaxRecursion[0]) * 3); |
267 #endif | 267 #endif |
268 SkMSec limit = SkTime::GetMSecs() + MS_TEST_DURATION; | 268 SkMSec limit = SkTime::GetMSecs() + MS_TEST_DURATION; |
269 for (int i = 0; i < 1000000; ++i) { | 269 for (int i = 0; i < 1000000; ++i) { |
270 SkPath path, fill; | 270 SkPath path, fill; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
309 } | 309 } |
310 } | 310 } |
311 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION | 311 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION |
312 if (FLAGS_veryVerbose) { | 312 if (FLAGS_veryVerbose) { |
313 SkDebugf("\n%s max tan=%d cubic=%d\n", __FUNCTION__, bestTan, bestCubic)
; | 313 SkDebugf("\n%s max tan=%d cubic=%d\n", __FUNCTION__, bestTan, bestCubic)
; |
314 } | 314 } |
315 #endif | 315 #endif |
316 } | 316 } |
317 | 317 |
318 DEF_TEST(QuadStrokerRange, reporter) { | 318 DEF_TEST(QuadStrokerRange, reporter) { |
319 SkLCGRandom r; | 319 SkRandom r; |
320 SkPaint p; | 320 SkPaint p; |
321 p.setStyle(SkPaint::kStroke_Style); | 321 p.setStyle(SkPaint::kStroke_Style); |
322 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION | 322 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION |
323 int best = 0; | 323 int best = 0; |
324 sk_bzero(gMaxRecursion, sizeof(gMaxRecursion[0]) * 3); | 324 sk_bzero(gMaxRecursion, sizeof(gMaxRecursion[0]) * 3); |
325 #endif | 325 #endif |
326 SkMSec limit = SkTime::GetMSecs() + MS_TEST_DURATION; | 326 SkMSec limit = SkTime::GetMSecs() + MS_TEST_DURATION; |
327 for (int i = 0; i < 1000000; ++i) { | 327 for (int i = 0; i < 1000000; ++i) { |
328 SkPath path, fill; | 328 SkPath path, fill; |
329 SkPoint quad[3]; | 329 SkPoint quad[3]; |
(...skipping 24 matching lines...) Expand all Loading... |
354 } | 354 } |
355 } | 355 } |
356 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION | 356 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION |
357 if (FLAGS_verbose) { | 357 if (FLAGS_verbose) { |
358 SkDebugf("\n%s max quad=%d\n", __FUNCTION__, best); | 358 SkDebugf("\n%s max quad=%d\n", __FUNCTION__, best); |
359 } | 359 } |
360 #endif | 360 #endif |
361 } | 361 } |
362 | 362 |
363 DEF_TEST(CubicStrokerRange, reporter) { | 363 DEF_TEST(CubicStrokerRange, reporter) { |
364 SkLCGRandom r; | 364 SkRandom r; |
365 SkPaint p; | 365 SkPaint p; |
366 p.setStyle(SkPaint::kStroke_Style); | 366 p.setStyle(SkPaint::kStroke_Style); |
367 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION | 367 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION |
368 int best[2] = { 0 }; | 368 int best[2] = { 0 }; |
369 sk_bzero(gMaxRecursion, sizeof(gMaxRecursion[0]) * 3); | 369 sk_bzero(gMaxRecursion, sizeof(gMaxRecursion[0]) * 3); |
370 #endif | 370 #endif |
371 SkMSec limit = SkTime::GetMSecs() + MS_TEST_DURATION; | 371 SkMSec limit = SkTime::GetMSecs() + MS_TEST_DURATION; |
372 for (int i = 0; i < 1000000; ++i) { | 372 for (int i = 0; i < 1000000; ++i) { |
373 SkPath path, fill; | 373 SkPath path, fill; |
374 path.moveTo(r.nextRangeF(0, 500), r.nextRangeF(0, 500)); | 374 path.moveTo(r.nextRangeF(0, 500), r.nextRangeF(0, 500)); |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
443 path.dump(); | 443 path.dump(); |
444 SkDebugf("fill:\n"); | 444 SkDebugf("fill:\n"); |
445 fill.dump(); | 445 fill.dump(); |
446 } | 446 } |
447 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION | 447 #if defined(SK_DEBUG) && QUAD_STROKE_APPROXIMATION |
448 if (FLAGS_veryVerbose) { | 448 if (FLAGS_veryVerbose) { |
449 SkDebugf("max tan=%d cubic=%d\n", gMaxRecursion[0], gMaxRecursion[1]); | 449 SkDebugf("max tan=%d cubic=%d\n", gMaxRecursion[0], gMaxRecursion[1]); |
450 } | 450 } |
451 #endif | 451 #endif |
452 } | 452 } |
OLD | NEW |