OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 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 #include "SampleCode.h" | 7 #include "SampleCode.h" |
8 #include "SkBlurMask.h" | 8 #include "SkBlurMask.h" |
9 #include "SkBlurMaskFilter.h" | 9 #include "SkBlurMaskFilter.h" |
10 #include "SkCanvas.h" | 10 #include "SkCanvas.h" |
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
465 SkBlurMask::ConvertRadiusToSigma(3)))
; | 465 SkBlurMask::ConvertRadiusToSigma(3)))
; |
466 rastBuilder->addLayer(p, SkIntToScalar(3), SkIntToScalar(3)); | 466 rastBuilder->addLayer(p, SkIntToScalar(3), SkIntToScalar(3)); |
467 | 467 |
468 p.setMaskFilter(nullptr); | 468 p.setMaskFilter(nullptr); |
469 p.setStyle(SkPaint::kStroke_Style); | 469 p.setStyle(SkPaint::kStroke_Style); |
470 p.setStrokeWidth(SK_Scalar1); | 470 p.setStrokeWidth(SK_Scalar1); |
471 rastBuilder->addLayer(p); | 471 rastBuilder->addLayer(p); |
472 | 472 |
473 p.setAlpha(0x11); | 473 p.setAlpha(0x11); |
474 p.setStyle(SkPaint::kFill_Style); | 474 p.setStyle(SkPaint::kFill_Style); |
475 p.setXfermodeMode(SkXfermode::kSrc_Mode); | 475 p.setBlendMode(SkBlendMode::kSrc); |
476 rastBuilder->addLayer(p); | 476 rastBuilder->addLayer(p); |
477 } | 477 } |
478 | 478 |
479 static void r1(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) | 479 static void r1(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) |
480 { | 480 { |
481 rastBuilder->addLayer(p); | 481 rastBuilder->addLayer(p); |
482 | 482 |
483 p.setAlpha(0x40); | 483 p.setAlpha(0x40); |
484 p.setXfermodeMode(SkXfermode::kSrc_Mode); | 484 p.setBlendMode(SkBlendMode::kSrc); |
485 p.setStyle(SkPaint::kStroke_Style); | 485 p.setStyle(SkPaint::kStroke_Style); |
486 p.setStrokeWidth(SK_Scalar1*2); | 486 p.setStrokeWidth(SK_Scalar1*2); |
487 rastBuilder->addLayer(p); | 487 rastBuilder->addLayer(p); |
488 } | 488 } |
489 | 489 |
490 static void r2(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) | 490 static void r2(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) |
491 { | 491 { |
492 p.setStyle(SkPaint::kStrokeAndFill_Style); | 492 p.setStyle(SkPaint::kStrokeAndFill_Style); |
493 p.setStrokeWidth(SK_Scalar1*4); | 493 p.setStrokeWidth(SK_Scalar1*4); |
494 rastBuilder->addLayer(p); | 494 rastBuilder->addLayer(p); |
495 | 495 |
496 p.setStyle(SkPaint::kStroke_Style); | 496 p.setStyle(SkPaint::kStroke_Style); |
497 p.setStrokeWidth(SK_Scalar1*3/2); | 497 p.setStrokeWidth(SK_Scalar1*3/2); |
498 p.setXfermodeMode(SkXfermode::kClear_Mode); | 498 p.setBlendMode(SkBlendMode::kClear); |
499 rastBuilder->addLayer(p); | 499 rastBuilder->addLayer(p); |
500 } | 500 } |
501 | 501 |
502 static void r3(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) | 502 static void r3(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) |
503 { | 503 { |
504 p.setStyle(SkPaint::kStroke_Style); | 504 p.setStyle(SkPaint::kStroke_Style); |
505 p.setStrokeWidth(SK_Scalar1*3); | 505 p.setStrokeWidth(SK_Scalar1*3); |
506 rastBuilder->addLayer(p); | 506 rastBuilder->addLayer(p); |
507 | 507 |
508 p.setAlpha(0x20); | 508 p.setAlpha(0x20); |
509 p.setStyle(SkPaint::kFill_Style); | 509 p.setStyle(SkPaint::kFill_Style); |
510 p.setXfermodeMode(SkXfermode::kSrc_Mode); | 510 p.setBlendMode(SkBlendMode::kSrc); |
511 rastBuilder->addLayer(p); | 511 rastBuilder->addLayer(p); |
512 } | 512 } |
513 | 513 |
514 static void r4(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) | 514 static void r4(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) |
515 { | 515 { |
516 p.setAlpha(0x60); | 516 p.setAlpha(0x60); |
517 rastBuilder->addLayer(p, SkIntToScalar(3), SkIntToScalar(3)); | 517 rastBuilder->addLayer(p, SkIntToScalar(3), SkIntToScalar(3)); |
518 | 518 |
519 p.setAlpha(0xFF); | 519 p.setAlpha(0xFF); |
520 p.setXfermodeMode(SkXfermode::kClear_Mode); | 520 p.setBlendMode(SkBlendMode::kClear); |
521 rastBuilder->addLayer(p, SK_Scalar1*3/2, SK_Scalar1*3/2); | 521 rastBuilder->addLayer(p, SK_Scalar1*3/2, SK_Scalar1*3/2); |
522 | 522 |
523 p.setXfermode(nullptr); | 523 p.setBlendMode(SkBlendMode::kSrcOver); |
524 rastBuilder->addLayer(p); | 524 rastBuilder->addLayer(p); |
525 } | 525 } |
526 | 526 |
527 #include "SkDiscretePathEffect.h" | 527 #include "SkDiscretePathEffect.h" |
528 | 528 |
529 static void r5(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) | 529 static void r5(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) |
530 { | 530 { |
531 rastBuilder->addLayer(p); | 531 rastBuilder->addLayer(p); |
532 | 532 |
533 p.setPathEffect(SkDiscretePathEffect::Make(SK_Scalar1*4, SK_Scalar1*3)); | 533 p.setPathEffect(SkDiscretePathEffect::Make(SK_Scalar1*4, SK_Scalar1*3)); |
534 p.setXfermodeMode(SkXfermode::kSrcOut_Mode); | 534 p.setBlendMode(SkBlendMode::kSrcOut); |
535 rastBuilder->addLayer(p); | 535 rastBuilder->addLayer(p); |
536 } | 536 } |
537 | 537 |
538 static void r6(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) | 538 static void r6(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) |
539 { | 539 { |
540 rastBuilder->addLayer(p); | 540 rastBuilder->addLayer(p); |
541 | 541 |
542 p.setAntiAlias(false); | 542 p.setAntiAlias(false); |
543 SkLayerRasterizer::Builder rastBuilder2; | 543 SkLayerRasterizer::Builder rastBuilder2; |
544 r5(&rastBuilder2, p); | 544 r5(&rastBuilder2, p); |
545 p.setRasterizer(rastBuilder2.detach()); | 545 p.setRasterizer(rastBuilder2.detach()); |
546 p.setXfermodeMode(SkXfermode::kClear_Mode); | 546 p.setBlendMode(SkBlendMode::kClear); |
547 rastBuilder->addLayer(p); | 547 rastBuilder->addLayer(p); |
548 } | 548 } |
549 | 549 |
550 #include "Sk2DPathEffect.h" | 550 #include "Sk2DPathEffect.h" |
551 | 551 |
552 static sk_sp<SkPathEffect> MakeDotEffect(SkScalar radius, const SkMatrix& matrix
) { | 552 static sk_sp<SkPathEffect> MakeDotEffect(SkScalar radius, const SkMatrix& matrix
) { |
553 SkPath path; | 553 SkPath path; |
554 path.addCircle(0, 0, radius); | 554 path.addCircle(0, 0, radius); |
555 return SkPath2DPathEffect::Make(matrix, path); | 555 return SkPath2DPathEffect::Make(matrix, path); |
556 } | 556 } |
557 | 557 |
558 static void r7(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) | 558 static void r7(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) |
559 { | 559 { |
560 SkMatrix lattice; | 560 SkMatrix lattice; |
561 lattice.setScale(SK_Scalar1*6, SK_Scalar1*6, 0, 0); | 561 lattice.setScale(SK_Scalar1*6, SK_Scalar1*6, 0, 0); |
562 lattice.postSkew(SK_Scalar1/3, 0, 0, 0); | 562 lattice.postSkew(SK_Scalar1/3, 0, 0, 0); |
563 p.setPathEffect(MakeDotEffect(SK_Scalar1*4, lattice)); | 563 p.setPathEffect(MakeDotEffect(SK_Scalar1*4, lattice)); |
564 rastBuilder->addLayer(p); | 564 rastBuilder->addLayer(p); |
565 } | 565 } |
566 | 566 |
567 static void r8(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) | 567 static void r8(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) |
568 { | 568 { |
569 rastBuilder->addLayer(p); | 569 rastBuilder->addLayer(p); |
570 | 570 |
571 SkMatrix lattice; | 571 SkMatrix lattice; |
572 lattice.setScale(SK_Scalar1*6, SK_Scalar1*6, 0, 0); | 572 lattice.setScale(SK_Scalar1*6, SK_Scalar1*6, 0, 0); |
573 lattice.postSkew(SK_Scalar1/3, 0, 0, 0); | 573 lattice.postSkew(SK_Scalar1/3, 0, 0, 0); |
574 p.setPathEffect(MakeDotEffect(SK_Scalar1*2, lattice)); | 574 p.setPathEffect(MakeDotEffect(SK_Scalar1*2, lattice)); |
575 p.setXfermodeMode(SkXfermode::kClear_Mode); | 575 p.setBlendMode(SkBlendMode::kClear); |
576 rastBuilder->addLayer(p); | 576 rastBuilder->addLayer(p); |
577 | 577 |
578 p.setPathEffect(nullptr); | 578 p.setPathEffect(nullptr); |
579 p.setXfermode(nullptr); | 579 p.setBlendMode(SkBlendMode::kSrcOver); |
580 p.setStyle(SkPaint::kStroke_Style); | 580 p.setStyle(SkPaint::kStroke_Style); |
581 p.setStrokeWidth(SK_Scalar1); | 581 p.setStrokeWidth(SK_Scalar1); |
582 rastBuilder->addLayer(p); | 582 rastBuilder->addLayer(p); |
583 } | 583 } |
584 | 584 |
585 static void r9(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) | 585 static void r9(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) |
586 { | 586 { |
587 rastBuilder->addLayer(p); | 587 rastBuilder->addLayer(p); |
588 | 588 |
589 SkMatrix lattice; | 589 SkMatrix lattice; |
590 lattice.setScale(SK_Scalar1, SK_Scalar1*6, 0, 0); | 590 lattice.setScale(SK_Scalar1, SK_Scalar1*6, 0, 0); |
591 lattice.postRotate(SkIntToScalar(30), 0, 0); | 591 lattice.postRotate(SkIntToScalar(30), 0, 0); |
592 p.setPathEffect(SkLine2DPathEffect::Make(SK_Scalar1*2, lattice)); | 592 p.setPathEffect(SkLine2DPathEffect::Make(SK_Scalar1*2, lattice)); |
593 p.setXfermodeMode(SkXfermode::kClear_Mode); | 593 p.setBlendMode(SkBlendMode::kClear); |
594 rastBuilder->addLayer(p); | 594 rastBuilder->addLayer(p); |
595 | 595 |
596 p.setPathEffect(nullptr); | 596 p.setPathEffect(nullptr); |
597 p.setXfermode(nullptr); | 597 p.setBlendMode(SkBlendMode::kSrcOver); |
598 p.setStyle(SkPaint::kStroke_Style); | 598 p.setStyle(SkPaint::kStroke_Style); |
599 p.setStrokeWidth(SK_Scalar1); | 599 p.setStrokeWidth(SK_Scalar1); |
600 rastBuilder->addLayer(p); | 600 rastBuilder->addLayer(p); |
601 } | 601 } |
602 | 602 |
603 typedef void (*raster_proc)(SkLayerRasterizer::Builder*, SkPaint&); | 603 typedef void (*raster_proc)(SkLayerRasterizer::Builder*, SkPaint&); |
604 | 604 |
605 static const raster_proc gRastProcs[] = { | 605 static const raster_proc gRastProcs[] = { |
606 r0, r1, r2, r3, r4, r5, r6, r7, r8, r9 | 606 r0, r1, r2, r3, r4, r5, r6, r7, r8, r9 |
607 }; | 607 }; |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
709 } | 709 } |
710 | 710 |
711 private: | 711 private: |
712 typedef SampleView INHERITED; | 712 typedef SampleView INHERITED; |
713 }; | 713 }; |
714 | 714 |
715 ////////////////////////////////////////////////////////////////////////////// | 715 ////////////////////////////////////////////////////////////////////////////// |
716 | 716 |
717 static SkView* MyFactory() { return new SlideView; } | 717 static SkView* MyFactory() { return new SlideView; } |
718 static SkViewRegister reg(MyFactory); | 718 static SkViewRegister reg(MyFactory); |
OLD | NEW |