OLD | NEW |
1 #include "SkOpContour.h" | 1 #include "SkOpContour.h" |
2 #include "SkIntersectionHelper.h" | 2 #include "SkIntersectionHelper.h" |
3 #include "SkOpSegment.h" | 3 #include "SkOpSegment.h" |
4 #include "SkString.h" | 4 #include "SkString.h" |
5 | 5 |
6 inline void DebugDumpDouble(double x) { | 6 inline void DebugDumpDouble(double x) { |
7 if (x == floor(x)) { | 7 if (x == floor(x)) { |
8 SkDebugf("%.0f", x); | 8 SkDebugf("%.0f", x); |
9 } else { | 9 } else { |
10 SkDebugf("%1.19g", x); | 10 SkDebugf("%1.19g", x); |
11 } | 11 } |
12 } | 12 } |
13 | 13 |
14 inline void DebugDumpFloat(float x) { | 14 inline void DebugDumpFloat(float x) { |
15 if (x == floorf(x)) { | 15 if (x == floorf(x)) { |
16 SkDebugf("%.0f", x); | 16 SkDebugf("%.0f", x); |
17 } else { | 17 } else { |
18 SkDebugf("%1.9gf", x); | 18 SkDebugf("%1.9gf", x); |
19 } | 19 } |
20 } | 20 } |
21 | 21 |
| 22 inline void DebugDumpHexFloat(float x) { |
| 23 SkDebugf("SkBits2Float(0x%08x)", SkFloat2Bits(x)); |
| 24 } |
22 | 25 |
23 #if DEBUG_SHOW_TEST_NAME | 26 #if DEBUG_SHOW_TEST_NAME |
24 | 27 |
25 static void output_scalar(SkScalar num) { | 28 static void output_scalar(SkScalar num) { |
26 if (num == (int) num) { | 29 if (num == (int) num) { |
27 SkDebugf("%d", (int) num); | 30 SkDebugf("%d", (int) num); |
28 } else { | 31 } else { |
29 SkString str; | 32 SkString str; |
30 str.printf("%1.9g", num); | 33 str.printf("%1.9g", num); |
31 int width = (int) str.size(); | 34 int width = (int) str.size(); |
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
406 } | 409 } |
407 | 410 |
408 void SkDPoint::Dump(const SkPoint& pt) { | 411 void SkDPoint::Dump(const SkPoint& pt) { |
409 SkDebugf("{"); | 412 SkDebugf("{"); |
410 DebugDumpFloat(pt.fX); | 413 DebugDumpFloat(pt.fX); |
411 SkDebugf(", "); | 414 SkDebugf(", "); |
412 DebugDumpFloat(pt.fY); | 415 DebugDumpFloat(pt.fY); |
413 SkDebugf("}"); | 416 SkDebugf("}"); |
414 } | 417 } |
415 | 418 |
| 419 void SkDPoint::DumpHex(const SkPoint& pt) { |
| 420 SkDebugf("{"); |
| 421 DebugDumpHexFloat(pt.fX); |
| 422 SkDebugf(", "); |
| 423 DebugDumpHexFloat(pt.fY); |
| 424 SkDebugf("}"); |
| 425 } |
| 426 |
| 427 void SkDQuad::dump() const { |
| 428 dumpComma(""); |
| 429 } |
416 | 430 |
417 void SkDQuad::dumpComma(const char* comma) const { | 431 void SkDQuad::dumpComma(const char* comma) const { |
418 SkDebugf("{{"); | 432 SkDebugf("{{"); |
419 int index = 0; | 433 int index = 0; |
420 do { | 434 do { |
421 fPts[index].dump(); | 435 fPts[index].dump(); |
422 SkDebugf(", "); | 436 SkDebugf(", "); |
423 } while (++index < 2); | 437 } while (++index < 2); |
424 fPts[index].dump(); | 438 fPts[index].dump(); |
425 SkDebugf("}}%s\n", comma ? comma : ""); | 439 SkDebugf("}}%s\n", comma ? comma : ""); |
426 } | 440 } |
427 | 441 |
428 void SkDQuad::dump() const { | |
429 dumpComma(""); | |
430 } | |
431 | |
432 void SkIntersectionHelper::dump() const { | 442 void SkIntersectionHelper::dump() const { |
433 SkDPoint::Dump(pts()[0]); | 443 SkDPoint::Dump(pts()[0]); |
434 SkDPoint::Dump(pts()[1]); | 444 SkDPoint::Dump(pts()[1]); |
435 if (verb() >= SkPath::kQuad_Verb) { | 445 if (verb() >= SkPath::kQuad_Verb) { |
436 SkDPoint::Dump(pts()[2]); | 446 SkDPoint::Dump(pts()[2]); |
437 } | 447 } |
438 if (verb() >= SkPath::kCubic_Verb) { | 448 if (verb() >= SkPath::kCubic_Verb) { |
439 SkDPoint::Dump(pts()[3]); | 449 SkDPoint::Dump(pts()[3]); |
440 } | 450 } |
441 } | 451 } |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
485 SkDebugf("((SkOpSegment*) 0x%p) [%d] {{", this, debugID()); | 495 SkDebugf("((SkOpSegment*) 0x%p) [%d] {{", this, debugID()); |
486 int index = 0; | 496 int index = 0; |
487 do { | 497 do { |
488 SkDPoint::Dump(fPts[index]); | 498 SkDPoint::Dump(fPts[index]); |
489 SkDebugf(", "); | 499 SkDebugf(", "); |
490 } while (++index < last); | 500 } while (++index < last); |
491 SkDPoint::Dump(fPts[index]); | 501 SkDPoint::Dump(fPts[index]); |
492 SkDebugf("}}\n"); | 502 SkDebugf("}}\n"); |
493 } | 503 } |
494 | 504 |
| 505 void SkOpSegment::dumpHexPts() const { |
| 506 int last = SkPathOpsVerbToPoints(fVerb); |
| 507 SkDebugf("((SkOpSegment*) 0x%p) [%d] {{", this, debugID()); |
| 508 int index = 0; |
| 509 do { |
| 510 SkDPoint::DumpHex(fPts[index]); |
| 511 SkDebugf(", "); |
| 512 } while (++index < last); |
| 513 SkDPoint::DumpHex(fPts[index]); |
| 514 SkDebugf("}}\n"); |
| 515 } |
| 516 |
495 void SkOpSegment::dumpDPts() const { | 517 void SkOpSegment::dumpDPts() const { |
496 int count = SkPathOpsVerbToPoints(fVerb); | 518 int count = SkPathOpsVerbToPoints(fVerb); |
497 SkDebugf("((SkOpSegment*) 0x%p) [%d] {{", this, debugID()); | 519 SkDebugf("((SkOpSegment*) 0x%p) [%d] {{", this, debugID()); |
498 int index = 0; | 520 int index = 0; |
499 do { | 521 do { |
500 SkDPoint dPt = {fPts[index].fX, fPts[index].fY}; | 522 SkDPoint dPt = {fPts[index].fX, fPts[index].fY}; |
501 dPt.dump(); | 523 dPt.dump(); |
502 if (index != count) { | 524 if (index != count) { |
503 SkDebugf(", "); | 525 SkDebugf(", "); |
504 } | 526 } |
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
866 dumpTestCase(quad1, quad2, testNo); | 888 dumpTestCase(quad1, quad2, testNo); |
867 dumpTestTrailer(); | 889 dumpTestTrailer(); |
868 dumpTestList(testNo, 0); | 890 dumpTestList(testNo, 0); |
869 SkDebugf("\n"); | 891 SkDebugf("\n"); |
870 } | 892 } |
871 | 893 |
872 void DumpT(const SkDQuad& quad, double t) { | 894 void DumpT(const SkDQuad& quad, double t) { |
873 SkDLine line = {{quad.ptAtT(t), quad[0]}}; | 895 SkDLine line = {{quad.ptAtT(t), quad[0]}}; |
874 line.dump(); | 896 line.dump(); |
875 } | 897 } |
OLD | NEW |