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

Side by Side Diff: skia/ext/benchmarking_canvas.cc

Issue 1001833005: Update from https://crrev.com/320343 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Supress Created 5 years, 9 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 | « skia/ext/benchmarking_canvas.h ('k') | skia/skia_gn_files.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/logging.h" 5 #include "base/logging.h"
6 #include "base/strings/stringprintf.h" 6 #include "base/strings/stringprintf.h"
7 #include "base/time/time.h" 7 #include "base/time/time.h"
8 #include "skia/ext/benchmarking_canvas.h" 8 #include "skia/ext/benchmarking_canvas.h"
9 #include "third_party/skia/include/core/SkColorFilter.h" 9 #include "third_party/skia/include/core/SkColorFilter.h"
10 #include "third_party/skia/include/core/SkImageFilter.h" 10 #include "third_party/skia/include/core/SkImageFilter.h"
11 #include "third_party/skia/include/core/SkTLazy.h"
11 #include "third_party/skia/include/core/SkPicture.h" 12 #include "third_party/skia/include/core/SkPicture.h"
12 #include "third_party/skia/include/core/SkRegion.h" 13 #include "third_party/skia/include/core/SkRegion.h"
14 #include "third_party/skia/include/core/SkString.h"
13 #include "third_party/skia/include/core/SkTextBlob.h" 15 #include "third_party/skia/include/core/SkTextBlob.h"
14 #include "third_party/skia/include/core/SkXfermode.h" 16 #include "third_party/skia/include/core/SkXfermode.h"
15 17
16 namespace { 18 namespace {
17 19
18 class FlagsBuilder { 20 class FlagsBuilder {
19 public: 21 public:
20 FlagsBuilder(char separator) 22 FlagsBuilder(char separator)
21 : separator_(separator) {} 23 : separator_(separator) {}
22 24
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 WARN_UNUSED_RESULT 401 WARN_UNUSED_RESULT
400 scoped_ptr<base::Value> AsListValue(const T array[], size_t count) { 402 scoped_ptr<base::Value> AsListValue(const T array[], size_t count) {
401 scoped_ptr<base::ListValue> val(new base::ListValue()); 403 scoped_ptr<base::ListValue> val(new base::ListValue());
402 404
403 for (size_t i = 0; i < count; ++i) 405 for (size_t i = 0; i < count; ++i)
404 val->Append(AsValue(array[i]).release()); 406 val->Append(AsValue(array[i]).release());
405 407
406 return val.Pass(); 408 return val.Pass();
407 } 409 }
408 410
411 class OverdrawXfermode : public SkXfermode {
412 public:
413 SkPMColor xferColor(SkPMColor src, SkPMColor dst) const override {
414 // This table encodes the color progression of the overdraw visualization
415 static const SkPMColor gTable[] = {
416 SkPackARGB32(0x00, 0x00, 0x00, 0x00),
417 SkPackARGB32(0xFF, 128, 158, 255),
418 SkPackARGB32(0xFF, 170, 185, 212),
419 SkPackARGB32(0xFF, 213, 195, 170),
420 SkPackARGB32(0xFF, 255, 192, 127),
421 SkPackARGB32(0xFF, 255, 185, 85),
422 SkPackARGB32(0xFF, 255, 165, 42),
423 SkPackARGB32(0xFF, 255, 135, 0),
424 SkPackARGB32(0xFF, 255, 95, 0),
425 SkPackARGB32(0xFF, 255, 50, 0),
426 SkPackARGB32(0xFF, 255, 0, 0)
427 };
428
429 size_t idx;
430 if (SkColorGetR(dst) < 64) { // 0
431 idx = 0;
432 } else if (SkColorGetG(dst) < 25) { // 10
433 idx = 9; // cap at 9 for upcoming increment
434 } else if ((SkColorGetB(dst) + 21) / 42 > 0) { // 1-6
435 idx = 7 - (SkColorGetB(dst) + 21) / 42;
436 } else { // 7-9
437 idx = 10 - (SkColorGetG(dst) + 22) / 45;
438 }
439
440 ++idx;
441 SkASSERT(idx < SK_ARRAY_COUNT(gTable));
442
443 return gTable[idx];
444 }
445
446 Factory getFactory() const override { return NULL; }
447 #ifndef SK_IGNORE_TO_STRING
448 void toString(SkString* str) const override { str->set("OverdrawXfermode"); }
449 #endif
450 };
451
409 } // namespace 452 } // namespace
410 453
411 namespace skia { 454 namespace skia {
412 455
413 class BenchmarkingCanvas::AutoOp { 456 class BenchmarkingCanvas::AutoOp {
414 public: 457 public:
415 AutoOp(BenchmarkingCanvas* canvas, const char op_name[], 458 AutoOp(BenchmarkingCanvas* canvas, const char op_name[],
416 const SkPaint* paint = nullptr) 459 const SkPaint* paint = nullptr)
417 : canvas_(canvas) 460 : canvas_(canvas)
418 , op_record_(new base::DictionaryValue()) 461 , op_record_(new base::DictionaryValue())
419 , op_params_(new base::ListValue()) { 462 , op_params_(new base::ListValue())
463 // AutoOp objects are always scoped within draw call frames,
464 // so the paint is guaranteed to be valid for their lifetime.
465 , paint_(paint) {
420 466
421 DCHECK(canvas); 467 DCHECK(canvas);
422 DCHECK(op_name); 468 DCHECK(op_name);
423 469
424 op_record_->SetString("cmd_string", op_name); 470 op_record_->SetString("cmd_string", op_name);
425 op_record_->Set("info", op_params_); 471 op_record_->Set("info", op_params_);
426 472
427 if (paint) 473 if (paint)
428 this->addParam("paint", AsValue(*paint)); 474 this->addParam("paint", AsValue(*paint));
429 475
476 if (canvas->flags_ & kOverdrawVisualization_Flag) {
477 DCHECK(canvas->overdraw_xfermode_);
478
479 paint_ = paint ? filtered_paint_.set(*paint) : filtered_paint_.init();
480 filtered_paint_.get()->setXfermode(canvas->overdraw_xfermode_.get());
481 filtered_paint_.get()->setAntiAlias(false);
482 }
483
430 start_ticks_ = base::TimeTicks::Now(); 484 start_ticks_ = base::TimeTicks::Now();
431 } 485 }
432 486
433 ~AutoOp() { 487 ~AutoOp() {
434 base::TimeDelta ticks = base::TimeTicks::Now() - start_ticks_; 488 base::TimeDelta ticks = base::TimeTicks::Now() - start_ticks_;
435 op_record_->SetDouble("cmd_time", ticks.InMillisecondsF()); 489 op_record_->SetDouble("cmd_time", ticks.InMillisecondsF());
436 490
437 canvas_->op_records_.Append(op_record_); 491 canvas_->op_records_.Append(op_record_);
438 } 492 }
439 493
440 void addParam(const char name[], scoped_ptr<base::Value> value) { 494 void addParam(const char name[], scoped_ptr<base::Value> value) {
441 scoped_ptr<base::DictionaryValue> param(new base::DictionaryValue()); 495 scoped_ptr<base::DictionaryValue> param(new base::DictionaryValue());
442 param->Set(name, value.Pass()); 496 param->Set(name, value.Pass());
443 497
444 op_params_->Append(param.release()); 498 op_params_->Append(param.release());
445 } 499 }
446 500
501 const SkPaint* paint() const { return paint_; }
502
447 private: 503 private:
448 BenchmarkingCanvas* canvas_; 504 BenchmarkingCanvas* canvas_;
449 base::DictionaryValue* op_record_; 505 base::DictionaryValue* op_record_;
450 base::ListValue* op_params_; 506 base::ListValue* op_params_;
451 base::TimeTicks start_ticks_; 507 base::TimeTicks start_ticks_;
508
509 const SkPaint* paint_;
510 SkTLazy<SkPaint> filtered_paint_;
452 }; 511 };
453 512
454 BenchmarkingCanvas::BenchmarkingCanvas(SkCanvas* canvas, unsigned flags) 513 BenchmarkingCanvas::BenchmarkingCanvas(SkCanvas* canvas, unsigned flags)
455 : INHERITED(canvas->imageInfo().width(), 514 : INHERITED(canvas->imageInfo().width(),
456 canvas->imageInfo().height()) 515 canvas->imageInfo().height())
457 , flags_(flags) { 516 , flags_(flags) {
458 addCanvas(canvas); 517 addCanvas(canvas);
518
519 if (flags & kOverdrawVisualization_Flag)
520 overdraw_xfermode_ = AdoptRef(new OverdrawXfermode);
459 } 521 }
460 522
461 BenchmarkingCanvas::~BenchmarkingCanvas() { 523 BenchmarkingCanvas::~BenchmarkingCanvas() {
462 } 524 }
463 525
464 size_t BenchmarkingCanvas::CommandCount() const { 526 size_t BenchmarkingCanvas::CommandCount() const {
465 return op_records_.GetSize(); 527 return op_records_.GetSize();
466 } 528 }
467 529
468 const base::ListValue& BenchmarkingCanvas::Commands() const { 530 const base::ListValue& BenchmarkingCanvas::Commands() const {
(...skipping 17 matching lines...) Expand all
486 548
487 INHERITED::willSave(); 549 INHERITED::willSave();
488 } 550 }
489 551
490 SkCanvas::SaveLayerStrategy BenchmarkingCanvas::willSaveLayer(const SkRect* rect , 552 SkCanvas::SaveLayerStrategy BenchmarkingCanvas::willSaveLayer(const SkRect* rect ,
491 const SkPaint* pai nt, 553 const SkPaint* pai nt,
492 SaveFlags flags) { 554 SaveFlags flags) {
493 AutoOp op(this, "SaveLayer", paint); 555 AutoOp op(this, "SaveLayer", paint);
494 if (rect) 556 if (rect)
495 op.addParam("bounds", AsValue(*rect)); 557 op.addParam("bounds", AsValue(*rect));
496 if (paint)
497 op.addParam("paint", AsValue(*paint));
498 if (flags) 558 if (flags)
499 op.addParam("flags", AsValue(flags)); 559 op.addParam("flags", AsValue(flags));
500 560
501 return INHERITED::willSaveLayer(rect, paint, flags); 561 return INHERITED::willSaveLayer(rect, op.paint(), flags);
502 } 562 }
503 563
504 void BenchmarkingCanvas::willRestore() { 564 void BenchmarkingCanvas::willRestore() {
505 AutoOp op(this, "Restore"); 565 AutoOp op(this, "Restore");
506 566
507 INHERITED::willRestore(); 567 INHERITED::willRestore();
508 } 568 }
509 569
510 void BenchmarkingCanvas::didConcat(const SkMatrix& m) { 570 void BenchmarkingCanvas::didConcat(const SkMatrix& m) {
511 AutoOp op(this, "Concat"); 571 AutoOp op(this, "Concat");
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
559 AutoOp op(this, "ClipRegion"); 619 AutoOp op(this, "ClipRegion");
560 op.addParam("region", AsValue(region)); 620 op.addParam("region", AsValue(region));
561 op.addParam("op", AsValue(region_op)); 621 op.addParam("op", AsValue(region_op));
562 622
563 INHERITED::onClipRegion(region, region_op); 623 INHERITED::onClipRegion(region, region_op);
564 } 624 }
565 625
566 void BenchmarkingCanvas::onDrawPaint(const SkPaint& paint) { 626 void BenchmarkingCanvas::onDrawPaint(const SkPaint& paint) {
567 AutoOp op(this, "DrawPaint", &paint); 627 AutoOp op(this, "DrawPaint", &paint);
568 628
569 INHERITED::onDrawPaint(paint); 629 INHERITED::onDrawPaint(*op.paint());
570 } 630 }
571 631
572 void BenchmarkingCanvas::onDrawPoints(PointMode mode, size_t count, 632 void BenchmarkingCanvas::onDrawPoints(PointMode mode, size_t count,
573 const SkPoint pts[], const SkPaint& paint) { 633 const SkPoint pts[], const SkPaint& paint) {
574 AutoOp op(this, "DrawPoints", &paint); 634 AutoOp op(this, "DrawPoints", &paint);
575 op.addParam("mode", AsValue(mode)); 635 op.addParam("mode", AsValue(mode));
576 op.addParam("points", AsListValue(pts, count)); 636 op.addParam("points", AsListValue(pts, count));
577 637
578 INHERITED::onDrawPoints(mode, count, pts, paint); 638 INHERITED::onDrawPoints(mode, count, pts, *op.paint());
579 } 639 }
580 640
581 void BenchmarkingCanvas::onDrawRect(const SkRect& rect, const SkPaint& paint) { 641 void BenchmarkingCanvas::onDrawRect(const SkRect& rect, const SkPaint& paint) {
582 AutoOp op(this, "DrawRect", &paint); 642 AutoOp op(this, "DrawRect", &paint);
583 op.addParam("rect", AsValue(rect)); 643 op.addParam("rect", AsValue(rect));
584 644
585 INHERITED::onDrawRect(rect, paint); 645 INHERITED::onDrawRect(rect, *op.paint());
586 } 646 }
587 647
588 void BenchmarkingCanvas::onDrawOval(const SkRect& rect, const SkPaint& paint) { 648 void BenchmarkingCanvas::onDrawOval(const SkRect& rect, const SkPaint& paint) {
589 AutoOp op(this, "DrawOval", &paint); 649 AutoOp op(this, "DrawOval", &paint);
590 op.addParam("rect", AsValue(rect)); 650 op.addParam("rect", AsValue(rect));
591 651
592 INHERITED::onDrawOval(rect, paint); 652 INHERITED::onDrawOval(rect, *op.paint());
593 } 653 }
594 654
595 void BenchmarkingCanvas::onDrawRRect(const SkRRect& rrect, const SkPaint& paint) { 655 void BenchmarkingCanvas::onDrawRRect(const SkRRect& rrect, const SkPaint& paint) {
596 AutoOp op(this, "DrawRRect", &paint); 656 AutoOp op(this, "DrawRRect", &paint);
597 op.addParam("rrect", AsValue(rrect)); 657 op.addParam("rrect", AsValue(rrect));
598 658
599 INHERITED::onDrawRRect(rrect, paint); 659 INHERITED::onDrawRRect(rrect, *op.paint());
600 } 660 }
601 661
602 void BenchmarkingCanvas::onDrawDRRect(const SkRRect& outer, const SkRRect& inner , 662 void BenchmarkingCanvas::onDrawDRRect(const SkRRect& outer, const SkRRect& inner ,
603 const SkPaint& paint) { 663 const SkPaint& paint) {
604 AutoOp op(this, "DrawDRRect", &paint); 664 AutoOp op(this, "DrawDRRect", &paint);
605 op.addParam("outer", AsValue(outer)); 665 op.addParam("outer", AsValue(outer));
606 op.addParam("inner", AsValue(inner)); 666 op.addParam("inner", AsValue(inner));
607 667
608 INHERITED::onDrawDRRect(outer, inner, paint); 668 INHERITED::onDrawDRRect(outer, inner, *op.paint());
609 } 669 }
610 670
611 void BenchmarkingCanvas::onDrawPath(const SkPath& path, const SkPaint& paint) { 671 void BenchmarkingCanvas::onDrawPath(const SkPath& path, const SkPaint& paint) {
612 AutoOp op(this, "DrawPath", &paint); 672 AutoOp op(this, "DrawPath", &paint);
613 op.addParam("path", AsValue(path)); 673 op.addParam("path", AsValue(path));
614 674
615 INHERITED::onDrawPath(path, paint); 675 INHERITED::onDrawPath(path, *op.paint());
616 } 676 }
617 677
618 void BenchmarkingCanvas::onDrawPicture(const SkPicture* picture, 678 void BenchmarkingCanvas::onDrawPicture(const SkPicture* picture,
619 const SkMatrix* matrix, 679 const SkMatrix* matrix,
620 const SkPaint* paint) { 680 const SkPaint* paint) {
621 DCHECK(picture); 681 DCHECK(picture);
622 AutoOp op(this, "DrawPicture", paint); 682 AutoOp op(this, "DrawPicture", paint);
623 op.addParam("picture", AsValue(picture)); 683 op.addParam("picture", AsValue(picture));
624 if (matrix) 684 if (matrix)
625 op.addParam("matrix", AsValue(*matrix)); 685 op.addParam("matrix", AsValue(*matrix));
626 686
627 INHERITED::drawPicture(picture, matrix, paint); 687 INHERITED::onDrawPicture(picture, matrix, op.paint());
628 } 688 }
629 689
630 void BenchmarkingCanvas::onDrawBitmap(const SkBitmap& bitmap, 690 void BenchmarkingCanvas::onDrawBitmap(const SkBitmap& bitmap,
631 SkScalar left, 691 SkScalar left,
632 SkScalar top, 692 SkScalar top,
633 const SkPaint* paint) { 693 const SkPaint* paint) {
634 AutoOp op(this, "DrawBitmap", paint); 694 AutoOp op(this, "DrawBitmap", paint);
635 op.addParam("bitmap", AsValue(bitmap)); 695 op.addParam("bitmap", AsValue(bitmap));
636 op.addParam("left", AsValue(left)); 696 op.addParam("left", AsValue(left));
637 op.addParam("top", AsValue(top)); 697 op.addParam("top", AsValue(top));
638 698
639 INHERITED::onDrawBitmap(bitmap, left, top, paint); 699 INHERITED::onDrawBitmap(bitmap, left, top, op.paint());
640 } 700 }
641 701
642 void BenchmarkingCanvas::onDrawBitmapRect(const SkBitmap& bitmap, 702 void BenchmarkingCanvas::onDrawBitmapRect(const SkBitmap& bitmap,
643 const SkRect* src, 703 const SkRect* src,
644 const SkRect& dst, 704 const SkRect& dst,
645 const SkPaint* paint, 705 const SkPaint* paint,
646 DrawBitmapRectFlags flags) { 706 DrawBitmapRectFlags flags) {
647 AutoOp op(this, "DrawBitmapRect", paint); 707 AutoOp op(this, "DrawBitmapRect", paint);
648 op.addParam("bitmap", AsValue(bitmap)); 708 op.addParam("bitmap", AsValue(bitmap));
649 if (src) 709 if (src)
650 op.addParam("src", AsValue(*src)); 710 op.addParam("src", AsValue(*src));
651 op.addParam("dst", AsValue(dst)); 711 op.addParam("dst", AsValue(dst));
652 712
653 INHERITED::onDrawBitmapRect(bitmap, src, dst, paint, flags); 713 INHERITED::onDrawBitmapRect(bitmap, src, dst, op.paint(), flags);
654 } 714 }
655 715
656 void BenchmarkingCanvas::onDrawImage(const SkImage* image, 716 void BenchmarkingCanvas::onDrawImage(const SkImage* image,
657 SkScalar left, 717 SkScalar left,
658 SkScalar top, 718 SkScalar top,
659 const SkPaint* paint) { 719 const SkPaint* paint) {
660 DCHECK(image); 720 DCHECK(image);
661 AutoOp op(this, "DrawImage", paint); 721 AutoOp op(this, "DrawImage", paint);
662 op.addParam("image", AsValue(*image)); 722 op.addParam("image", AsValue(*image));
663 op.addParam("left", AsValue(left)); 723 op.addParam("left", AsValue(left));
664 op.addParam("top", AsValue(top)); 724 op.addParam("top", AsValue(top));
665 725
666 INHERITED::onDrawImage(image, left, top, paint); 726 INHERITED::onDrawImage(image, left, top, op.paint());
667 } 727 }
668 728
669 void BenchmarkingCanvas::onDrawImageRect(const SkImage* image, const SkRect* src , 729 void BenchmarkingCanvas::onDrawImageRect(const SkImage* image, const SkRect* src ,
670 const SkRect& dst, const SkPaint* paint ) { 730 const SkRect& dst, const SkPaint* paint ) {
671 DCHECK(image); 731 DCHECK(image);
672 AutoOp op(this, "DrawImageRect", paint); 732 AutoOp op(this, "DrawImageRect", paint);
673 op.addParam("image", AsValue(*image)); 733 op.addParam("image", AsValue(*image));
674 if (src) 734 if (src)
675 op.addParam("src", AsValue(*src)); 735 op.addParam("src", AsValue(*src));
676 op.addParam("dst", AsValue(dst)); 736 op.addParam("dst", AsValue(dst));
677 737
678 INHERITED::onDrawImageRect(image, src, dst, paint); 738 INHERITED::onDrawImageRect(image, src, dst, op.paint());
679 } 739 }
680 740
681 void BenchmarkingCanvas::onDrawBitmapNine(const SkBitmap& bitmap, 741 void BenchmarkingCanvas::onDrawBitmapNine(const SkBitmap& bitmap,
682 const SkIRect& center, 742 const SkIRect& center,
683 const SkRect& dst, 743 const SkRect& dst,
684 const SkPaint* paint) { 744 const SkPaint* paint) {
685 AutoOp op(this, "DrawBitmapNine", paint); 745 AutoOp op(this, "DrawBitmapNine", paint);
686 op.addParam("bitmap", AsValue(bitmap)); 746 op.addParam("bitmap", AsValue(bitmap));
687 op.addParam("center", AsValue(SkRect::Make(center))); 747 op.addParam("center", AsValue(SkRect::Make(center)));
688 op.addParam("dst", AsValue(dst)); 748 op.addParam("dst", AsValue(dst));
689 749
690 INHERITED::onDrawBitmapNine(bitmap, center, dst, paint); 750 INHERITED::onDrawBitmapNine(bitmap, center, dst, op.paint());
691 } 751 }
692 752
693 void BenchmarkingCanvas::onDrawSprite(const SkBitmap& bitmap, int left, int top, 753 void BenchmarkingCanvas::onDrawSprite(const SkBitmap& bitmap, int left, int top,
694 const SkPaint* paint) { 754 const SkPaint* paint) {
695 AutoOp op(this, "DrawSprite", paint); 755 AutoOp op(this, "DrawSprite", paint);
696 op.addParam("bitmap", AsValue(bitmap)); 756 op.addParam("bitmap", AsValue(bitmap));
697 op.addParam("left", AsValue(SkIntToScalar(left))); 757 op.addParam("left", AsValue(SkIntToScalar(left)));
698 op.addParam("top", AsValue(SkIntToScalar(top))); 758 op.addParam("top", AsValue(SkIntToScalar(top)));
699 759
700 INHERITED::onDrawSprite(bitmap, left, top, paint); 760 INHERITED::onDrawSprite(bitmap, left, top, op.paint());
701 } 761 }
702 762
703 void BenchmarkingCanvas::onDrawText(const void* text, size_t byteLength, 763 void BenchmarkingCanvas::onDrawText(const void* text, size_t byteLength,
704 SkScalar x, SkScalar y, 764 SkScalar x, SkScalar y,
705 const SkPaint& paint) { 765 const SkPaint& paint) {
706 AutoOp op(this, "DrawText", &paint); 766 AutoOp op(this, "DrawText", &paint);
707 op.addParam("count", AsValue(SkIntToScalar(paint.countText(text, byteLength))) ); 767 op.addParam("count", AsValue(SkIntToScalar(paint.countText(text, byteLength))) );
708 op.addParam("x", AsValue(x)); 768 op.addParam("x", AsValue(x));
709 op.addParam("y", AsValue(y)); 769 op.addParam("y", AsValue(y));
710 770
711 INHERITED::onDrawText(text, byteLength, x, y, paint); 771 INHERITED::onDrawText(text, byteLength, x, y, *op.paint());
712 } 772 }
713 773
714 void BenchmarkingCanvas::onDrawPosText(const void* text, size_t byteLength, 774 void BenchmarkingCanvas::onDrawPosText(const void* text, size_t byteLength,
715 const SkPoint pos[], const SkPaint& paint ) { 775 const SkPoint pos[], const SkPaint& paint ) {
716 AutoOp op(this, "DrawPosText", &paint); 776 AutoOp op(this, "DrawPosText", &paint);
717 777
718 int count = paint.countText(text, byteLength); 778 int count = paint.countText(text, byteLength);
719 op.addParam("count", AsValue(SkIntToScalar(count))); 779 op.addParam("count", AsValue(SkIntToScalar(count)));
720 op.addParam("pos", AsListValue(pos, count)); 780 op.addParam("pos", AsListValue(pos, count));
721 781
722 INHERITED::onDrawPosText(text, byteLength, pos, paint); 782 INHERITED::onDrawPosText(text, byteLength, pos, *op.paint());
723 } 783 }
724 784
725 void BenchmarkingCanvas::onDrawPosTextH(const void* text, size_t byteLength, 785 void BenchmarkingCanvas::onDrawPosTextH(const void* text, size_t byteLength,
726 const SkScalar xpos[], SkScalar constY, 786 const SkScalar xpos[], SkScalar constY,
727 const SkPaint& paint) { 787 const SkPaint& paint) {
728 AutoOp op(this, "DrawPosTextH", &paint); 788 AutoOp op(this, "DrawPosTextH", &paint);
729 op.addParam("constY", AsValue(constY)); 789 op.addParam("constY", AsValue(constY));
730 790
731 int count = paint.countText(text, byteLength); 791 int count = paint.countText(text, byteLength);
732 op.addParam("count", AsValue(SkIntToScalar(count))); 792 op.addParam("count", AsValue(SkIntToScalar(count)));
733 op.addParam("pos", AsListValue(xpos, count)); 793 op.addParam("pos", AsListValue(xpos, count));
734 794
735 INHERITED::onDrawPosTextH(text, byteLength, xpos, constY, paint); 795 INHERITED::onDrawPosTextH(text, byteLength, xpos, constY, *op.paint());
736 } 796 }
737 797
738 void BenchmarkingCanvas::onDrawTextOnPath(const void* text, size_t byteLength, 798 void BenchmarkingCanvas::onDrawTextOnPath(const void* text, size_t byteLength,
739 const SkPath& path, const SkMatrix* ma trix, 799 const SkPath& path, const SkMatrix* ma trix,
740 const SkPaint& paint) { 800 const SkPaint& paint) {
741 AutoOp op(this, "DrawTextOnPath", &paint); 801 AutoOp op(this, "DrawTextOnPath", &paint);
742 op.addParam("count", AsValue(SkIntToScalar(paint.countText(text, byteLength))) ); 802 op.addParam("count", AsValue(SkIntToScalar(paint.countText(text, byteLength))) );
743 op.addParam("path", AsValue(path)); 803 op.addParam("path", AsValue(path));
744 if (matrix) 804 if (matrix)
745 op.addParam("matrix", AsValue(*matrix)); 805 op.addParam("matrix", AsValue(*matrix));
746 806
747 INHERITED::onDrawTextOnPath(text, byteLength, path, matrix, paint); 807 INHERITED::onDrawTextOnPath(text, byteLength, path, matrix, *op.paint());
748 } 808 }
749 809
750 void BenchmarkingCanvas::onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkSc alar y, 810 void BenchmarkingCanvas::onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkSc alar y,
751 const SkPaint& paint) { 811 const SkPaint& paint) {
752 DCHECK(blob); 812 DCHECK(blob);
753 AutoOp op(this, "DrawTextBlob", &paint); 813 AutoOp op(this, "DrawTextBlob", &paint);
754 op.addParam("blob", AsValue(*blob)); 814 op.addParam("blob", AsValue(*blob));
755 op.addParam("x", AsValue(x)); 815 op.addParam("x", AsValue(x));
756 op.addParam("y", AsValue(y)); 816 op.addParam("y", AsValue(y));
757 817
758 INHERITED::onDrawTextBlob(blob, x, y, paint); 818 INHERITED::onDrawTextBlob(blob, x, y, *op.paint());
759 } 819 }
760 820
761 } // namespace skia 821 } // namespace skia
OLDNEW
« no previous file with comments | « skia/ext/benchmarking_canvas.h ('k') | skia/skia_gn_files.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698