OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/compiler_specific.h" | 5 #include "base/compiler_specific.h" |
6 #include "base/memory/scoped_ptr.h" | 6 #include "base/memory/scoped_ptr.h" |
7 #include "cc/test/geometry_test_utils.h" | 7 #include "cc/test/geometry_test_utils.h" |
8 #include "skia/ext/pixel_ref_utils.h" | 8 #include "skia/ext/pixel_ref_utils.h" |
9 #include "skia/ext/refptr.h" | 9 #include "skia/ext/refptr.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
11 #include "third_party/skia/include/core/SkBitmap.h" | 11 #include "third_party/skia/include/core/SkBitmap.h" |
12 #include "third_party/skia/include/core/SkCanvas.h" | 12 #include "third_party/skia/include/core/SkCanvas.h" |
| 13 #include "third_party/skia/include/core/SkImage.h" |
| 14 #include "third_party/skia/include/core/SkImageGenerator.h" |
13 #include "third_party/skia/include/core/SkPictureRecorder.h" | 15 #include "third_party/skia/include/core/SkPictureRecorder.h" |
14 #include "third_party/skia/include/core/SkPixelRef.h" | 16 #include "third_party/skia/include/core/SkPixelRef.h" |
15 #include "third_party/skia/include/core/SkPoint.h" | 17 #include "third_party/skia/include/core/SkPoint.h" |
16 #include "third_party/skia/include/core/SkShader.h" | 18 #include "third_party/skia/include/core/SkShader.h" |
17 #include "third_party/skia/src/core/SkOrderedReadBuffer.h" | 19 #include "third_party/skia/src/core/SkOrderedReadBuffer.h" |
18 #include "ui/gfx/geometry/rect.h" | 20 #include "ui/gfx/geometry/rect.h" |
19 #include "ui/gfx/skia_util.h" | 21 #include "ui/gfx/skia_util.h" |
20 | 22 |
21 namespace skia { | 23 namespace skia { |
22 | 24 |
23 namespace { | 25 namespace { |
24 | 26 |
25 void CreateBitmap(gfx::Size size, const char* uri, SkBitmap* bitmap); | 27 class TestImageGenerator : public SkImageGenerator { |
| 28 public: |
| 29 TestImageGenerator(const SkImageInfo& info) |
| 30 : SkImageGenerator(info) { } |
| 31 }; |
| 32 |
| 33 void CreateDiscardableBitmap(const gfx::Size& size, SkBitmap* bitmap) { |
| 34 const SkImageInfo info = |
| 35 SkImageInfo::MakeN32Premul(size.width(), size.height()); |
| 36 SkInstallDiscardablePixelRef(new TestImageGenerator(info), bitmap); |
| 37 } |
| 38 |
| 39 skia::RefPtr<SkImage> CreateDiscardableImage(const gfx::Size& size) { |
| 40 const SkImageInfo info = |
| 41 SkImageInfo::MakeN32Premul(size.width(), size.height()); |
| 42 return skia::AdoptRef( |
| 43 SkImage::NewFromGenerator(new TestImageGenerator(info))); |
| 44 } |
26 | 45 |
27 class TestDiscardableShader : public SkShader { | 46 class TestDiscardableShader : public SkShader { |
28 public: | 47 public: |
29 TestDiscardableShader() { | 48 TestDiscardableShader() { |
30 CreateBitmap(gfx::Size(50, 50), "discardable", &bitmap_); | 49 CreateDiscardableBitmap(gfx::Size(50, 50), &bitmap_); |
31 } | 50 } |
32 | 51 |
33 TestDiscardableShader(SkReadBuffer& buffer) { | 52 TestDiscardableShader(SkReadBuffer& buffer) { |
34 CreateBitmap(gfx::Size(50, 50), "discardable", &bitmap_); | 53 CreateDiscardableBitmap(gfx::Size(50, 50), &bitmap_); |
35 } | 54 } |
36 | 55 |
37 SkShader::BitmapType asABitmap(SkBitmap* bitmap, | 56 SkShader::BitmapType asABitmap(SkBitmap* bitmap, |
38 SkMatrix* matrix, | 57 SkMatrix* matrix, |
39 TileMode xy[2]) const override { | 58 TileMode xy[2]) const override { |
40 if (bitmap) | 59 if (bitmap) |
41 *bitmap = bitmap_; | 60 *bitmap = bitmap_; |
42 return SkShader::kDefault_BitmapType; | 61 return SkShader::kDefault_BitmapType; |
43 } | 62 } |
44 | 63 |
(...skipping 12 matching lines...) Expand all Loading... |
57 Factory getFactory() const override { return CreateProc; } | 76 Factory getFactory() const override { return CreateProc; } |
58 | 77 |
59 private: | 78 private: |
60 SkBitmap bitmap_; | 79 SkBitmap bitmap_; |
61 }; | 80 }; |
62 | 81 |
63 SkFlattenable* TestDiscardableShader::CreateProc(SkReadBuffer&) { | 82 SkFlattenable* TestDiscardableShader::CreateProc(SkReadBuffer&) { |
64 return new TestDiscardableShader; | 83 return new TestDiscardableShader; |
65 } | 84 } |
66 | 85 |
67 void CreateBitmap(gfx::Size size, const char* uri, SkBitmap* bitmap) { | |
68 bitmap->allocN32Pixels(size.width(), size.height()); | |
69 bitmap->pixelRef()->setImmutable(); | |
70 bitmap->pixelRef()->setURI(uri); | |
71 } | |
72 | |
73 SkCanvas* StartRecording(SkPictureRecorder* recorder, gfx::Rect layer_rect) { | 86 SkCanvas* StartRecording(SkPictureRecorder* recorder, gfx::Rect layer_rect) { |
74 SkCanvas* canvas = | 87 SkCanvas* canvas = |
75 recorder->beginRecording(layer_rect.width(), layer_rect.height()); | 88 recorder->beginRecording(layer_rect.width(), layer_rect.height()); |
76 | 89 |
77 canvas->save(); | 90 canvas->save(); |
78 canvas->translate(-layer_rect.x(), -layer_rect.y()); | 91 canvas->translate(-layer_rect.x(), -layer_rect.y()); |
79 canvas->clipRect(SkRect::MakeXYWH( | 92 canvas->clipRect(SkRect::MakeXYWH( |
80 layer_rect.x(), layer_rect.y(), layer_rect.width(), layer_rect.height())); | 93 layer_rect.x(), layer_rect.y(), layer_rect.width(), layer_rect.height())); |
81 | 94 |
82 return canvas; | 95 return canvas; |
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
437 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[1].filter_quality); | 450 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[1].filter_quality); |
438 } | 451 } |
439 | 452 |
440 TEST(PixelRefUtilsTest, DrawBitmap) { | 453 TEST(PixelRefUtilsTest, DrawBitmap) { |
441 gfx::Rect layer_rect(0, 0, 256, 256); | 454 gfx::Rect layer_rect(0, 0, 256, 256); |
442 | 455 |
443 SkPictureRecorder recorder; | 456 SkPictureRecorder recorder; |
444 SkCanvas* canvas = StartRecording(&recorder, layer_rect); | 457 SkCanvas* canvas = StartRecording(&recorder, layer_rect); |
445 | 458 |
446 SkBitmap first; | 459 SkBitmap first; |
447 CreateBitmap(gfx::Size(50, 50), "discardable", &first); | 460 CreateDiscardableBitmap(gfx::Size(50, 50), &first); |
448 SkBitmap second; | 461 SkBitmap second; |
449 CreateBitmap(gfx::Size(50, 50), "discardable", &second); | 462 CreateDiscardableBitmap(gfx::Size(50, 50), &second); |
450 SkBitmap third; | 463 SkBitmap third; |
451 CreateBitmap(gfx::Size(50, 50), "discardable", &third); | 464 CreateDiscardableBitmap(gfx::Size(50, 50), &third); |
452 SkBitmap fourth; | 465 SkBitmap fourth; |
453 CreateBitmap(gfx::Size(50, 1), "discardable", &fourth); | 466 CreateDiscardableBitmap(gfx::Size(50, 1), &fourth); |
454 SkBitmap fifth; | 467 SkBitmap fifth; |
455 CreateBitmap(gfx::Size(10, 10), "discardable", &fifth); | 468 CreateDiscardableBitmap(gfx::Size(10, 10), &fifth); |
456 SkBitmap sixth; | 469 SkBitmap sixth; |
457 CreateBitmap(gfx::Size(10, 10), "discardable", &sixth); | 470 CreateDiscardableBitmap(gfx::Size(10, 10), &sixth); |
458 | 471 |
459 canvas->save(); | 472 canvas->save(); |
460 | 473 |
461 // At (0, 0). | 474 // At (0, 0). |
462 canvas->drawBitmap(first, 0, 0); | 475 canvas->drawBitmap(first, 0, 0); |
463 canvas->translate(25, 0); | 476 canvas->translate(25, 0); |
464 // At (25, 0). | 477 // At (25, 0). |
465 canvas->drawBitmap(second, 0, 0); | 478 canvas->drawBitmap(second, 0, 0); |
466 canvas->translate(0, 50); | 479 canvas->translate(0, 50); |
467 // At (50, 50). | 480 // At (50, 50). |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
524 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[5].filter_quality); | 537 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[5].filter_quality); |
525 } | 538 } |
526 | 539 |
527 TEST(PixelRefUtilsTest, DrawBitmapRect) { | 540 TEST(PixelRefUtilsTest, DrawBitmapRect) { |
528 gfx::Rect layer_rect(0, 0, 256, 256); | 541 gfx::Rect layer_rect(0, 0, 256, 256); |
529 | 542 |
530 SkPictureRecorder recorder; | 543 SkPictureRecorder recorder; |
531 SkCanvas* canvas = StartRecording(&recorder, layer_rect); | 544 SkCanvas* canvas = StartRecording(&recorder, layer_rect); |
532 | 545 |
533 SkBitmap first; | 546 SkBitmap first; |
534 CreateBitmap(gfx::Size(50, 50), "discardable", &first); | 547 CreateDiscardableBitmap(gfx::Size(50, 50), &first); |
535 SkBitmap second; | 548 SkBitmap second; |
536 CreateBitmap(gfx::Size(50, 50), "discardable", &second); | 549 CreateDiscardableBitmap(gfx::Size(50, 50), &second); |
537 SkBitmap third; | 550 SkBitmap third; |
538 CreateBitmap(gfx::Size(50, 50), "discardable", &third); | 551 CreateDiscardableBitmap(gfx::Size(50, 50), &third); |
539 | 552 |
540 TestDiscardableShader first_shader; | 553 TestDiscardableShader first_shader; |
541 SkPaint first_paint; | 554 SkPaint first_paint; |
542 first_paint.setShader(&first_shader); | 555 first_paint.setShader(&first_shader); |
543 | 556 |
544 SkPaint non_discardable_paint; | 557 SkPaint non_discardable_paint; |
545 | 558 |
546 canvas->save(); | 559 canvas->save(); |
547 | 560 |
548 // (0, 0, 100, 100). | 561 // (0, 0, 100, 100). |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
584 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[3].filter_quality); | 597 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[3].filter_quality); |
585 } | 598 } |
586 | 599 |
587 TEST(PixelRefUtilsTest, DrawSprite) { | 600 TEST(PixelRefUtilsTest, DrawSprite) { |
588 gfx::Rect layer_rect(0, 0, 256, 256); | 601 gfx::Rect layer_rect(0, 0, 256, 256); |
589 | 602 |
590 SkPictureRecorder recorder; | 603 SkPictureRecorder recorder; |
591 SkCanvas* canvas = StartRecording(&recorder, layer_rect); | 604 SkCanvas* canvas = StartRecording(&recorder, layer_rect); |
592 | 605 |
593 SkBitmap first; | 606 SkBitmap first; |
594 CreateBitmap(gfx::Size(50, 50), "discardable", &first); | 607 CreateDiscardableBitmap(gfx::Size(50, 50), &first); |
595 SkBitmap second; | 608 SkBitmap second; |
596 CreateBitmap(gfx::Size(50, 50), "discardable", &second); | 609 CreateDiscardableBitmap(gfx::Size(50, 50), &second); |
597 SkBitmap third; | 610 SkBitmap third; |
598 CreateBitmap(gfx::Size(50, 50), "discardable", &third); | 611 CreateDiscardableBitmap(gfx::Size(50, 50), &third); |
599 SkBitmap fourth; | 612 SkBitmap fourth; |
600 CreateBitmap(gfx::Size(50, 50), "discardable", &fourth); | 613 CreateDiscardableBitmap(gfx::Size(50, 50), &fourth); |
601 SkBitmap fifth; | 614 SkBitmap fifth; |
602 CreateBitmap(gfx::Size(50, 50), "discardable", &fifth); | 615 CreateDiscardableBitmap(gfx::Size(50, 50), &fifth); |
603 | 616 |
604 canvas->save(); | 617 canvas->save(); |
605 | 618 |
606 // Sprites aren't affected by the current matrix. | 619 // Sprites aren't affected by the current matrix. |
607 | 620 |
608 // (0, 0, 50, 50). | 621 // (0, 0, 50, 50). |
609 canvas->drawSprite(first, 0, 0); | 622 canvas->drawSprite(first, 0, 0); |
610 canvas->translate(25, 0); | 623 canvas->translate(25, 0); |
611 // (10, 0, 50, 50). | 624 // (10, 0, 50, 50). |
612 canvas->drawSprite(second, 10, 0); | 625 canvas->drawSprite(second, 10, 0); |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
780 EXPECT_FLOAT_RECT_EQ(gfx::RectF(10, 10, 90, 90), | 793 EXPECT_FLOAT_RECT_EQ(gfx::RectF(10, 10, 90, 90), |
781 gfx::SkRectToRectF(pixel_refs[1].pixel_ref_rect)); | 794 gfx::SkRectToRectF(pixel_refs[1].pixel_ref_rect)); |
782 VerifyScales(1.f, 1.f, pixel_refs[1].matrix, __LINE__); | 795 VerifyScales(1.f, 1.f, pixel_refs[1].matrix, __LINE__); |
783 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[1].filter_quality); | 796 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[1].filter_quality); |
784 EXPECT_FLOAT_RECT_EQ(gfx::RectF(50, 55, 150, 145), | 797 EXPECT_FLOAT_RECT_EQ(gfx::RectF(50, 55, 150, 145), |
785 gfx::SkRectToRectF(pixel_refs[2].pixel_ref_rect)); | 798 gfx::SkRectToRectF(pixel_refs[2].pixel_ref_rect)); |
786 VerifyScales(1.f, 1.f, pixel_refs[2].matrix, __LINE__); | 799 VerifyScales(1.f, 1.f, pixel_refs[2].matrix, __LINE__); |
787 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[2].filter_quality); | 800 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[2].filter_quality); |
788 } | 801 } |
789 | 802 |
| 803 TEST(PixelRefUtilsTest, DrawImage) { |
| 804 gfx::Rect layer_rect(0, 0, 256, 256); |
| 805 |
| 806 SkPictureRecorder recorder; |
| 807 SkCanvas* canvas = StartRecording(&recorder, layer_rect); |
| 808 |
| 809 skia::RefPtr<SkImage> first = CreateDiscardableImage(gfx::Size(50, 50)); |
| 810 skia::RefPtr<SkImage> second = CreateDiscardableImage(gfx::Size(50, 50)); |
| 811 skia::RefPtr<SkImage> third = CreateDiscardableImage(gfx::Size(50, 50)); |
| 812 skia::RefPtr<SkImage> fourth = CreateDiscardableImage(gfx::Size(50, 1)); |
| 813 skia::RefPtr<SkImage> fifth = CreateDiscardableImage(gfx::Size(10, 10)); |
| 814 skia::RefPtr<SkImage> sixth = CreateDiscardableImage(gfx::Size(10, 10)); |
| 815 |
| 816 canvas->save(); |
| 817 |
| 818 // At (0, 0). |
| 819 canvas->drawImage(first.get(), 0, 0); |
| 820 canvas->translate(25, 0); |
| 821 // At (25, 0). |
| 822 canvas->drawImage(second.get(), 0, 0); |
| 823 canvas->translate(0, 50); |
| 824 // At (50, 50). |
| 825 canvas->drawImage(third.get(), 25, 0); |
| 826 |
| 827 canvas->restore(); |
| 828 canvas->save(); |
| 829 |
| 830 canvas->translate(1, 0); |
| 831 canvas->rotate(90); |
| 832 // At (1, 0), rotated 90 degrees |
| 833 canvas->drawImage(fourth.get(), 0, 0); |
| 834 |
| 835 canvas->restore(); |
| 836 canvas->save(); |
| 837 |
| 838 canvas->scale(5.f, 6.f); |
| 839 // At (0, 0), scaled by 5 and 6 |
| 840 canvas->drawImage(fifth.get(), 0, 0); |
| 841 |
| 842 canvas->restore(); |
| 843 |
| 844 canvas->rotate(27); |
| 845 canvas->scale(3.3f, 0.4f); |
| 846 |
| 847 canvas->drawImage(sixth.get(), 0, 0); |
| 848 |
| 849 canvas->restore(); |
| 850 |
| 851 skia::RefPtr<SkPicture> picture = |
| 852 skia::AdoptRef(StopRecording(&recorder, canvas)); |
| 853 |
| 854 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; |
| 855 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); |
| 856 |
| 857 EXPECT_EQ(6u, pixel_refs.size()); |
| 858 EXPECT_FLOAT_RECT_EQ(gfx::RectF(0, 0, 50, 50), |
| 859 gfx::SkRectToRectF(pixel_refs[0].pixel_ref_rect)); |
| 860 VerifyScales(1.f, 1.f, pixel_refs[0].matrix, __LINE__); |
| 861 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[0].filter_quality); |
| 862 EXPECT_FLOAT_RECT_EQ(gfx::RectF(25, 0, 50, 50), |
| 863 gfx::SkRectToRectF(pixel_refs[1].pixel_ref_rect)); |
| 864 VerifyScales(1.f, 1.f, pixel_refs[1].matrix, __LINE__); |
| 865 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[1].filter_quality); |
| 866 EXPECT_FLOAT_RECT_EQ(gfx::RectF(50, 50, 50, 50), |
| 867 gfx::SkRectToRectF(pixel_refs[2].pixel_ref_rect)); |
| 868 VerifyScales(1.f, 1.f, pixel_refs[2].matrix, __LINE__); |
| 869 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[2].filter_quality); |
| 870 EXPECT_FLOAT_RECT_EQ(gfx::RectF(0, 0, 1, 50), |
| 871 gfx::SkRectToRectF(pixel_refs[3].pixel_ref_rect)); |
| 872 VerifyScales(1.f, 1.f, pixel_refs[3].matrix, __LINE__); |
| 873 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[3].filter_quality); |
| 874 EXPECT_FLOAT_RECT_EQ(gfx::RectF(0, 0, 50, 60), |
| 875 gfx::SkRectToRectF(pixel_refs[4].pixel_ref_rect)); |
| 876 VerifyScales(5.f, 6.f, pixel_refs[4].matrix, __LINE__); |
| 877 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[4].filter_quality); |
| 878 EXPECT_FLOAT_RECT_EQ(gfx::RectF(-1.8159621f, 0, 31.219175f, 18.545712f), |
| 879 gfx::SkRectToRectF(pixel_refs[5].pixel_ref_rect)); |
| 880 VerifyScales(3.3f, 0.4f, pixel_refs[5].matrix, __LINE__); |
| 881 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[5].filter_quality); |
| 882 } |
| 883 |
| 884 TEST(PixelRefUtilsTest, DrawImageRect) { |
| 885 gfx::Rect layer_rect(0, 0, 256, 256); |
| 886 |
| 887 SkPictureRecorder recorder; |
| 888 SkCanvas* canvas = StartRecording(&recorder, layer_rect); |
| 889 |
| 890 skia::RefPtr<SkImage> first = CreateDiscardableImage(gfx::Size(50, 50)); |
| 891 skia::RefPtr<SkImage> second = CreateDiscardableImage(gfx::Size(50, 50)); |
| 892 skia::RefPtr<SkImage> third = CreateDiscardableImage(gfx::Size(50, 50)); |
| 893 |
| 894 TestDiscardableShader first_shader; |
| 895 SkPaint first_paint; |
| 896 first_paint.setShader(&first_shader); |
| 897 |
| 898 SkPaint non_discardable_paint; |
| 899 |
| 900 canvas->save(); |
| 901 |
| 902 // (0, 0, 100, 100). |
| 903 canvas->drawImageRect( |
| 904 first.get(), SkRect::MakeWH(100, 100), &non_discardable_paint); |
| 905 canvas->translate(25, 0); |
| 906 // (75, 50, 10, 10). |
| 907 canvas->drawImageRect( |
| 908 second.get(), SkRect::MakeXYWH(50, 50, 10, 10), &non_discardable_paint); |
| 909 canvas->translate(5, 50); |
| 910 // (0, 30, 100, 100). One from bitmap, one from paint. |
| 911 canvas->drawImageRect( |
| 912 third.get(), SkRect::MakeXYWH(-30, -20, 100, 100), &first_paint); |
| 913 |
| 914 canvas->restore(); |
| 915 |
| 916 skia::RefPtr<SkPicture> picture = |
| 917 skia::AdoptRef(StopRecording(&recorder, canvas)); |
| 918 |
| 919 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; |
| 920 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); |
| 921 |
| 922 EXPECT_EQ(4u, pixel_refs.size()); |
| 923 EXPECT_FLOAT_RECT_EQ(gfx::RectF(0, 0, 100, 100), |
| 924 gfx::SkRectToRectF(pixel_refs[0].pixel_ref_rect)); |
| 925 VerifyScales(2.f, 2.f, pixel_refs[0].matrix, __LINE__); |
| 926 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[0].filter_quality); |
| 927 EXPECT_FLOAT_RECT_EQ(gfx::RectF(75, 50, 10, 10), |
| 928 gfx::SkRectToRectF(pixel_refs[1].pixel_ref_rect)); |
| 929 VerifyScales(0.2f, 0.2f, pixel_refs[1].matrix, __LINE__); |
| 930 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[1].filter_quality); |
| 931 EXPECT_FLOAT_RECT_EQ(gfx::RectF(0, 30, 100, 100), |
| 932 gfx::SkRectToRectF(pixel_refs[2].pixel_ref_rect)); |
| 933 VerifyScales(2.f, 2.f, pixel_refs[2].matrix, __LINE__); |
| 934 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[2].filter_quality); |
| 935 EXPECT_FLOAT_RECT_EQ(gfx::RectF(0, 30, 100, 100), |
| 936 gfx::SkRectToRectF(pixel_refs[3].pixel_ref_rect)); |
| 937 VerifyScales(2.f, 2.f, pixel_refs[3].matrix, __LINE__); |
| 938 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[3].filter_quality); |
| 939 } |
| 940 |
790 } // namespace skia | 941 } // namespace skia |
OLD | NEW |