| 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 "SampleCode.h" | 8 #include "SampleCode.h" |
| 9 #include "SkBlurMask.h" | 9 #include "SkBlurMask.h" |
| 10 #include "SkBlurMaskFilter.h" | 10 #include "SkBlurMaskFilter.h" |
| (...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 469 fRecs[i].fVerts, fRecs[i].fTexs, | 469 fRecs[i].fVerts, fRecs[i].fTexs, |
| 470 NULL, NULL, NULL, 0, paint); | 470 NULL, NULL, NULL, 0, paint); |
| 471 canvas->restore(); | 471 canvas->restore(); |
| 472 | 472 |
| 473 canvas->translate(0, SkIntToScalar(250)); | 473 canvas->translate(0, SkIntToScalar(250)); |
| 474 } | 474 } |
| 475 } | 475 } |
| 476 | 476 |
| 477 /////////////////////////////////////////////////////////////////////////////// | 477 /////////////////////////////////////////////////////////////////////////////// |
| 478 | 478 |
| 479 static void r0(SkLayerRasterizer* rast, SkPaint& p) | 479 static void r0(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) |
| 480 { | 480 { |
| 481 p.setMaskFilter(SkBlurMaskFilter::Create(SkBlurMaskFilter::kNormal_BlurStyle
, | 481 p.setMaskFilter(SkBlurMaskFilter::Create(SkBlurMaskFilter::kNormal_BlurStyle
, |
| 482 SkBlurMask::ConvertRadiusToSigma(Sk
IntToScalar(3))))->unref(); | 482 SkBlurMask::ConvertRadiusToSigma(Sk
IntToScalar(3))))->unref(); |
| 483 rast->addLayer(p, SkIntToScalar(3), SkIntToScalar(3)); | 483 rastBuilder->addLayer(p, SkIntToScalar(3), SkIntToScalar(3)); |
| 484 | 484 |
| 485 p.setMaskFilter(NULL); | 485 p.setMaskFilter(NULL); |
| 486 p.setStyle(SkPaint::kStroke_Style); | 486 p.setStyle(SkPaint::kStroke_Style); |
| 487 p.setStrokeWidth(SK_Scalar1); | 487 p.setStrokeWidth(SK_Scalar1); |
| 488 rast->addLayer(p); | 488 rastBuilder->addLayer(p); |
| 489 | 489 |
| 490 p.setAlpha(0x11); | 490 p.setAlpha(0x11); |
| 491 p.setStyle(SkPaint::kFill_Style); | 491 p.setStyle(SkPaint::kFill_Style); |
| 492 p.setXfermodeMode(SkXfermode::kSrc_Mode); | 492 p.setXfermodeMode(SkXfermode::kSrc_Mode); |
| 493 rast->addLayer(p); | 493 rastBuilder->addLayer(p); |
| 494 } | 494 } |
| 495 | 495 |
| 496 static void r1(SkLayerRasterizer* rast, SkPaint& p) | 496 static void r1(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) |
| 497 { | 497 { |
| 498 rast->addLayer(p); | 498 rastBuilder->addLayer(p); |
| 499 | 499 |
| 500 p.setAlpha(0x40); | 500 p.setAlpha(0x40); |
| 501 p.setXfermodeMode(SkXfermode::kSrc_Mode); | 501 p.setXfermodeMode(SkXfermode::kSrc_Mode); |
| 502 p.setStyle(SkPaint::kStroke_Style); | 502 p.setStyle(SkPaint::kStroke_Style); |
| 503 p.setStrokeWidth(SK_Scalar1*2); | 503 p.setStrokeWidth(SK_Scalar1*2); |
| 504 rast->addLayer(p); | 504 rastBuilder->addLayer(p); |
| 505 } | 505 } |
| 506 | 506 |
| 507 static void r2(SkLayerRasterizer* rast, SkPaint& p) | 507 static void r2(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) |
| 508 { | 508 { |
| 509 p.setStyle(SkPaint::kStrokeAndFill_Style); | 509 p.setStyle(SkPaint::kStrokeAndFill_Style); |
| 510 p.setStrokeWidth(SK_Scalar1*4); | 510 p.setStrokeWidth(SK_Scalar1*4); |
| 511 rast->addLayer(p); | 511 rastBuilder->addLayer(p); |
| 512 | 512 |
| 513 p.setStyle(SkPaint::kStroke_Style); | 513 p.setStyle(SkPaint::kStroke_Style); |
| 514 p.setStrokeWidth(SK_Scalar1*3/2); | 514 p.setStrokeWidth(SK_Scalar1*3/2); |
| 515 p.setXfermodeMode(SkXfermode::kClear_Mode); | 515 p.setXfermodeMode(SkXfermode::kClear_Mode); |
| 516 rast->addLayer(p); | 516 rastBuilder->addLayer(p); |
| 517 } | 517 } |
| 518 | 518 |
| 519 static void r3(SkLayerRasterizer* rast, SkPaint& p) | 519 static void r3(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) |
| 520 { | 520 { |
| 521 p.setStyle(SkPaint::kStroke_Style); | 521 p.setStyle(SkPaint::kStroke_Style); |
| 522 p.setStrokeWidth(SK_Scalar1*3); | 522 p.setStrokeWidth(SK_Scalar1*3); |
| 523 rast->addLayer(p); | 523 rastBuilder->addLayer(p); |
| 524 | 524 |
| 525 p.setAlpha(0x20); | 525 p.setAlpha(0x20); |
| 526 p.setStyle(SkPaint::kFill_Style); | 526 p.setStyle(SkPaint::kFill_Style); |
| 527 p.setXfermodeMode(SkXfermode::kSrc_Mode); | 527 p.setXfermodeMode(SkXfermode::kSrc_Mode); |
| 528 rast->addLayer(p); | 528 rastBuilder->addLayer(p); |
| 529 } | 529 } |
| 530 | 530 |
| 531 static void r4(SkLayerRasterizer* rast, SkPaint& p) | 531 static void r4(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) |
| 532 { | 532 { |
| 533 p.setAlpha(0x60); | 533 p.setAlpha(0x60); |
| 534 rast->addLayer(p, SkIntToScalar(3), SkIntToScalar(3)); | 534 rastBuilder->addLayer(p, SkIntToScalar(3), SkIntToScalar(3)); |
| 535 | 535 |
| 536 p.setAlpha(0xFF); | 536 p.setAlpha(0xFF); |
| 537 p.setXfermodeMode(SkXfermode::kClear_Mode); | 537 p.setXfermodeMode(SkXfermode::kClear_Mode); |
| 538 rast->addLayer(p, SK_Scalar1*3/2, SK_Scalar1*3/2); | 538 rastBuilder->addLayer(p, SK_Scalar1*3/2, SK_Scalar1*3/2); |
| 539 | 539 |
| 540 p.setXfermode(NULL); | 540 p.setXfermode(NULL); |
| 541 rast->addLayer(p); | 541 rastBuilder->addLayer(p); |
| 542 } | 542 } |
| 543 | 543 |
| 544 #include "SkDiscretePathEffect.h" | 544 #include "SkDiscretePathEffect.h" |
| 545 | 545 |
| 546 static void r5(SkLayerRasterizer* rast, SkPaint& p) | 546 static void r5(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) |
| 547 { | 547 { |
| 548 rast->addLayer(p); | 548 rastBuilder->addLayer(p); |
| 549 | 549 |
| 550 p.setPathEffect(SkDiscretePathEffect::Create(SK_Scalar1*4, SK_Scalar1*3))->u
nref(); | 550 p.setPathEffect(SkDiscretePathEffect::Create(SK_Scalar1*4, SK_Scalar1*3))->u
nref(); |
| 551 p.setXfermodeMode(SkXfermode::kSrcOut_Mode); | 551 p.setXfermodeMode(SkXfermode::kSrcOut_Mode); |
| 552 rast->addLayer(p); | 552 rastBuilder->addLayer(p); |
| 553 } | 553 } |
| 554 | 554 |
| 555 static void r6(SkLayerRasterizer* rast, SkPaint& p) | 555 static void r6(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) |
| 556 { | 556 { |
| 557 rast->addLayer(p); | 557 rastBuilder->addLayer(p); |
| 558 | 558 |
| 559 p.setAntiAlias(false); | 559 p.setAntiAlias(false); |
| 560 SkLayerRasterizer* rast2 = new SkLayerRasterizer; | 560 SkLayerRasterizer::Builder rastBuilder2; |
| 561 r5(rast2, p); | 561 r5(&rastBuilder2, p); |
| 562 p.setRasterizer(rast2)->unref(); | 562 p.setRasterizer(rastBuilder2.detachRasterizer())->unref(); |
| 563 p.setXfermodeMode(SkXfermode::kClear_Mode); | 563 p.setXfermodeMode(SkXfermode::kClear_Mode); |
| 564 rast->addLayer(p); | 564 rastBuilder->addLayer(p); |
| 565 } | 565 } |
| 566 | 566 |
| 567 #include "Sk2DPathEffect.h" | 567 #include "Sk2DPathEffect.h" |
| 568 | 568 |
| 569 static SkPathEffect* MakeDotEffect(SkScalar radius, const SkMatrix& matrix) { | 569 static SkPathEffect* MakeDotEffect(SkScalar radius, const SkMatrix& matrix) { |
| 570 SkPath path; | 570 SkPath path; |
| 571 path.addCircle(0, 0, radius); | 571 path.addCircle(0, 0, radius); |
| 572 return SkPath2DPathEffect::Create(matrix, path); | 572 return SkPath2DPathEffect::Create(matrix, path); |
| 573 } | 573 } |
| 574 | 574 |
| 575 static void r7(SkLayerRasterizer* rast, SkPaint& p) | 575 static void r7(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) |
| 576 { | 576 { |
| 577 SkMatrix lattice; | 577 SkMatrix lattice; |
| 578 lattice.setScale(SK_Scalar1*6, SK_Scalar1*6, 0, 0); | 578 lattice.setScale(SK_Scalar1*6, SK_Scalar1*6, 0, 0); |
| 579 lattice.postSkew(SK_Scalar1/3, 0, 0, 0); | 579 lattice.postSkew(SK_Scalar1/3, 0, 0, 0); |
| 580 p.setPathEffect(MakeDotEffect(SK_Scalar1*4, lattice))->unref(); | 580 p.setPathEffect(MakeDotEffect(SK_Scalar1*4, lattice))->unref(); |
| 581 rast->addLayer(p); | 581 rastBuilder->addLayer(p); |
| 582 } | 582 } |
| 583 | 583 |
| 584 static void r8(SkLayerRasterizer* rast, SkPaint& p) | 584 static void r8(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) |
| 585 { | 585 { |
| 586 rast->addLayer(p); | 586 rastBuilder->addLayer(p); |
| 587 | 587 |
| 588 SkMatrix lattice; | 588 SkMatrix lattice; |
| 589 lattice.setScale(SK_Scalar1*6, SK_Scalar1*6, 0, 0); | 589 lattice.setScale(SK_Scalar1*6, SK_Scalar1*6, 0, 0); |
| 590 lattice.postSkew(SK_Scalar1/3, 0, 0, 0); | 590 lattice.postSkew(SK_Scalar1/3, 0, 0, 0); |
| 591 p.setPathEffect(MakeDotEffect(SK_Scalar1*2, lattice))->unref(); | 591 p.setPathEffect(MakeDotEffect(SK_Scalar1*2, lattice))->unref(); |
| 592 p.setXfermodeMode(SkXfermode::kClear_Mode); | 592 p.setXfermodeMode(SkXfermode::kClear_Mode); |
| 593 rast->addLayer(p); | 593 rastBuilder->addLayer(p); |
| 594 | 594 |
| 595 p.setPathEffect(NULL); | 595 p.setPathEffect(NULL); |
| 596 p.setXfermode(NULL); | 596 p.setXfermode(NULL); |
| 597 p.setStyle(SkPaint::kStroke_Style); | 597 p.setStyle(SkPaint::kStroke_Style); |
| 598 p.setStrokeWidth(SK_Scalar1); | 598 p.setStrokeWidth(SK_Scalar1); |
| 599 rast->addLayer(p); | 599 rastBuilder->addLayer(p); |
| 600 } | 600 } |
| 601 | 601 |
| 602 static void r9(SkLayerRasterizer* rast, SkPaint& p) | 602 static void r9(SkLayerRasterizer::Builder* rastBuilder, SkPaint& p) |
| 603 { | 603 { |
| 604 rast->addLayer(p); | 604 rastBuilder->addLayer(p); |
| 605 | 605 |
| 606 SkMatrix lattice; | 606 SkMatrix lattice; |
| 607 lattice.setScale(SK_Scalar1, SK_Scalar1*6, 0, 0); | 607 lattice.setScale(SK_Scalar1, SK_Scalar1*6, 0, 0); |
| 608 lattice.postRotate(SkIntToScalar(30), 0, 0); | 608 lattice.postRotate(SkIntToScalar(30), 0, 0); |
| 609 p.setPathEffect(SkLine2DPathEffect::Create(SK_Scalar1*2, lattice))->unref(); | 609 p.setPathEffect(SkLine2DPathEffect::Create(SK_Scalar1*2, lattice))->unref(); |
| 610 p.setXfermodeMode(SkXfermode::kClear_Mode); | 610 p.setXfermodeMode(SkXfermode::kClear_Mode); |
| 611 rast->addLayer(p); | 611 rastBuilder->addLayer(p); |
| 612 | 612 |
| 613 p.setPathEffect(NULL); | 613 p.setPathEffect(NULL); |
| 614 p.setXfermode(NULL); | 614 p.setXfermode(NULL); |
| 615 p.setStyle(SkPaint::kStroke_Style); | 615 p.setStyle(SkPaint::kStroke_Style); |
| 616 p.setStrokeWidth(SK_Scalar1); | 616 p.setStrokeWidth(SK_Scalar1); |
| 617 rast->addLayer(p); | 617 rastBuilder->addLayer(p); |
| 618 } | 618 } |
| 619 | 619 |
| 620 typedef void (*raster_proc)(SkLayerRasterizer*, SkPaint&); | 620 typedef void (*raster_proc)(SkLayerRasterizer::Builder*, SkPaint&); |
| 621 | 621 |
| 622 static const raster_proc gRastProcs[] = { | 622 static const raster_proc gRastProcs[] = { |
| 623 r0, r1, r2, r3, r4, r5, r6, r7, r8, r9 | 623 r0, r1, r2, r3, r4, r5, r6, r7, r8, r9 |
| 624 }; | 624 }; |
| 625 | 625 |
| 626 static void apply_shader(SkPaint* paint, int index) { | 626 static void apply_shader(SkPaint* paint, int index) { |
| 627 raster_proc proc = gRastProcs[index]; | 627 raster_proc proc = gRastProcs[index]; |
| 628 SkPaint p; | 628 SkPaint p; |
| 629 SkLayerRasterizer* rast = new SkLayerRasterizer; | 629 SkLayerRasterizer::Builder rastBuilder; |
| 630 | 630 |
| 631 p.setAntiAlias(true); | 631 p.setAntiAlias(true); |
| 632 proc(rast, p); | 632 proc(&rastBuilder, p); |
| 633 paint->setRasterizer(rast)->unref(); | 633 paint->setRasterizer(rastBuilder.detachRasterizer())->unref(); |
| 634 paint->setColor(SK_ColorBLUE); | 634 paint->setColor(SK_ColorBLUE); |
| 635 } | 635 } |
| 636 | 636 |
| 637 #include "SkTypeface.h" | 637 #include "SkTypeface.h" |
| 638 | 638 |
| 639 static void texteffect_slide(SkCanvas* canvas) { | 639 static void texteffect_slide(SkCanvas* canvas) { |
| 640 const char* str = "Google"; | 640 const char* str = "Google"; |
| 641 size_t len = strlen(str); | 641 size_t len = strlen(str); |
| 642 SkScalar x = 20; | 642 SkScalar x = 20; |
| 643 SkScalar y = 80; | 643 SkScalar y = 80; |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 725 } | 725 } |
| 726 | 726 |
| 727 private: | 727 private: |
| 728 typedef SampleView INHERITED; | 728 typedef SampleView INHERITED; |
| 729 }; | 729 }; |
| 730 | 730 |
| 731 ////////////////////////////////////////////////////////////////////////////// | 731 ////////////////////////////////////////////////////////////////////////////// |
| 732 | 732 |
| 733 static SkView* MyFactory() { return new SlideView; } | 733 static SkView* MyFactory() { return new SlideView; } |
| 734 static SkViewRegister reg(MyFactory); | 734 static SkViewRegister reg(MyFactory); |
| OLD | NEW |