| 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 |