Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 692c0d5

Browse files
authored
Replace SkColorSpace::filterColor with filterColor4f (#50821)
The old API is deprecated. The new one operates on float colors, but is also explicit about the color space of the source color (and the working space of the filter). Bug: b/40040795
1 parent 8bf9113 commit 692c0d5

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

display_list/skia/dl_sk_conversions_unittests.cc

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include "flutter/display_list/effects/dl_color_source.h"
1111
#include "flutter/display_list/skia/dl_sk_conversions.h"
1212
#include "gtest/gtest.h"
13+
#include "third_party/skia/include/core/SkColorSpace.h"
1314
#include "third_party/skia/include/core/SkSamplingOptions.h"
1415
#include "third_party/skia/include/core/SkTileMode.h"
1516

@@ -155,17 +156,24 @@ TEST(DisplayListSkConversions, BlendColorFilterModifiesTransparency) {
155156
<< "]";
156157
std::string desc = desc_str.str();
157158
DlBlendColorFilter filter(color, mode);
159+
auto srgb = SkColorSpace::MakeSRGB();
158160
if (filter.modifies_transparent_black()) {
159161
auto dl_filter = DlBlendColorFilter::Make(color, mode);
160162
auto sk_filter = ToSk(filter);
161163
ASSERT_NE(dl_filter, nullptr) << desc;
162164
ASSERT_NE(sk_filter, nullptr) << desc;
163-
ASSERT_TRUE(sk_filter->filterColor(0) != 0) << desc;
165+
ASSERT_TRUE(sk_filter->filterColor4f(SkColors::kTransparent, srgb.get(),
166+
srgb.get()) !=
167+
SkColors::kTransparent)
168+
<< desc;
164169
} else {
165170
auto dl_filter = DlBlendColorFilter::Make(color, mode);
166171
auto sk_filter = ToSk(filter);
167172
EXPECT_EQ(dl_filter == nullptr, sk_filter == nullptr) << desc;
168-
ASSERT_TRUE(sk_filter == nullptr || sk_filter->filterColor(0) == 0)
173+
ASSERT_TRUE(sk_filter == nullptr ||
174+
sk_filter->filterColor4f(SkColors::kTransparent, srgb.get(),
175+
srgb.get()) ==
176+
SkColors::kTransparent)
169177
<< desc;
170178
}
171179
};
@@ -266,9 +274,12 @@ TEST(DisplayListSkConversions, MatrixColorFilterModifiesTransparency) {
266274
DlMatrixColorFilter filter(matrix);
267275
auto dl_filter = DlMatrixColorFilter::Make(matrix);
268276
auto sk_filter = ToSk(filter);
277+
auto srgb = SkColorSpace::MakeSRGB();
269278
EXPECT_EQ(dl_filter == nullptr, sk_filter == nullptr);
270279
EXPECT_EQ(filter.modifies_transparent_black(),
271-
sk_filter && sk_filter->filterColor(0) != 0);
280+
sk_filter && sk_filter->filterColor4f(SkColors::kTransparent,
281+
srgb.get(), srgb.get()) !=
282+
SkColors::kTransparent);
272283
};
273284

274285
// Tests identity (matrix[0] already == 1 in an identity filter)

display_list/testing/dl_rendering_unittests.cc

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
#include "third_party/skia/include/core/SkBBHFactory.h"
2626
#include "third_party/skia/include/core/SkColorFilter.h"
27+
#include "third_party/skia/include/core/SkColorSpace.h"
2728
#include "third_party/skia/include/core/SkFontMgr.h"
2829
#include "third_party/skia/include/core/SkPictureRecorder.h"
2930
#include "third_party/skia/include/core/SkStream.h"
@@ -4528,10 +4529,14 @@ class DisplayListNopTest : public DisplayListRendering {
45284529

45294530
auto sk_mode = static_cast<SkBlendMode>(mode);
45304531
auto sk_color_filter = SkColorFilters::Blend(ToSk(color), sk_mode);
4532+
auto srgb = SkColorSpace::MakeSRGB();
45314533
int all_flags = 0;
45324534
if (sk_color_filter) {
45334535
for (DlColor dst_color : test_dst_colors) {
4534-
DlColor result = DlColor(sk_color_filter->filterColor(ToSk(dst_color)));
4536+
SkColor4f dst_color_f = SkColor4f::FromColor(ToSk(dst_color));
4537+
DlColor result = DlColor(
4538+
sk_color_filter->filterColor4f(dst_color_f, srgb.get(), srgb.get())
4539+
.toSkColor());
45354540
all_flags |= check_color_result(dst_color, result, dl, desc);
45364541
}
45374542
if ((all_flags & kWasMTB) != 0) {

0 commit comments

Comments
 (0)