diff --git a/display_list/skia/dl_sk_conversions_unittests.cc b/display_list/skia/dl_sk_conversions_unittests.cc index f5ea4bce86ff7..f5adf4d2501b0 100644 --- a/display_list/skia/dl_sk_conversions_unittests.cc +++ b/display_list/skia/dl_sk_conversions_unittests.cc @@ -10,6 +10,7 @@ #include "flutter/display_list/effects/dl_color_source.h" #include "flutter/display_list/skia/dl_sk_conversions.h" #include "gtest/gtest.h" +#include "third_party/skia/include/core/SkColorSpace.h" #include "third_party/skia/include/core/SkSamplingOptions.h" #include "third_party/skia/include/core/SkTileMode.h" @@ -142,9 +143,9 @@ TEST(DisplayListSkConversions, ToSkSamplingOptions) { FUNC(kLastSeparableMode) \ FUNC(kLastMode) -TEST(DisplayListSkConversions, ToSkBlendMode) { +TEST(DisplayListSkConversions, ToSkBlendMode){ #define CHECK_TO_SKENUM(V) ASSERT_EQ(ToSk(DlBlendMode::V), SkBlendMode::V); - FOR_EACH_BLEND_MODE_ENUM(CHECK_TO_SKENUM) + FOR_EACH_BLEND_MODE_ENUM(CHECK_TO_SKENUM) #undef CHECK_TO_SKENUM } @@ -155,17 +156,24 @@ TEST(DisplayListSkConversions, BlendColorFilterModifiesTransparency) { << "]"; std::string desc = desc_str.str(); DlBlendColorFilter filter(color, mode); + auto srgb = SkColorSpace::MakeSRGB(); if (filter.modifies_transparent_black()) { auto dl_filter = DlBlendColorFilter::Make(color, mode); auto sk_filter = ToSk(filter); ASSERT_NE(dl_filter, nullptr) << desc; ASSERT_NE(sk_filter, nullptr) << desc; - ASSERT_TRUE(sk_filter->filterColor(0) != 0) << desc; + ASSERT_TRUE(sk_filter->filterColor4f(SkColors::kTransparent, srgb.get(), + srgb.get()) != + SkColors::kTransparent) + << desc; } else { auto dl_filter = DlBlendColorFilter::Make(color, mode); auto sk_filter = ToSk(filter); EXPECT_EQ(dl_filter == nullptr, sk_filter == nullptr) << desc; - ASSERT_TRUE(sk_filter == nullptr || sk_filter->filterColor(0) == 0) + ASSERT_TRUE(sk_filter == nullptr || + sk_filter->filterColor4f(SkColors::kTransparent, srgb.get(), + srgb.get()) == + SkColors::kTransparent) << desc; } }; @@ -266,9 +274,12 @@ TEST(DisplayListSkConversions, MatrixColorFilterModifiesTransparency) { DlMatrixColorFilter filter(matrix); auto dl_filter = DlMatrixColorFilter::Make(matrix); auto sk_filter = ToSk(filter); + auto srgb = SkColorSpace::MakeSRGB(); EXPECT_EQ(dl_filter == nullptr, sk_filter == nullptr); EXPECT_EQ(filter.modifies_transparent_black(), - sk_filter && sk_filter->filterColor(0) != 0); + sk_filter && sk_filter->filterColor4f(SkColors::kTransparent, + srgb.get(), srgb.get()) != + SkColors::kTransparent); }; // Tests identity (matrix[0] already == 1 in an identity filter) diff --git a/display_list/testing/dl_rendering_unittests.cc b/display_list/testing/dl_rendering_unittests.cc index 8e522643dc941..dc99b4f1e4e6e 100644 --- a/display_list/testing/dl_rendering_unittests.cc +++ b/display_list/testing/dl_rendering_unittests.cc @@ -24,6 +24,7 @@ #include "third_party/skia/include/core/SkBBHFactory.h" #include "third_party/skia/include/core/SkColorFilter.h" +#include "third_party/skia/include/core/SkColorSpace.h" #include "third_party/skia/include/core/SkFontMgr.h" #include "third_party/skia/include/core/SkPictureRecorder.h" #include "third_party/skia/include/core/SkStream.h" @@ -2232,8 +2233,8 @@ class CanvasCompareTester { return DirectoryStatus::kCreated; } FML_LOG(ERROR) << "Could not create directory (" << dir - << ") for impeller failure images" - << ", ret = " << ret.get() << ", errno = " << errno; + << ") for impeller failure images" << ", ret = " << ret.get() + << ", errno = " << errno; return DirectoryStatus::kFailed; } @@ -4528,10 +4529,14 @@ class DisplayListNopTest : public DisplayListRendering { auto sk_mode = static_cast(mode); auto sk_color_filter = SkColorFilters::Blend(ToSk(color), sk_mode); + auto srgb = SkColorSpace::MakeSRGB(); int all_flags = 0; if (sk_color_filter) { for (DlColor dst_color : test_dst_colors) { - DlColor result = DlColor(sk_color_filter->filterColor(ToSk(dst_color))); + SkColor4f dst_color_f = SkColor4f::FromColor(ToSk(dst_color)); + DlColor result = DlColor( + sk_color_filter->filterColor4f(dst_color_f, srgb.get(), srgb.get()) + .toSkColor()); all_flags |= check_color_result(dst_color, result, dl, desc); } if ((all_flags & kWasMTB) != 0) {