Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: tests/PathOpsDebug.cpp

Issue 2185703002: fix fuzz bugs (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/pathops/SkPathOpsTypes.h ('k') | tests/PathOpsOpTest.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2014 Google Inc. 2 * Copyright 2014 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "PathOpsTSectDebug.h" 8 #include "PathOpsTSectDebug.h"
9 #include "SkOpCoincidence.h" 9 #include "SkOpCoincidence.h"
10 #include "SkOpContour.h" 10 #include "SkOpContour.h"
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 template <typename TCurve, typename OppCurve> 389 template <typename TCurve, typename OppCurve>
390 const SkTSpan<TCurve, OppCurve>* DebugSpan(const SkTSect<TCurve, OppCurve>* sect , int id) { 390 const SkTSpan<TCurve, OppCurve>* DebugSpan(const SkTSect<TCurve, OppCurve>* sect , int id) {
391 return sect->debugSpan(id); 391 return sect->debugSpan(id);
392 } 392 }
393 393
394 void DontCallDebugSpan(int id); 394 void DontCallDebugSpan(int id);
395 void DontCallDebugSpan(int id) { // exists to instantiate the templates 395 void DontCallDebugSpan(int id) { // exists to instantiate the templates
396 SkDQuad quad; 396 SkDQuad quad;
397 SkDConic conic; 397 SkDConic conic;
398 SkDCubic cubic; 398 SkDCubic cubic;
399 SkTSect<SkDQuad, SkDQuad> q1q2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 399 SkTSect<SkDQuad, SkDQuad> q1q2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG_ T_SECT_PARAMS(1));
400 SkTSect<SkDQuad, SkDConic> q1k2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 400 SkTSect<SkDQuad, SkDConic> q1k2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG _T_SECT_PARAMS(1));
401 SkTSect<SkDQuad, SkDCubic> q1c2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 401 SkTSect<SkDQuad, SkDCubic> q1c2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG _T_SECT_PARAMS(1));
402 SkTSect<SkDConic, SkDQuad> k1q2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 402 SkTSect<SkDConic, SkDQuad> k1q2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEBU G_T_SECT_PARAMS(1));
403 SkTSect<SkDConic, SkDConic> k1k2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 403 SkTSect<SkDConic, SkDConic> k1k2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
404 SkTSect<SkDConic, SkDCubic> k1c2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 404 SkTSect<SkDConic, SkDCubic> k1c2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
405 SkTSect<SkDCubic, SkDQuad> c1q2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 405 SkTSect<SkDCubic, SkDQuad> c1q2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEBU G_T_SECT_PARAMS(1));
406 SkTSect<SkDCubic, SkDConic> c1k2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 406 SkTSect<SkDCubic, SkDConic> c1k2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
407 SkTSect<SkDCubic, SkDCubic> c1c2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 407 SkTSect<SkDCubic, SkDCubic> c1c2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
408 DebugSpan(&q1q2, id); 408 DebugSpan(&q1q2, id);
409 DebugSpan(&q1k2, id); 409 DebugSpan(&q1k2, id);
410 DebugSpan(&q1c2, id); 410 DebugSpan(&q1c2, id);
411 DebugSpan(&k1q2, id); 411 DebugSpan(&k1q2, id);
412 DebugSpan(&k1k2, id); 412 DebugSpan(&k1k2, id);
413 DebugSpan(&k1c2, id); 413 DebugSpan(&k1c2, id);
414 DebugSpan(&c1q2, id); 414 DebugSpan(&c1q2, id);
415 DebugSpan(&c1k2, id); 415 DebugSpan(&c1k2, id);
416 DebugSpan(&c1c2, id); 416 DebugSpan(&c1c2, id);
417 } 417 }
418 418
419 template <typename TCurve, typename OppCurve> 419 template <typename TCurve, typename OppCurve>
420 const SkTSpan<TCurve, OppCurve>* DebugT(const SkTSect<TCurve, OppCurve>* sect, d ouble t) { 420 const SkTSpan<TCurve, OppCurve>* DebugT(const SkTSect<TCurve, OppCurve>* sect, d ouble t) {
421 return sect->debugT(t); 421 return sect->debugT(t);
422 } 422 }
423 423
424 void DontCallDebugT(double t); 424 void DontCallDebugT(double t);
425 void DontCallDebugT(double t) { // exists to instantiate the templates 425 void DontCallDebugT(double t) { // exists to instantiate the templates
426 SkDQuad quad; 426 SkDQuad quad;
427 SkDConic conic; 427 SkDConic conic;
428 SkDCubic cubic; 428 SkDCubic cubic;
429 SkTSect<SkDQuad, SkDQuad> q1q2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 429 SkTSect<SkDQuad, SkDQuad> q1q2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG_ T_SECT_PARAMS(1));
430 SkTSect<SkDQuad, SkDConic> q1k2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 430 SkTSect<SkDQuad, SkDConic> q1k2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG _T_SECT_PARAMS(1));
431 SkTSect<SkDQuad, SkDCubic> q1c2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 431 SkTSect<SkDQuad, SkDCubic> q1c2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG _T_SECT_PARAMS(1));
432 SkTSect<SkDConic, SkDQuad> k1q2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 432 SkTSect<SkDConic, SkDQuad> k1q2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEBU G_T_SECT_PARAMS(1));
433 SkTSect<SkDConic, SkDConic> k1k2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 433 SkTSect<SkDConic, SkDConic> k1k2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
434 SkTSect<SkDConic, SkDCubic> k1c2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 434 SkTSect<SkDConic, SkDCubic> k1c2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
435 SkTSect<SkDCubic, SkDQuad> c1q2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 435 SkTSect<SkDCubic, SkDQuad> c1q2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEBU G_T_SECT_PARAMS(1));
436 SkTSect<SkDCubic, SkDConic> c1k2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 436 SkTSect<SkDCubic, SkDConic> c1k2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
437 SkTSect<SkDCubic, SkDCubic> c1c2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 437 SkTSect<SkDCubic, SkDCubic> c1c2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
438 DebugT(&q1q2, t); 438 DebugT(&q1q2, t);
439 DebugT(&q1k2, t); 439 DebugT(&q1k2, t);
440 DebugT(&q1c2, t); 440 DebugT(&q1c2, t);
441 DebugT(&k1q2, t); 441 DebugT(&k1q2, t);
442 DebugT(&k1k2, t); 442 DebugT(&k1k2, t);
443 DebugT(&k1c2, t); 443 DebugT(&k1c2, t);
444 DebugT(&c1q2, t); 444 DebugT(&c1q2, t);
445 DebugT(&c1k2, t); 445 DebugT(&c1k2, t);
446 DebugT(&c1c2, t); 446 DebugT(&c1c2, t);
447 } 447 }
448 448
449 template <typename TCurve, typename OppCurve> 449 template <typename TCurve, typename OppCurve>
450 void Dump(const SkTSect<TCurve, OppCurve>* sect) { 450 void Dump(const SkTSect<TCurve, OppCurve>* sect) {
451 sect->dump(); 451 sect->dump();
452 } 452 }
453 453
454 void DontCallDumpTSect(); 454 void DontCallDumpTSect();
455 void DontCallDumpTSect() { // exists to instantiate the templates 455 void DontCallDumpTSect() { // exists to instantiate the templates
456 SkDQuad quad; 456 SkDQuad quad;
457 SkDConic conic; 457 SkDConic conic;
458 SkDCubic cubic; 458 SkDCubic cubic;
459 SkTSect<SkDQuad, SkDQuad> q1q2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 459 SkTSect<SkDQuad, SkDQuad> q1q2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG_ T_SECT_PARAMS(1));
460 SkTSect<SkDQuad, SkDConic> q1k2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 460 SkTSect<SkDQuad, SkDConic> q1k2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG _T_SECT_PARAMS(1));
461 SkTSect<SkDQuad, SkDCubic> q1c2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 461 SkTSect<SkDQuad, SkDCubic> q1c2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG _T_SECT_PARAMS(1));
462 SkTSect<SkDConic, SkDQuad> k1q2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 462 SkTSect<SkDConic, SkDQuad> k1q2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEBU G_T_SECT_PARAMS(1));
463 SkTSect<SkDConic, SkDConic> k1k2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 463 SkTSect<SkDConic, SkDConic> k1k2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
464 SkTSect<SkDConic, SkDCubic> k1c2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 464 SkTSect<SkDConic, SkDCubic> k1c2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
465 SkTSect<SkDCubic, SkDQuad> c1q2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 465 SkTSect<SkDCubic, SkDQuad> c1q2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEBU G_T_SECT_PARAMS(1));
466 SkTSect<SkDCubic, SkDConic> c1k2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 466 SkTSect<SkDCubic, SkDConic> c1k2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
467 SkTSect<SkDCubic, SkDCubic> c1c2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 467 SkTSect<SkDCubic, SkDCubic> c1c2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
468 Dump(&q1q2); 468 Dump(&q1q2);
469 Dump(&q1k2); 469 Dump(&q1k2);
470 Dump(&q1c2); 470 Dump(&q1c2);
471 Dump(&k1q2); 471 Dump(&k1q2);
472 Dump(&k1k2); 472 Dump(&k1k2);
473 Dump(&k1c2); 473 Dump(&k1c2);
474 Dump(&c1q2); 474 Dump(&c1q2);
475 Dump(&c1k2); 475 Dump(&c1k2);
476 Dump(&c1c2); 476 Dump(&c1c2);
477 } 477 }
478 478
479 template <typename TCurve, typename OppCurve> 479 template <typename TCurve, typename OppCurve>
480 void DumpBoth(SkTSect<TCurve, OppCurve>* sect1, SkTSect<OppCurve, TCurve>* sect2 ) { 480 void DumpBoth(SkTSect<TCurve, OppCurve>* sect1, SkTSect<OppCurve, TCurve>* sect2 ) {
481 sect1->dumpBoth(sect2); 481 sect1->dumpBoth(sect2);
482 } 482 }
483 483
484 void DontCallDumpBoth(); 484 void DontCallDumpBoth();
485 void DontCallDumpBoth() { // exists to instantiate the templates 485 void DontCallDumpBoth() { // exists to instantiate the templates
486 SkDQuad quad; 486 SkDQuad quad;
487 SkDConic conic; 487 SkDConic conic;
488 SkDCubic cubic; 488 SkDCubic cubic;
489 SkTSect<SkDQuad, SkDQuad> q1q2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 489 SkTSect<SkDQuad, SkDQuad> q1q2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG_ T_SECT_PARAMS(1));
490 SkTSect<SkDQuad, SkDConic> q1k2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 490 SkTSect<SkDQuad, SkDConic> q1k2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG _T_SECT_PARAMS(1));
491 SkTSect<SkDQuad, SkDCubic> q1c2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 491 SkTSect<SkDQuad, SkDCubic> q1c2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG _T_SECT_PARAMS(1));
492 SkTSect<SkDConic, SkDQuad> k1q2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 492 SkTSect<SkDConic, SkDQuad> k1q2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEBU G_T_SECT_PARAMS(1));
493 SkTSect<SkDConic, SkDConic> k1k2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 493 SkTSect<SkDConic, SkDConic> k1k2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
494 SkTSect<SkDConic, SkDCubic> k1c2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 494 SkTSect<SkDConic, SkDCubic> k1c2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
495 SkTSect<SkDCubic, SkDQuad> c1q2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 495 SkTSect<SkDCubic, SkDQuad> c1q2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEBU G_T_SECT_PARAMS(1));
496 SkTSect<SkDCubic, SkDConic> c1k2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 496 SkTSect<SkDCubic, SkDConic> c1k2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
497 SkTSect<SkDCubic, SkDCubic> c1c2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 497 SkTSect<SkDCubic, SkDCubic> c1c2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
498 DumpBoth(&q1q2, &q1q2); 498 DumpBoth(&q1q2, &q1q2);
499 DumpBoth(&q1k2, &k1q2); 499 DumpBoth(&q1k2, &k1q2);
500 DumpBoth(&q1c2, &c1q2); 500 DumpBoth(&q1c2, &c1q2);
501 DumpBoth(&k1q2, &q1k2); 501 DumpBoth(&k1q2, &q1k2);
502 DumpBoth(&k1k2, &k1k2); 502 DumpBoth(&k1k2, &k1k2);
503 DumpBoth(&k1c2, &c1k2); 503 DumpBoth(&k1c2, &c1k2);
504 DumpBoth(&c1q2, &q1c2); 504 DumpBoth(&c1q2, &q1c2);
505 DumpBoth(&c1k2, &k1c2); 505 DumpBoth(&c1k2, &k1c2);
506 DumpBoth(&c1c2, &c1c2); 506 DumpBoth(&c1c2, &c1c2);
507 } 507 }
508 508
509 template <typename TCurve, typename OppCurve> 509 template <typename TCurve, typename OppCurve>
510 void DumpBounded(SkTSect<TCurve, OppCurve>* sect1, int id) { 510 void DumpBounded(SkTSect<TCurve, OppCurve>* sect1, int id) {
511 sect1->dumpBounded(id); 511 sect1->dumpBounded(id);
512 } 512 }
513 513
514 void DontCallDumpBounded(); 514 void DontCallDumpBounded();
515 void DontCallDumpBounded() { 515 void DontCallDumpBounded() {
516 SkDQuad quad; 516 SkDQuad quad;
517 SkDConic conic; 517 SkDConic conic;
518 SkDCubic cubic; 518 SkDCubic cubic;
519 SkTSect<SkDQuad, SkDQuad> q1q2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 519 SkTSect<SkDQuad, SkDQuad> q1q2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG_ T_SECT_PARAMS(1));
520 SkTSect<SkDQuad, SkDConic> q1k2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 520 SkTSect<SkDQuad, SkDConic> q1k2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG _T_SECT_PARAMS(1));
521 SkTSect<SkDQuad, SkDCubic> q1c2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 521 SkTSect<SkDQuad, SkDCubic> q1c2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG _T_SECT_PARAMS(1));
522 SkTSect<SkDConic, SkDQuad> k1q2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 522 SkTSect<SkDConic, SkDQuad> k1q2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEBU G_T_SECT_PARAMS(1));
523 SkTSect<SkDConic, SkDConic> k1k2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 523 SkTSect<SkDConic, SkDConic> k1k2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
524 SkTSect<SkDConic, SkDCubic> k1c2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 524 SkTSect<SkDConic, SkDCubic> k1c2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
525 SkTSect<SkDCubic, SkDQuad> c1q2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 525 SkTSect<SkDCubic, SkDQuad> c1q2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEBU G_T_SECT_PARAMS(1));
526 SkTSect<SkDCubic, SkDConic> c1k2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 526 SkTSect<SkDCubic, SkDConic> c1k2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
527 SkTSect<SkDCubic, SkDCubic> c1c2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 527 SkTSect<SkDCubic, SkDCubic> c1c2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
528 DumpBounded(&q1q2, 0); 528 DumpBounded(&q1q2, 0);
529 DumpBounded(&q1k2, 0); 529 DumpBounded(&q1k2, 0);
530 DumpBounded(&q1c2, 0); 530 DumpBounded(&q1c2, 0);
531 DumpBounded(&k1q2, 0); 531 DumpBounded(&k1q2, 0);
532 DumpBounded(&k1k2, 0); 532 DumpBounded(&k1k2, 0);
533 DumpBounded(&k1c2, 0); 533 DumpBounded(&k1c2, 0);
534 DumpBounded(&c1q2, 0); 534 DumpBounded(&c1q2, 0);
535 DumpBounded(&c1k2, 0); 535 DumpBounded(&c1k2, 0);
536 DumpBounded(&c1c2, 0); 536 DumpBounded(&c1c2, 0);
537 } 537 }
538 538
539 template <typename TCurve, typename OppCurve> 539 template <typename TCurve, typename OppCurve>
540 void DumpBounds(SkTSect<TCurve, OppCurve>* sect1) { 540 void DumpBounds(SkTSect<TCurve, OppCurve>* sect1) {
541 sect1->dumpBounds(); 541 sect1->dumpBounds();
542 } 542 }
543 543
544 void DontCallDumpBounds(); 544 void DontCallDumpBounds();
545 void DontCallDumpBounds() { 545 void DontCallDumpBounds() {
546 SkDQuad quad; 546 SkDQuad quad;
547 SkDConic conic; 547 SkDConic conic;
548 SkDCubic cubic; 548 SkDCubic cubic;
549 SkTSect<SkDQuad, SkDQuad> q1q2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 549 SkTSect<SkDQuad, SkDQuad> q1q2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG_ T_SECT_PARAMS(1));
550 SkTSect<SkDQuad, SkDConic> q1k2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 550 SkTSect<SkDQuad, SkDConic> q1k2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG _T_SECT_PARAMS(1));
551 SkTSect<SkDQuad, SkDCubic> q1c2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 551 SkTSect<SkDQuad, SkDCubic> q1c2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG _T_SECT_PARAMS(1));
552 SkTSect<SkDConic, SkDQuad> k1q2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 552 SkTSect<SkDConic, SkDQuad> k1q2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEBU G_T_SECT_PARAMS(1));
553 SkTSect<SkDConic, SkDConic> k1k2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 553 SkTSect<SkDConic, SkDConic> k1k2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
554 SkTSect<SkDConic, SkDCubic> k1c2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 554 SkTSect<SkDConic, SkDCubic> k1c2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
555 SkTSect<SkDCubic, SkDQuad> c1q2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 555 SkTSect<SkDCubic, SkDQuad> c1q2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEBU G_T_SECT_PARAMS(1));
556 SkTSect<SkDCubic, SkDConic> c1k2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 556 SkTSect<SkDCubic, SkDConic> c1k2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
557 SkTSect<SkDCubic, SkDCubic> c1c2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 557 SkTSect<SkDCubic, SkDCubic> c1c2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
558 DumpBounds(&q1q2); 558 DumpBounds(&q1q2);
559 DumpBounds(&q1k2); 559 DumpBounds(&q1k2);
560 DumpBounds(&q1c2); 560 DumpBounds(&q1c2);
561 DumpBounds(&k1q2); 561 DumpBounds(&k1q2);
562 DumpBounds(&k1k2); 562 DumpBounds(&k1k2);
563 DumpBounds(&k1c2); 563 DumpBounds(&k1c2);
564 DumpBounds(&c1q2); 564 DumpBounds(&c1q2);
565 DumpBounds(&c1k2); 565 DumpBounds(&c1k2);
566 DumpBounds(&c1c2); 566 DumpBounds(&c1c2);
567 } 567 }
568 568
569 template <typename TCurve, typename OppCurve> 569 template <typename TCurve, typename OppCurve>
570 void DumpCoin(SkTSect<TCurve, OppCurve>* sect1) { 570 void DumpCoin(SkTSect<TCurve, OppCurve>* sect1) {
571 sect1->dumpCoin(); 571 sect1->dumpCoin();
572 } 572 }
573 573
574 void DontCallDumpCoin(); 574 void DontCallDumpCoin();
575 void DontCallDumpCoin() { // exists to instantiate the templates 575 void DontCallDumpCoin() { // exists to instantiate the templates
576 SkDQuad quad; 576 SkDQuad quad;
577 SkDConic conic; 577 SkDConic conic;
578 SkDCubic cubic; 578 SkDCubic cubic;
579 SkTSect<SkDQuad, SkDQuad> q1q2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 579 SkTSect<SkDQuad, SkDQuad> q1q2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG_ T_SECT_PARAMS(1));
580 SkTSect<SkDQuad, SkDConic> q1k2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 580 SkTSect<SkDQuad, SkDConic> q1k2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG _T_SECT_PARAMS(1));
581 SkTSect<SkDQuad, SkDCubic> q1c2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 581 SkTSect<SkDQuad, SkDCubic> q1c2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG _T_SECT_PARAMS(1));
582 SkTSect<SkDConic, SkDQuad> k1q2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 582 SkTSect<SkDConic, SkDQuad> k1q2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEBU G_T_SECT_PARAMS(1));
583 SkTSect<SkDConic, SkDConic> k1k2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 583 SkTSect<SkDConic, SkDConic> k1k2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
584 SkTSect<SkDConic, SkDCubic> k1c2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 584 SkTSect<SkDConic, SkDCubic> k1c2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
585 SkTSect<SkDCubic, SkDQuad> c1q2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 585 SkTSect<SkDCubic, SkDQuad> c1q2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEBU G_T_SECT_PARAMS(1));
586 SkTSect<SkDCubic, SkDConic> c1k2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 586 SkTSect<SkDCubic, SkDConic> c1k2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
587 SkTSect<SkDCubic, SkDCubic> c1c2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 587 SkTSect<SkDCubic, SkDCubic> c1c2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
588 DumpCoin(&q1q2); 588 DumpCoin(&q1q2);
589 DumpCoin(&q1k2); 589 DumpCoin(&q1k2);
590 DumpCoin(&q1c2); 590 DumpCoin(&q1c2);
591 DumpCoin(&k1q2); 591 DumpCoin(&k1q2);
592 DumpCoin(&k1k2); 592 DumpCoin(&k1k2);
593 DumpCoin(&k1c2); 593 DumpCoin(&k1c2);
594 DumpCoin(&c1q2); 594 DumpCoin(&c1q2);
595 DumpCoin(&c1k2); 595 DumpCoin(&c1k2);
596 DumpCoin(&c1c2); 596 DumpCoin(&c1c2);
597 } 597 }
598 598
599 template <typename TCurve, typename OppCurve> 599 template <typename TCurve, typename OppCurve>
600 void DumpCoinCurves(SkTSect<TCurve, OppCurve>* sect1) { 600 void DumpCoinCurves(SkTSect<TCurve, OppCurve>* sect1) {
601 sect1->dumpCoinCurves(); 601 sect1->dumpCoinCurves();
602 } 602 }
603 603
604 void DontCallDumpCoinCurves(); 604 void DontCallDumpCoinCurves();
605 void DontCallDumpCoinCurves() { // exists to instantiate the templates 605 void DontCallDumpCoinCurves() { // exists to instantiate the templates
606 SkDQuad quad; 606 SkDQuad quad;
607 SkDConic conic; 607 SkDConic conic;
608 SkDCubic cubic; 608 SkDCubic cubic;
609 SkTSect<SkDQuad, SkDQuad> q1q2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 609 SkTSect<SkDQuad, SkDQuad> q1q2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG_ T_SECT_PARAMS(1));
610 SkTSect<SkDQuad, SkDConic> q1k2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 610 SkTSect<SkDQuad, SkDConic> q1k2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG _T_SECT_PARAMS(1));
611 SkTSect<SkDQuad, SkDCubic> q1c2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 611 SkTSect<SkDQuad, SkDCubic> q1c2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG _T_SECT_PARAMS(1));
612 SkTSect<SkDConic, SkDQuad> k1q2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 612 SkTSect<SkDConic, SkDQuad> k1q2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEBU G_T_SECT_PARAMS(1));
613 SkTSect<SkDConic, SkDConic> k1k2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 613 SkTSect<SkDConic, SkDConic> k1k2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
614 SkTSect<SkDConic, SkDCubic> k1c2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 614 SkTSect<SkDConic, SkDCubic> k1c2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
615 SkTSect<SkDCubic, SkDQuad> c1q2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 615 SkTSect<SkDCubic, SkDQuad> c1q2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEBU G_T_SECT_PARAMS(1));
616 SkTSect<SkDCubic, SkDConic> c1k2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 616 SkTSect<SkDCubic, SkDConic> c1k2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
617 SkTSect<SkDCubic, SkDCubic> c1c2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 617 SkTSect<SkDCubic, SkDCubic> c1c2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
618 DumpCoinCurves(&q1q2); 618 DumpCoinCurves(&q1q2);
619 DumpCoinCurves(&q1k2); 619 DumpCoinCurves(&q1k2);
620 DumpCoinCurves(&q1c2); 620 DumpCoinCurves(&q1c2);
621 DumpCoinCurves(&k1q2); 621 DumpCoinCurves(&k1q2);
622 DumpCoinCurves(&k1k2); 622 DumpCoinCurves(&k1k2);
623 DumpCoinCurves(&k1c2); 623 DumpCoinCurves(&k1c2);
624 DumpCoinCurves(&c1q2); 624 DumpCoinCurves(&c1q2);
625 DumpCoinCurves(&c1k2); 625 DumpCoinCurves(&c1k2);
626 DumpCoinCurves(&c1c2); 626 DumpCoinCurves(&c1c2);
627 } 627 }
628 628
629 template <typename TCurve, typename OppCurve> 629 template <typename TCurve, typename OppCurve>
630 void DumpCurves(const SkTSect<TCurve, OppCurve>* sect) { 630 void DumpCurves(const SkTSect<TCurve, OppCurve>* sect) {
631 sect->dumpCurves(); 631 sect->dumpCurves();
632 } 632 }
633 633
634 void DontCallDumpCurves(); 634 void DontCallDumpCurves();
635 void DontCallDumpCurves() { // exists to instantiate the templates 635 void DontCallDumpCurves() { // exists to instantiate the templates
636 SkDQuad quad; 636 SkDQuad quad;
637 SkDConic conic; 637 SkDConic conic;
638 SkDCubic cubic; 638 SkDCubic cubic;
639 SkTSect<SkDQuad, SkDQuad> q1q2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 639 SkTSect<SkDQuad, SkDQuad> q1q2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG_ T_SECT_PARAMS(1));
640 SkTSect<SkDQuad, SkDConic> q1k2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 640 SkTSect<SkDQuad, SkDConic> q1k2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG _T_SECT_PARAMS(1));
641 SkTSect<SkDQuad, SkDCubic> q1c2(quad PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 641 SkTSect<SkDQuad, SkDCubic> q1c2(quad SkDEBUGPARAMS(nullptr) PATH_OPS_DEBUG _T_SECT_PARAMS(1));
642 SkTSect<SkDConic, SkDQuad> k1q2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 642 SkTSect<SkDConic, SkDQuad> k1q2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEBU G_T_SECT_PARAMS(1));
643 SkTSect<SkDConic, SkDConic> k1k2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 643 SkTSect<SkDConic, SkDConic> k1k2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
644 SkTSect<SkDConic, SkDCubic> k1c2(conic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 644 SkTSect<SkDConic, SkDCubic> k1c2(conic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
645 SkTSect<SkDCubic, SkDQuad> c1q2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 645 SkTSect<SkDCubic, SkDQuad> c1q2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEBU G_T_SECT_PARAMS(1));
646 SkTSect<SkDCubic, SkDConic> c1k2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 646 SkTSect<SkDCubic, SkDConic> c1k2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
647 SkTSect<SkDCubic, SkDCubic> c1c2(cubic PATH_OPS_DEBUG_T_SECT_PARAMS(1)); 647 SkTSect<SkDCubic, SkDCubic> c1c2(cubic SkDEBUGPARAMS(nullptr) PATH_OPS_DEB UG_T_SECT_PARAMS(1));
648 DumpCurves(&q1q2); 648 DumpCurves(&q1q2);
649 DumpCurves(&q1k2); 649 DumpCurves(&q1k2);
650 DumpCurves(&q1c2); 650 DumpCurves(&q1c2);
651 DumpCurves(&k1q2); 651 DumpCurves(&k1q2);
652 DumpCurves(&k1k2); 652 DumpCurves(&k1k2);
653 DumpCurves(&k1c2); 653 DumpCurves(&k1c2);
654 DumpCurves(&c1q2); 654 DumpCurves(&c1q2);
655 DumpCurves(&c1k2); 655 DumpCurves(&c1k2);
656 DumpCurves(&c1c2); 656 DumpCurves(&c1c2);
657 } 657 }
(...skipping 796 matching lines...) Expand 10 before | Expand all | Expand 10 after
1454 segment = segment->next(); 1454 segment = segment->next();
1455 } 1455 }
1456 } while ((contour = contour->next())); 1456 } while ((contour = contour->next()));
1457 return nullptr; 1457 return nullptr;
1458 } 1458 }
1459 #endif 1459 #endif
1460 1460
1461 #if DEBUG_T_SECT_DUMP > 1 1461 #if DEBUG_T_SECT_DUMP > 1
1462 int gDumpTSectNum; 1462 int gDumpTSectNum;
1463 #endif 1463 #endif
OLDNEW
« no previous file with comments | « src/pathops/SkPathOpsTypes.h ('k') | tests/PathOpsOpTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698