OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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 <stddef.h> | 5 #include <stddef.h> |
6 | 6 |
7 #include "cc/output/filter_operations.h" | 7 #include "cc/output/filter_operations.h" |
8 #include "skia/ext/refptr.h" | |
9 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
10 #include "third_party/skia/include/effects/SkBlurImageFilter.h" | 9 #include "third_party/skia/include/effects/SkBlurImageFilter.h" |
11 #include "third_party/skia/include/effects/SkDropShadowImageFilter.h" | 10 #include "third_party/skia/include/effects/SkDropShadowImageFilter.h" |
12 #include "third_party/skia/include/effects/SkOffsetImageFilter.h" | 11 #include "third_party/skia/include/effects/SkOffsetImageFilter.h" |
13 #include "ui/gfx/geometry/point.h" | 12 #include "ui/gfx/geometry/point.h" |
14 #include "ui/gfx/geometry/rect.h" | 13 #include "ui/gfx/geometry/rect.h" |
15 | 14 |
16 namespace cc { | 15 namespace cc { |
17 namespace { | 16 namespace { |
18 | 17 |
(...skipping 12 matching lines...) Expand all Loading... |
31 TEST(FilterOperationsTest, MapRectBlur) { | 30 TEST(FilterOperationsTest, MapRectBlur) { |
32 FilterOperations ops; | 31 FilterOperations ops; |
33 ops.Append(FilterOperation::CreateBlurFilter(20)); | 32 ops.Append(FilterOperation::CreateBlurFilter(20)); |
34 EXPECT_EQ(gfx::Rect(-57, -57, 124, 124), | 33 EXPECT_EQ(gfx::Rect(-57, -57, 124, 124), |
35 ops.MapRect(gfx::Rect(0, 0, 10, 10))); | 34 ops.MapRect(gfx::Rect(0, 0, 10, 10))); |
36 } | 35 } |
37 | 36 |
38 TEST(FilterOperationsTest, GetOutsetsDropShadowReferenceFilter) { | 37 TEST(FilterOperationsTest, GetOutsetsDropShadowReferenceFilter) { |
39 // TODO(hendrikw): We need to make outsets for reference filters be in line | 38 // TODO(hendrikw): We need to make outsets for reference filters be in line |
40 // with non-reference filters. See crbug.com/523534 | 39 // with non-reference filters. See crbug.com/523534 |
41 skia::RefPtr<SkImageFilter> filter = | 40 FilterOperations ops; |
42 skia::AdoptRef(SkDropShadowImageFilter::Create( | 41 ops.Append( |
| 42 FilterOperation::CreateReferenceFilter(SkDropShadowImageFilter::Make( |
43 SkIntToScalar(3), SkIntToScalar(8), SkIntToScalar(4), | 43 SkIntToScalar(3), SkIntToScalar(8), SkIntToScalar(4), |
44 SkIntToScalar(9), SK_ColorBLACK, | 44 SkIntToScalar(9), SK_ColorBLACK, |
45 SkDropShadowImageFilter::kDrawShadowAndForeground_ShadowMode)); | 45 SkDropShadowImageFilter::kDrawShadowAndForeground_ShadowMode, |
46 FilterOperations ops; | 46 nullptr))); |
47 ops.Append(FilterOperation::CreateReferenceFilter(filter)); | |
48 | 47 |
49 int top, right, bottom, left; | 48 int top, right, bottom, left; |
50 top = right = bottom = left = 0; | 49 top = right = bottom = left = 0; |
51 ops.GetOutsets(&top, &right, &bottom, &left); | 50 ops.GetOutsets(&top, &right, &bottom, &left); |
52 EXPECT_EQ(35, top); | 51 EXPECT_EQ(35, top); |
53 EXPECT_EQ(9, right); | 52 EXPECT_EQ(9, right); |
54 EXPECT_EQ(19, bottom); | 53 EXPECT_EQ(19, bottom); |
55 EXPECT_EQ(15, left); | 54 EXPECT_EQ(15, left); |
56 } | 55 } |
57 | 56 |
58 TEST(FilterOperationsTest, MapRectDropShadowReferenceFilter) { | 57 TEST(FilterOperationsTest, MapRectDropShadowReferenceFilter) { |
59 skia::RefPtr<SkImageFilter> filter = | 58 FilterOperations ops; |
60 skia::AdoptRef(SkDropShadowImageFilter::Create( | 59 ops.Append( |
| 60 FilterOperation::CreateReferenceFilter(SkDropShadowImageFilter::Make( |
61 SkIntToScalar(3), SkIntToScalar(8), SkIntToScalar(4), | 61 SkIntToScalar(3), SkIntToScalar(8), SkIntToScalar(4), |
62 SkIntToScalar(9), SK_ColorBLACK, | 62 SkIntToScalar(9), SK_ColorBLACK, |
63 SkDropShadowImageFilter::kDrawShadowAndForeground_ShadowMode)); | 63 SkDropShadowImageFilter::kDrawShadowAndForeground_ShadowMode, |
64 FilterOperations ops; | 64 nullptr))); |
65 ops.Append(FilterOperation::CreateReferenceFilter(filter)); | |
66 EXPECT_EQ(gfx::Rect(-9, -19, 34, 64), ops.MapRect(gfx::Rect(0, 0, 10, 10))); | 65 EXPECT_EQ(gfx::Rect(-9, -19, 34, 64), ops.MapRect(gfx::Rect(0, 0, 10, 10))); |
67 } | 66 } |
68 | 67 |
69 TEST(FilterOperationsTest, MapRectOffsetReferenceFilter) { | 68 TEST(FilterOperationsTest, MapRectOffsetReferenceFilter) { |
70 skia::RefPtr<SkImageFilter> filter = | 69 sk_sp<SkImageFilter> filter = SkOffsetImageFilter::Make(30, 40, nullptr); |
71 skia::AdoptRef(SkOffsetImageFilter::Make(30, 40, nullptr)); | |
72 FilterOperations ops; | 70 FilterOperations ops; |
73 ops.Append(FilterOperation::CreateReferenceFilter(std::move(filter))); | 71 ops.Append(FilterOperation::CreateReferenceFilter(std::move(filter))); |
74 EXPECT_EQ(gfx::Rect(30, 40, 10, 10), ops.MapRect(gfx::Rect(0, 0, 10, 10))); | 72 EXPECT_EQ(gfx::Rect(30, 40, 10, 10), ops.MapRect(gfx::Rect(0, 0, 10, 10))); |
75 } | 73 } |
76 | 74 |
77 TEST(FilterOperationsTest, GetOutsetsNullReferenceFilter) { | 75 TEST(FilterOperationsTest, GetOutsetsNullReferenceFilter) { |
78 FilterOperations ops; | 76 FilterOperations ops; |
79 ops.Append(FilterOperation::CreateReferenceFilter(nullptr)); | 77 ops.Append(FilterOperation::CreateReferenceFilter(nullptr)); |
80 | 78 |
81 int top, right, bottom, left; | 79 int top, right, bottom, left; |
(...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
575 FilterOperation expected = | 573 FilterOperation expected = |
576 FilterOperation::CreateSaturatingBrightnessFilter(0.75f); | 574 FilterOperation::CreateSaturatingBrightnessFilter(0.75f); |
577 EXPECT_EQ(expected, blended); | 575 EXPECT_EQ(expected, blended); |
578 | 576 |
579 blended = FilterOperation::Blend(NULL, &filter, 0.25); | 577 blended = FilterOperation::Blend(NULL, &filter, 0.25); |
580 expected = FilterOperation::CreateSaturatingBrightnessFilter(0.25f); | 578 expected = FilterOperation::CreateSaturatingBrightnessFilter(0.25f); |
581 EXPECT_EQ(expected, blended); | 579 EXPECT_EQ(expected, blended); |
582 } | 580 } |
583 | 581 |
584 TEST(FilterOperationsTest, BlendReferenceFilters) { | 582 TEST(FilterOperationsTest, BlendReferenceFilters) { |
585 skia::RefPtr<SkImageFilter> from_filter = | 583 sk_sp<SkImageFilter> from_filter(SkBlurImageFilter::Make(1.f, 1.f, nullptr)); |
586 skia::AdoptRef(SkBlurImageFilter::Create(1.f, 1.f)); | 584 sk_sp<SkImageFilter> to_filter(SkBlurImageFilter::Make(2.f, 2.f, nullptr)); |
587 skia::RefPtr<SkImageFilter> to_filter = | 585 FilterOperation from = |
588 skia::AdoptRef(SkBlurImageFilter::Create(2.f, 2.f)); | 586 FilterOperation::CreateReferenceFilter(std::move(from_filter)); |
589 FilterOperation from = FilterOperation::CreateReferenceFilter(from_filter); | 587 FilterOperation to = |
590 FilterOperation to = FilterOperation::CreateReferenceFilter(to_filter); | 588 FilterOperation::CreateReferenceFilter(std::move(to_filter)); |
591 | 589 |
592 FilterOperation blended = FilterOperation::Blend(&from, &to, -0.75); | 590 FilterOperation blended = FilterOperation::Blend(&from, &to, -0.75); |
593 EXPECT_EQ(from, blended); | 591 EXPECT_EQ(from, blended); |
594 | 592 |
595 blended = FilterOperation::Blend(&from, &to, 0.5); | 593 blended = FilterOperation::Blend(&from, &to, 0.5); |
596 EXPECT_EQ(from, blended); | 594 EXPECT_EQ(from, blended); |
597 | 595 |
598 blended = FilterOperation::Blend(&from, &to, 0.6); | 596 blended = FilterOperation::Blend(&from, &to, 0.6); |
599 EXPECT_EQ(to, blended); | 597 EXPECT_EQ(to, blended); |
600 | 598 |
601 blended = FilterOperation::Blend(&from, &to, 1.5); | 599 blended = FilterOperation::Blend(&from, &to, 1.5); |
602 EXPECT_EQ(to, blended); | 600 EXPECT_EQ(to, blended); |
603 } | 601 } |
604 | 602 |
605 TEST(FilterOperationsTest, BlendReferenceWithNull) { | 603 TEST(FilterOperationsTest, BlendReferenceWithNull) { |
606 skia::RefPtr<SkImageFilter> image_filter = | 604 sk_sp<SkImageFilter> image_filter(SkBlurImageFilter::Make(1.f, 1.f, nullptr)); |
607 skia::AdoptRef(SkBlurImageFilter::Create(1.f, 1.f)); | 605 FilterOperation filter = |
608 FilterOperation filter = FilterOperation::CreateReferenceFilter(image_filter); | 606 FilterOperation::CreateReferenceFilter(std::move(image_filter)); |
609 FilterOperation null_filter = | 607 FilterOperation null_filter = FilterOperation::CreateReferenceFilter(nullptr); |
610 FilterOperation::CreateReferenceFilter(skia::RefPtr<SkImageFilter>()); | |
611 | 608 |
612 FilterOperation blended = FilterOperation::Blend(&filter, NULL, 0.25); | 609 FilterOperation blended = FilterOperation::Blend(&filter, NULL, 0.25); |
613 EXPECT_EQ(filter, blended); | 610 EXPECT_EQ(filter, blended); |
614 blended = FilterOperation::Blend(&filter, NULL, 0.75); | 611 blended = FilterOperation::Blend(&filter, NULL, 0.75); |
615 EXPECT_EQ(null_filter, blended); | 612 EXPECT_EQ(null_filter, blended); |
616 | 613 |
617 blended = FilterOperation::Blend(NULL, &filter, 0.25); | 614 blended = FilterOperation::Blend(NULL, &filter, 0.25); |
618 EXPECT_EQ(null_filter, blended); | 615 EXPECT_EQ(null_filter, blended); |
619 blended = FilterOperation::Blend(NULL, &filter, 0.75); | 616 blended = FilterOperation::Blend(NULL, &filter, 0.75); |
620 EXPECT_EQ(filter, blended); | 617 EXPECT_EQ(filter, blended); |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
771 blended = to.Blend(from, -0.75); | 768 blended = to.Blend(from, -0.75); |
772 EXPECT_EQ(to, blended); | 769 EXPECT_EQ(to, blended); |
773 blended = to.Blend(from, 0.75); | 770 blended = to.Blend(from, 0.75); |
774 EXPECT_EQ(to, blended); | 771 EXPECT_EQ(to, blended); |
775 blended = to.Blend(from, 1.5); | 772 blended = to.Blend(from, 1.5); |
776 EXPECT_EQ(to, blended); | 773 EXPECT_EQ(to, blended); |
777 } | 774 } |
778 | 775 |
779 } // namespace | 776 } // namespace |
780 } // namespace cc | 777 } // namespace cc |
OLD | NEW |