Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions ci/licenses_golden/licenses_flutter
Original file line number Diff line number Diff line change
Expand Up @@ -42540,8 +42540,6 @@ ORIGIN: ../../../flutter/display_list/effects/color_filters/dl_matrix_color_filt
ORIGIN: ../../../flutter/display_list/effects/color_filters/dl_matrix_color_filter.h + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/display_list/effects/color_filters/dl_srgb_to_linear_gamma_color_filter.cc + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/display_list/effects/color_filters/dl_srgb_to_linear_gamma_color_filter.h + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/display_list/effects/color_sources/dl_color_color_source.cc + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/display_list/effects/color_sources/dl_color_color_source.h + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/display_list/effects/color_sources/dl_conical_gradient_color_source.cc + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/display_list/effects/color_sources/dl_conical_gradient_color_source.h + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/display_list/effects/color_sources/dl_gradient_color_source_base.h + ../../../flutter/LICENSE
Expand Down Expand Up @@ -45467,8 +45465,6 @@ FILE: ../../../flutter/display_list/effects/color_filters/dl_matrix_color_filter
FILE: ../../../flutter/display_list/effects/color_filters/dl_matrix_color_filter.h
FILE: ../../../flutter/display_list/effects/color_filters/dl_srgb_to_linear_gamma_color_filter.cc
FILE: ../../../flutter/display_list/effects/color_filters/dl_srgb_to_linear_gamma_color_filter.h
FILE: ../../../flutter/display_list/effects/color_sources/dl_color_color_source.cc
FILE: ../../../flutter/display_list/effects/color_sources/dl_color_color_source.h
FILE: ../../../flutter/display_list/effects/color_sources/dl_conical_gradient_color_source.cc
FILE: ../../../flutter/display_list/effects/color_sources/dl_conical_gradient_color_source.h
FILE: ../../../flutter/display_list/effects/color_sources/dl_gradient_color_source_base.h
Expand Down
2 changes: 0 additions & 2 deletions display_list/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,6 @@ source_set("display_list") {
"effects/color_filters/dl_matrix_color_filter.h",
"effects/color_filters/dl_srgb_to_linear_gamma_color_filter.cc",
"effects/color_filters/dl_srgb_to_linear_gamma_color_filter.h",
"effects/color_sources/dl_color_color_source.cc",
"effects/color_sources/dl_color_color_source.h",
"effects/color_sources/dl_conical_gradient_color_source.cc",
"effects/color_sources/dl_conical_gradient_color_source.h",
"effects/color_sources/dl_image_color_source.cc",
Expand Down
14 changes: 3 additions & 11 deletions display_list/dl_builder.cc
Original file line number Diff line number Diff line change
Expand Up @@ -201,12 +201,6 @@ void DisplayListBuilder::onSetColorSource(const DlColorSource* source) {
current_.setColorSource(source->shared());
is_ui_thread_safe_ = is_ui_thread_safe_ && source->isUIThreadSafe();
switch (source->type()) {
case DlColorSourceType::kColor: {
const DlColorColorSource* color_source = source->asColor();
current_.setColorSource(nullptr);
setColor(color_source->color());
break;
}
case DlColorSourceType::kImage: {
const DlImageColorSource* image_source = source->asImage();
FML_DCHECK(image_source);
Expand Down Expand Up @@ -1953,11 +1947,9 @@ DlColor DisplayListBuilder::GetEffectiveColor(const DlPaint& paint,
if (flags.applies_color()) {
const DlColorSource* source = paint.getColorSourcePtr();
if (source) {
if (source->asColor()) {
color = source->asColor()->color();
} else {
color = source->is_opaque() ? DlColor::kBlack() : kAnyColor;
}
// Suspecting that we need to modulate the ColorSource color by the
// color property, see https://github.com/flutter/flutter/issues/159507
color = source->is_opaque() ? DlColor::kBlack() : kAnyColor;
} else {
color = paint.getColor();
}
Expand Down
47 changes: 33 additions & 14 deletions display_list/dl_paint_unittests.cc
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,16 @@ TEST(DisplayListPaint, ConstructorDefaults) {
EXPECT_NE(paint, DlPaint().setStrokeWidth(6));
EXPECT_NE(paint, DlPaint().setStrokeMiter(7));

auto color_source = DlColorSource::MakeColor(DlColor::kMagenta());
DlColor colors[2] = {
DlColor::kGreen(),
DlColor::kBlue(),
};
float stops[2] = {
0.0f,
1.0f,
};
auto color_source = DlColorSource::MakeLinear({0, 0}, {10, 10}, 2, colors,
stops, DlTileMode::kClamp);
EXPECT_NE(paint, DlPaint().setColorSource(color_source));

auto color_filter =
Expand Down Expand Up @@ -95,19 +104,28 @@ TEST(DisplayListPaint, NullSharedPointerSetGet) {
}

TEST(DisplayListPaint, ChainingConstructor) {
DlColor colors[2] = {
DlColor::kGreen(),
DlColor::kBlue(),
};
float stops[2] = {
0.0f,
1.0f,
};
DlPaint paint =
DlPaint() //
.setAntiAlias(true) //
.setInvertColors(true) //
.setColor(DlColor::kGreen()) //
.setAlpha(0x7F) //
.setBlendMode(DlBlendMode::kLuminosity) //
.setDrawStyle(DlDrawStyle::kStrokeAndFill) //
.setStrokeCap(DlStrokeCap::kSquare) //
.setStrokeJoin(DlStrokeJoin::kBevel) //
.setStrokeWidth(42) //
.setStrokeMiter(1.5) //
.setColorSource(DlColorSource::MakeColor(DlColor::kMagenta())) //
DlPaint() //
.setAntiAlias(true) //
.setInvertColors(true) //
.setColor(DlColor::kGreen()) //
.setAlpha(0x7F) //
.setBlendMode(DlBlendMode::kLuminosity) //
.setDrawStyle(DlDrawStyle::kStrokeAndFill) //
.setStrokeCap(DlStrokeCap::kSquare) //
.setStrokeJoin(DlStrokeJoin::kBevel) //
.setStrokeWidth(42) //
.setStrokeMiter(1.5) //
.setColorSource(DlColorSource::MakeLinear( //
{0, 0}, {10, 10}, 2, colors, stops, DlTileMode::kClamp)) //
.setColorFilter(
DlColorFilter::MakeBlend(DlColor::kYellow(), DlBlendMode::kDstIn))
.setImageFilter(DlImageFilter::MakeBlur(1.3, 4.7, DlTileMode::kClamp))
Expand All @@ -123,7 +141,8 @@ TEST(DisplayListPaint, ChainingConstructor) {
EXPECT_EQ(paint.getStrokeWidth(), 42);
EXPECT_EQ(paint.getStrokeMiter(), 1.5);
EXPECT_TRUE(Equals(paint.getColorSource(),
DlColorSource::MakeColor(DlColor::kMagenta())));
DlColorSource::MakeLinear({0, 0}, {10, 10}, 2, colors,
stops, DlTileMode::kClamp)));
EXPECT_TRUE(Equals(
paint.getColorFilter(),
DlColorFilter::MakeBlend(DlColor::kYellow(), DlBlendMode::kDstIn)));
Expand Down
15 changes: 0 additions & 15 deletions display_list/effects/color_sources/dl_color_color_source.cc

This file was deleted.

42 changes: 0 additions & 42 deletions display_list/effects/color_sources/dl_color_color_source.h

This file was deleted.

4 changes: 0 additions & 4 deletions display_list/effects/dl_color_source.cc
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,6 @@ static void DlGradientDeleter(void* p) {
::operator delete(p);
}

std::shared_ptr<DlColorSource> DlColorSource::MakeColor(DlColor color) {
return std::make_shared<DlColorColorSource>(color);
}

std::shared_ptr<DlColorSource> DlColorSource::MakeImage(
const sk_sp<const DlImage>& image,
DlTileMode horizontal_tile_mode,
Expand Down
8 changes: 0 additions & 8 deletions display_list/effects/dl_color_source.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@

namespace flutter {

class DlColorColorSource;
class DlImageColorSource;
class DlLinearGradientColorSource;
class DlRadialGradientColorSource;
Expand All @@ -34,7 +33,6 @@ class DlRuntimeEffectColorSource;
// attributes, and the final blend with the pixels in the destination.

enum class DlColorSourceType {
kColor,
kImage,
kLinearGradient,
kRadialGradient,
Expand All @@ -45,8 +43,6 @@ enum class DlColorSourceType {

class DlColorSource : public DlAttribute<DlColorSource, DlColorSourceType> {
public:
static std::shared_ptr<DlColorSource> MakeColor(DlColor color);

static std::shared_ptr<DlColorSource> MakeImage(
const sk_sp<const DlImage>& image,
DlTileMode horizontal_tile_mode,
Expand Down Expand Up @@ -120,10 +116,6 @@ class DlColorSource : public DlAttribute<DlColorSource, DlColorSourceType> {
///
virtual bool isGradient() const { return false; }

// Return a DlColorColorSource pointer to this object iff it is an Color
// type of ColorSource, otherwise return nullptr.
virtual const DlColorColorSource* asColor() const { return nullptr; }

// Return a DlImageColorSource pointer to this object iff it is an Image
// type of ColorSource, otherwise return nullptr.
virtual const DlImageColorSource* asImage() const { return nullptr; }
Expand Down
54 changes: 1 addition & 53 deletions display_list/effects/dl_color_source_unittests.cc
Original file line number Diff line number Diff line change
Expand Up @@ -88,53 +88,6 @@ static constexpr DlPoint kTestPoints2[2] = {
DlPoint(107, 118),
};

TEST(DisplayListColorSource, ColorConstructor) {
DlColorColorSource source(DlColor::kRed());
}

TEST(DisplayListColorSource, ColorShared) {
DlColorColorSource source(DlColor::kRed());
ASSERT_NE(source.shared().get(), &source);
ASSERT_EQ(*source.shared(), source);
}

TEST(DisplayListColorSource, ColorAsColor) {
DlColorColorSource source(DlColor::kRed());
ASSERT_NE(source.asColor(), nullptr);
ASSERT_EQ(source.asColor(), &source);

ASSERT_EQ(source.asImage(), nullptr);
ASSERT_EQ(source.asLinearGradient(), nullptr);
ASSERT_EQ(source.asRadialGradient(), nullptr);
ASSERT_EQ(source.asConicalGradient(), nullptr);
ASSERT_EQ(source.asSweepGradient(), nullptr);
ASSERT_EQ(source.asRuntimeEffect(), nullptr);
}

TEST(DisplayListColorSource, ColorContents) {
DlColorColorSource source(DlColor::kRed());
ASSERT_EQ(source.color(), DlColor::kRed());
ASSERT_EQ(source.is_opaque(), true);
for (int i = 0; i < 255; i++) {
SkColor alpha_color = SkColorSetA(SK_ColorRED, i);
auto const alpha_source = DlColorColorSource(DlColor(alpha_color));
ASSERT_EQ(alpha_source.color(), alpha_color);
ASSERT_EQ(alpha_source.is_opaque(), false);
}
}

TEST(DisplayListColorSource, ColorEquals) {
DlColorColorSource source1(DlColor::kRed());
DlColorColorSource source2(DlColor::kRed());
TestEquals(source1, source2);
}

TEST(DisplayListColorSource, ColorNotEquals) {
DlColorColorSource source1(DlColor::kRed());
DlColorColorSource source2(DlColor::kBlue());
TestNotEquals(source1, source2, "Color differs");
}

TEST(DisplayListColorSource, ImageConstructor) {
DlImageColorSource source(kTestImage1, DlTileMode::kClamp, DlTileMode::kClamp,
DlImageSampling::kLinear, &kTestMatrix1);
Expand All @@ -153,11 +106,11 @@ TEST(DisplayListColorSource, ImageAsImage) {
ASSERT_NE(source.asImage(), nullptr);
ASSERT_EQ(source.asImage(), &source);

ASSERT_EQ(source.asColor(), nullptr);
ASSERT_EQ(source.asLinearGradient(), nullptr);
ASSERT_EQ(source.asRadialGradient(), nullptr);
ASSERT_EQ(source.asConicalGradient(), nullptr);
ASSERT_EQ(source.asSweepGradient(), nullptr);
ASSERT_EQ(source.asRuntimeEffect(), nullptr);
}

TEST(DisplayListColorSource, ImageContents) {
Expand Down Expand Up @@ -251,7 +204,6 @@ TEST(DisplayListColorSource, LinearGradientAsLinear) {
ASSERT_NE(source->asLinearGradient(), nullptr);
ASSERT_EQ(source->asLinearGradient(), source.get());

ASSERT_EQ(source->asColor(), nullptr);
ASSERT_EQ(source->asImage(), nullptr);
ASSERT_EQ(source->asRadialGradient(), nullptr);
ASSERT_EQ(source->asConicalGradient(), nullptr);
Expand Down Expand Up @@ -370,7 +322,6 @@ TEST(DisplayListColorSource, RadialGradientAsRadial) {
ASSERT_NE(source->asRadialGradient(), nullptr);
ASSERT_EQ(source->asRadialGradient(), source.get());

ASSERT_EQ(source->asColor(), nullptr);
ASSERT_EQ(source->asImage(), nullptr);
ASSERT_EQ(source->asLinearGradient(), nullptr);
ASSERT_EQ(source->asConicalGradient(), nullptr);
Expand Down Expand Up @@ -489,7 +440,6 @@ TEST(DisplayListColorSource, ConicalGradientAsConical) {
ASSERT_NE(source->asConicalGradient(), nullptr);
ASSERT_EQ(source->asConicalGradient(), source.get());

ASSERT_EQ(source->asColor(), nullptr);
ASSERT_EQ(source->asImage(), nullptr);
ASSERT_EQ(source->asLinearGradient(), nullptr);
ASSERT_EQ(source->asRadialGradient(), nullptr);
Expand Down Expand Up @@ -624,7 +574,6 @@ TEST(DisplayListColorSource, SweepGradientAsSweep) {
ASSERT_NE(source->asSweepGradient(), nullptr);
ASSERT_EQ(source->asSweepGradient(), source.get());

ASSERT_EQ(source->asColor(), nullptr);
ASSERT_EQ(source->asImage(), nullptr);
ASSERT_EQ(source->asLinearGradient(), nullptr);
ASSERT_EQ(source->asRadialGradient(), nullptr);
Expand Down Expand Up @@ -743,7 +692,6 @@ TEST(DisplayListColorSource, RuntimeEffect) {
ASSERT_NE(source2->asRuntimeEffect(), source1.get());

ASSERT_EQ(source1->asImage(), nullptr);
ASSERT_EQ(source1->asColor(), nullptr);
ASSERT_EQ(source1->asLinearGradient(), nullptr);
ASSERT_EQ(source1->asRadialGradient(), nullptr);
ASSERT_EQ(source1->asConicalGradient(), nullptr);
Expand Down
1 change: 0 additions & 1 deletion display_list/effects/dl_color_sources.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
#ifndef FLUTTER_DISPLAY_LIST_EFFECTS_DL_COLOR_SOURCES_H_
#define FLUTTER_DISPLAY_LIST_EFFECTS_DL_COLOR_SOURCES_H_

#include "flutter/display_list/effects/color_sources/dl_color_color_source.h"
#include "flutter/display_list/effects/color_sources/dl_conical_gradient_color_source.h"
#include "flutter/display_list/effects/color_sources/dl_image_color_source.h"
#include "flutter/display_list/effects/color_sources/dl_linear_gradient_color_source.h"
Expand Down
5 changes: 0 additions & 5 deletions display_list/skia/dl_sk_conversions.cc
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,6 @@ sk_sp<SkShader> ToSk(const DlColorSource* source) {
return sk_colors;
};
switch (source->type()) {
case DlColorSourceType::kColor: {
const DlColorColorSource* color_source = source->asColor();
FML_DCHECK(color_source != nullptr);
return SkShaders::Color(ToSk(color_source->color()));
}
case DlColorSourceType::kImage: {
const DlImageColorSource* image_source = source->asImage();
FML_DCHECK(image_source != nullptr);
Expand Down
12 changes: 0 additions & 12 deletions display_list/skia/dl_sk_paint_dispatcher_unittests.cc
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,6 @@ TEST(DisplayListUtils, SetColorSourceDoesNotDitherIfNotGradient) {
EXPECT_FALSE(helper.paint(true).isDither());
EXPECT_FALSE(helper.paint(false).isDither());

DlColorColorSource color_color_source(DlColor::kBlue());
helper.setColorSource(&color_color_source);
EXPECT_FALSE(helper.paint(true).isDither());
EXPECT_FALSE(helper.paint(false).isDither());

helper.setColorSource(kTestSource1.get());
EXPECT_FALSE(helper.paint(true).isDither());
EXPECT_FALSE(helper.paint(false).isDither());
Expand Down Expand Up @@ -98,13 +93,6 @@ TEST(DisplayListUtils, SkDispatcherSetColorSourceDoesNotDitherIfNotGradient) {
EXPECT_FALSE(dispatcher.safe_paint(true)->isDither());
// Calling safe_paint(false) returns a nullptr

DlColorColorSource color_color_source(DlColor::kBlue());
dispatcher.setColorSource(&color_color_source);
EXPECT_FALSE(dispatcher.paint(true).isDither());
EXPECT_FALSE(dispatcher.paint(false).isDither());
EXPECT_FALSE(dispatcher.safe_paint(true)->isDither());
// Calling safe_paint(false) returns a nullptr

dispatcher.setColorSource(kTestSource1.get());
EXPECT_FALSE(dispatcher.paint(true).isDither());
EXPECT_FALSE(dispatcher.paint(false).isDither());
Expand Down
2 changes: 1 addition & 1 deletion display_list/testing/dl_rendering_unittests.cc
Original file line number Diff line number Diff line change
Expand Up @@ -863,7 +863,7 @@ class TestParameters {
bool impeller_compatible(const DlPaint& paint) const {
if (is_draw_text_blob()) {
// Non-color text is rendered as paths
if (paint.getColorSourcePtr() && !paint.getColorSourcePtr()->asColor()) {
if (paint.getColorSourcePtr()) {
return false;
}
// Non-filled text (stroke or stroke and fill) is rendered as paths
Expand Down
Loading