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

Commit 74f42ca

Browse files
authored
[DisplayList] delete obsolete PathEffect sources (#53441)
As of #53411 there are no more (non-test) references to path effects anywhere in the engine. Deleting the dead code.
1 parent 2d5c28e commit 74f42ca

35 files changed

+18
-435
lines changed

ci/licenses_golden/excluded_files

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
../../../flutter/display_list/effects/dl_color_source_unittests.cc
3939
../../../flutter/display_list/effects/dl_image_filter_unittests.cc
4040
../../../flutter/display_list/effects/dl_mask_filter_unittests.cc
41-
../../../flutter/display_list/effects/dl_path_effect_unittests.cc
4241
../../../flutter/display_list/geometry/dl_geometry_types_unittests.cc
4342
../../../flutter/display_list/geometry/dl_region_unittests.cc
4443
../../../flutter/display_list/geometry/dl_rtree_unittests.cc

ci/licenses_golden/licenses_flutter

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41545,8 +41545,6 @@ ORIGIN: ../../../flutter/display_list/effects/dl_image_filter.cc + ../../../flut
4154541545
ORIGIN: ../../../flutter/display_list/effects/dl_image_filter.h + ../../../flutter/LICENSE
4154641546
ORIGIN: ../../../flutter/display_list/effects/dl_mask_filter.cc + ../../../flutter/LICENSE
4154741547
ORIGIN: ../../../flutter/display_list/effects/dl_mask_filter.h + ../../../flutter/LICENSE
41548-
ORIGIN: ../../../flutter/display_list/effects/dl_path_effect.cc + ../../../flutter/LICENSE
41549-
ORIGIN: ../../../flutter/display_list/effects/dl_path_effect.h + ../../../flutter/LICENSE
4155041548
ORIGIN: ../../../flutter/display_list/effects/dl_runtime_effect.cc + ../../../flutter/LICENSE
4155141549
ORIGIN: ../../../flutter/display_list/effects/dl_runtime_effect.h + ../../../flutter/LICENSE
4155241550
ORIGIN: ../../../flutter/display_list/geometry/dl_geometry_types.h + ../../../flutter/LICENSE
@@ -44411,8 +44409,6 @@ FILE: ../../../flutter/display_list/effects/dl_image_filter.cc
4441144409
FILE: ../../../flutter/display_list/effects/dl_image_filter.h
4441244410
FILE: ../../../flutter/display_list/effects/dl_mask_filter.cc
4441344411
FILE: ../../../flutter/display_list/effects/dl_mask_filter.h
44414-
FILE: ../../../flutter/display_list/effects/dl_path_effect.cc
44415-
FILE: ../../../flutter/display_list/effects/dl_path_effect.h
4441644412
FILE: ../../../flutter/display_list/effects/dl_runtime_effect.cc
4441744413
FILE: ../../../flutter/display_list/effects/dl_runtime_effect.h
4441844414
FILE: ../../../flutter/display_list/geometry/dl_geometry_types.h

display_list/BUILD.gn

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,6 @@ source_set("display_list") {
5656
"effects/dl_image_filter.h",
5757
"effects/dl_mask_filter.cc",
5858
"effects/dl_mask_filter.h",
59-
"effects/dl_path_effect.cc",
60-
"effects/dl_path_effect.h",
6159
"effects/dl_runtime_effect.cc",
6260
"effects/dl_runtime_effect.h",
6361
"geometry/dl_geometry_types.h",
@@ -119,7 +117,6 @@ if (enable_unittests) {
119117
"effects/dl_color_source_unittests.cc",
120118
"effects/dl_image_filter_unittests.cc",
121119
"effects/dl_mask_filter_unittests.cc",
122-
"effects/dl_path_effect_unittests.cc",
123120
"geometry/dl_geometry_types_unittests.cc",
124121
"geometry/dl_region_unittests.cc",
125122
"geometry/dl_rtree_unittests.cc",

display_list/benchmarking/dl_complexity_helper.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@ class ComplexityCalculatorHelper
110110
void setColorSource(const DlColorSource* source) override {}
111111
void setImageFilter(const DlImageFilter* filter) override {}
112112
void setColorFilter(const DlColorFilter* filter) override {}
113-
void setPathEffect(const DlPathEffect* effect) override {}
114113
void setMaskFilter(const DlMaskFilter* filter) override {}
115114

116115
void save() override {}

display_list/display_list.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,6 @@ namespace flutter {
6969
V(SetColor) \
7070
V(SetBlendMode) \
7171
\
72-
V(SetPodPathEffect) \
73-
V(ClearPathEffect) \
74-
\
7572
V(ClearColorFilter) \
7673
V(SetPodColorFilter) \
7774
\

display_list/display_list_unittests.cc

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,6 @@ class DisplayListTestBase : public BaseT {
124124
EXPECT_EQ(builder_paint.getColorFilter(), defaults.getColorFilter());
125125
EXPECT_EQ(builder_paint.getImageFilter(), defaults.getImageFilter());
126126
EXPECT_EQ(builder_paint.getMaskFilter(), defaults.getMaskFilter());
127-
EXPECT_EQ(builder_paint.getPathEffect(), defaults.getPathEffect());
128127
EXPECT_EQ(builder_paint, defaults);
129128
EXPECT_TRUE(builder_paint.isDefault());
130129

@@ -445,10 +444,6 @@ TEST_F(DisplayListTest, BuildRestoresAttributes) {
445444
receiver.setMaskFilter(&kTestMaskFilter1);
446445
builder.Build();
447446
check_defaults(builder, cull_rect);
448-
449-
receiver.setPathEffect(kTestPathEffect1.get());
450-
builder.Build();
451-
check_defaults(builder, cull_rect);
452447
}
453448

454449
TEST_F(DisplayListTest, BuilderBoundsTransformComparedToSkia) {

display_list/dl_builder.cc

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -338,22 +338,6 @@ void DisplayListBuilder::onSetColorFilter(const DlColorFilter* filter) {
338338
}
339339
UpdateCurrentOpacityCompatibility();
340340
}
341-
void DisplayListBuilder::onSetPathEffect(const DlPathEffect* effect) {
342-
if (effect == nullptr) {
343-
current_.setPathEffect(nullptr);
344-
Push<ClearPathEffectOp>(0);
345-
} else {
346-
current_.setPathEffect(effect->shared());
347-
switch (effect->type()) {
348-
case DlPathEffectType::kDash: {
349-
const DlDashPathEffect* dash_effect = effect->asDash();
350-
void* pod = Push<SetPodPathEffectOp>(dash_effect->size());
351-
new (pod) DlDashPathEffect(dash_effect);
352-
break;
353-
}
354-
}
355-
}
356-
}
357341
void DisplayListBuilder::onSetMaskFilter(const DlMaskFilter* filter) {
358342
if (filter == nullptr) {
359343
current_.setMaskFilter(nullptr);
@@ -405,9 +389,6 @@ void DisplayListBuilder::SetAttributesFromPaint(
405389
if (flags.applies_image_filter()) {
406390
setImageFilter(paint.getImageFilter().get());
407391
}
408-
if (flags.applies_path_effect()) {
409-
setPathEffect(paint.getPathEffect().get());
410-
}
411392
if (flags.applies_mask_filter()) {
412393
setMaskFilter(paint.getMaskFilter().get());
413394
}
@@ -1726,14 +1707,7 @@ bool DisplayListBuilder::AdjustBoundsForPaint(SkRect& bounds,
17261707

17271708
// Path effect occurs before stroking...
17281709
DisplayListSpecialGeometryFlags special_flags =
1729-
flags.WithPathEffect(current_.getPathEffectPtr(), is_stroked);
1730-
if (current_.getPathEffect()) {
1731-
auto effect_bounds = current_.getPathEffect()->effect_bounds(bounds);
1732-
if (!effect_bounds.has_value()) {
1733-
return false;
1734-
}
1735-
bounds = effect_bounds.value();
1736-
}
1710+
flags.GeometryFlags(is_stroked);
17371711

17381712
if (is_stroked) {
17391713
// Determine the max multiplier to the stroke width first.

display_list/dl_builder.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
#include "flutter/display_list/dl_op_receiver.h"
1313
#include "flutter/display_list/dl_paint.h"
1414
#include "flutter/display_list/dl_sampling_options.h"
15-
#include "flutter/display_list/effects/dl_path_effect.h"
1615
#include "flutter/display_list/geometry/dl_geometry_types.h"
1716
#include "flutter/display_list/image/dl_image.h"
1817
#include "flutter/display_list/utils/dl_accumulation_rect.h"
@@ -346,12 +345,6 @@ class DisplayListBuilder final : public virtual DlCanvas,
346345
}
347346
}
348347
// |DlOpReceiver|
349-
void setPathEffect(const DlPathEffect* effect) override {
350-
if (NotEquals(current_.getPathEffect(), effect)) {
351-
onSetPathEffect(effect);
352-
}
353-
}
354-
// |DlOpReceiver|
355348
void setMaskFilter(const DlMaskFilter* filter) override {
356349
if (NotEquals(current_.getMaskFilter(), filter)) {
357350
onSetMaskFilter(filter);
@@ -771,7 +764,6 @@ class DisplayListBuilder final : public virtual DlCanvas,
771764
void onSetColorSource(const DlColorSource* source);
772765
void onSetImageFilter(const DlImageFilter* filter);
773766
void onSetColorFilter(const DlColorFilter* filter);
774-
void onSetPathEffect(const DlPathEffect* effect);
775767
void onSetMaskFilter(const DlMaskFilter* filter);
776768

777769
static DisplayListAttributeFlags FlagsForPointMode(PointMode mode);

display_list/dl_op_flags.cc

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,9 @@
33
// found in the LICENSE file.
44

55
#include "flutter/display_list/dl_op_flags.h"
6-
#include "flutter/display_list/effects/dl_path_effect.h"
76

87
namespace flutter {
98

10-
const DisplayListSpecialGeometryFlags DisplayListAttributeFlags::WithPathEffect(
11-
const DlPathEffect* effect,
12-
bool is_stroked) const {
13-
if (is_geometric() && effect) {
14-
switch (effect->type()) {
15-
case DlPathEffectType::kDash: {
16-
// Dashing has no effect on filled geometry.
17-
if (is_stroked) {
18-
// A dash effect has a very simple impact. It cannot introduce any
19-
// miter joins that weren't already present in the original path
20-
// and it does not grow the bounds of the path, but it can add
21-
// end caps to areas that might not have had them before so all
22-
// we need to do is to indicate the potential for diagonal
23-
// end caps and move on.
24-
return special_flags_.with(kMayHaveCaps | kMayHaveDiagonalCaps);
25-
}
26-
}
27-
}
28-
}
29-
return special_flags_;
30-
}
9+
// Just exists to ensure that the header can be cleanly imported.
3110

3211
} // namespace flutter

display_list/dl_op_flags.h

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
namespace flutter {
1212

13-
class DlPathEffect;
1413
/// The base class for the classes that maintain a list of
1514
/// attributes that might be important for a number of operations
1615
/// including which rendering attributes need to be set before
@@ -86,9 +85,8 @@ class DisplayListFlags {
8685
static constexpr int kUsesBlend = 1 << 13;
8786
static constexpr int kUsesShader = 1 << 14;
8887
static constexpr int kUsesColorFilter = 1 << 15;
89-
static constexpr int kUsesPathEffect = 1 << 16;
90-
static constexpr int kUsesMaskFilter = 1 << 17;
91-
static constexpr int kUsesImageFilter = 1 << 18;
88+
static constexpr int kUsesMaskFilter = 1 << 16;
89+
static constexpr int kUsesImageFilter = 1 << 17;
9290

9391
// Some ops have an optional paint argument. If the version
9492
// stored in the DisplayList ignores the paint, but there
@@ -102,7 +100,7 @@ class DisplayListFlags {
102100

103101
static constexpr int kAnyAttributeMask = //
104102
kUsesAntiAlias | kUsesAlpha | kUsesColor | kUsesBlend | kUsesShader |
105-
kUsesColorFilter | kUsesPathEffect | kUsesMaskFilter | kUsesImageFilter;
103+
kUsesColorFilter | kUsesMaskFilter | kUsesImageFilter;
106104
};
107105

108106
class DisplayListFlagsBase : protected DisplayListFlags {
@@ -164,9 +162,9 @@ class DisplayListSpecialGeometryFlags : DisplayListFlagsBase {
164162

165163
class DisplayListAttributeFlags : DisplayListFlagsBase {
166164
public:
167-
const DisplayListSpecialGeometryFlags WithPathEffect(
168-
const DlPathEffect* effect,
169-
bool is_stroked) const;
165+
const DisplayListSpecialGeometryFlags GeometryFlags(bool is_stroked) const {
166+
return special_flags_;
167+
}
170168

171169
constexpr bool ignores_paint() const { return has_any(kIgnoresPaint); }
172170

@@ -198,9 +196,6 @@ class DisplayListAttributeFlags : DisplayListFlagsBase {
198196
}
199197
/// The primitive honors the DlBlendMode
200198
constexpr bool applies_blend() const { return has_any(kUsesBlend); }
201-
constexpr bool applies_path_effect() const {
202-
return has_any(kUsesPathEffect);
203-
}
204199
/// The primitive honors the DlMaskFilter whether set using the
205200
/// filter object or using the convenience method |setMaskBlurFilter|
206201
constexpr bool applies_mask_filter() const {
@@ -264,14 +259,12 @@ class DisplayListOpFlags : DisplayListFlags {
264259
// Flags common to all primitives that stroke or fill
265260
static constexpr int kBaseStrokeOrFillFlags = (kIsDrawnGeometry | //
266261
kUsesAntiAlias | //
267-
kUsesMaskFilter | //
268-
kUsesPathEffect);
262+
kUsesMaskFilter);
269263

270264
// Flags common to primitives that stroke geometry
271265
static constexpr int kBaseStrokeFlags = (kIsStrokedGeometry | //
272266
kUsesAntiAlias | //
273-
kUsesMaskFilter | //
274-
kUsesPathEffect);
267+
kUsesMaskFilter);
275268

276269
// Flags common to primitives that render an image with paint attributes
277270
static constexpr int kBaseImageFlags = (kIsNonGeometric | //

display_list/dl_op_receiver.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
#include "flutter/display_list/effects/dl_color_source.h"
1616
#include "flutter/display_list/effects/dl_image_filter.h"
1717
#include "flutter/display_list/effects/dl_mask_filter.h"
18-
#include "flutter/display_list/effects/dl_path_effect.h"
1918
#include "flutter/display_list/image/dl_image.h"
2019

2120
#include "flutter/impeller/geometry/path.h"
@@ -157,7 +156,6 @@ class DlOpReceiver {
157156
// filter so that the color inversion happens after the ColorFilter.
158157
virtual void setInvertColors(bool invert) = 0;
159158
virtual void setBlendMode(DlBlendMode mode) = 0;
160-
virtual void setPathEffect(const DlPathEffect* effect) = 0;
161159
virtual void setMaskFilter(const DlMaskFilter* filter) = 0;
162160
virtual void setImageFilter(const DlImageFilter* filter) = 0;
163161

display_list/dl_op_records.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,6 @@ DEFINE_SET_CLEAR_DLATTR_OP(ColorFilter, ColorFilter, filter)
231231
DEFINE_SET_CLEAR_DLATTR_OP(ImageFilter, ImageFilter, filter)
232232
DEFINE_SET_CLEAR_DLATTR_OP(MaskFilter, MaskFilter, filter)
233233
DEFINE_SET_CLEAR_DLATTR_OP(ColorSource, Shader, source)
234-
DEFINE_SET_CLEAR_DLATTR_OP(PathEffect, PathEffect, effect)
235234
#undef DEFINE_SET_CLEAR_DLATTR_OP
236235

237236
// 4 byte header + 80 bytes for the embedded DlImageColorSource

display_list/dl_paint.cc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ bool DlPaint::operator==(DlPaint const& other) const {
3030
Equals(color_source_, other.color_source_) && //
3131
Equals(color_filter_, other.color_filter_) && //
3232
Equals(image_filter_, other.image_filter_) && //
33-
Equals(mask_filter_, other.mask_filter_) && //
34-
Equals(path_effect_, other.path_effect_);
33+
Equals(mask_filter_, other.mask_filter_);
3534
}
3635

3736
const DlPaint DlPaint::kDefault;

display_list/dl_paint.h

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include "flutter/display_list/effects/dl_color_source.h"
1414
#include "flutter/display_list/effects/dl_image_filter.h"
1515
#include "flutter/display_list/effects/dl_mask_filter.h"
16-
#include "flutter/display_list/effects/dl_path_effect.h"
1716

1817
namespace flutter {
1918

@@ -177,19 +176,6 @@ class DlPaint {
177176
return *this;
178177
}
179178

180-
std::shared_ptr<const DlPathEffect> getPathEffect() const {
181-
return path_effect_;
182-
}
183-
const DlPathEffect* getPathEffectPtr() const { return path_effect_.get(); }
184-
DlPaint& setPathEffect(const std::shared_ptr<DlPathEffect>& pathEffect) {
185-
path_effect_ = pathEffect;
186-
return *this;
187-
}
188-
DlPaint& setPathEffect(const DlPathEffect* effect) {
189-
path_effect_ = effect ? effect->shared() : nullptr;
190-
return *this;
191-
}
192-
193179
bool isDefault() const { return *this == kDefault; }
194180

195181
bool operator==(DlPaint const& other) const;
@@ -228,7 +214,6 @@ class DlPaint {
228214
std::shared_ptr<const DlColorFilter> color_filter_;
229215
std::shared_ptr<const DlImageFilter> image_filter_;
230216
std::shared_ptr<const DlMaskFilter> mask_filter_;
231-
std::shared_ptr<const DlPathEffect> path_effect_;
232217
};
233218

234219
} // namespace flutter

display_list/dl_paint_unittests.cc

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ TEST(DisplayListPaint, ConstructorDefaults) {
2626
EXPECT_EQ(paint.getColorFilter(), nullptr);
2727
EXPECT_EQ(paint.getImageFilter(), nullptr);
2828
EXPECT_EQ(paint.getMaskFilter(), nullptr);
29-
EXPECT_EQ(paint.getPathEffect(), nullptr);
3029
EXPECT_TRUE(paint.isDefault());
3130
EXPECT_EQ(paint, DlPaint::kDefault);
3231

@@ -67,44 +66,33 @@ TEST(DisplayListPaint, ConstructorDefaults) {
6766

6867
DlBlurMaskFilter mask_filter(DlBlurStyle::kInner, 3.14);
6968
EXPECT_NE(paint, DlPaint().setMaskFilter(mask_filter.shared()));
70-
71-
SkScalar intervals[] = {1.0f, 2.0f};
72-
auto path_effect = DlDashPathEffect::Make(intervals, 2, 0.0f);
73-
EXPECT_NE(paint, DlPaint().setPathEffect(path_effect.get()));
7469
}
7570

7671
TEST(DisplayListPaint, NullPointerSetGet) {
7772
DlColorSource* null_color_source = nullptr;
7873
DlColorFilter* null_color_filter = nullptr;
7974
DlImageFilter* null_image_filter = nullptr;
8075
DlMaskFilter* null_mask_filter = nullptr;
81-
DlPathEffect* null_path_effect = nullptr;
8276
DlPaint paint;
8377
EXPECT_EQ(paint.setColorSource(null_color_source).getColorSource(), nullptr);
8478
EXPECT_EQ(paint.setColorFilter(null_color_filter).getColorFilter(), nullptr);
8579
EXPECT_EQ(paint.setImageFilter(null_image_filter).getImageFilter(), nullptr);
8680
EXPECT_EQ(paint.setMaskFilter(null_mask_filter).getMaskFilter(), nullptr);
87-
EXPECT_EQ(paint.setPathEffect(null_path_effect).getPathEffect(), nullptr);
8881
}
8982

9083
TEST(DisplayListPaint, NullSharedPointerSetGet) {
9184
std::shared_ptr<DlColorSource> null_color_source;
9285
std::shared_ptr<DlColorFilter> null_color_filter;
9386
std::shared_ptr<DlImageFilter> null_image_filter;
9487
std::shared_ptr<DlMaskFilter> null_mask_filter;
95-
std::shared_ptr<DlPathEffect> null_path_effect;
9688
DlPaint paint;
9789
EXPECT_EQ(paint.setColorSource(null_color_source).getColorSource(), nullptr);
9890
EXPECT_EQ(paint.setColorFilter(null_color_filter).getColorFilter(), nullptr);
9991
EXPECT_EQ(paint.setImageFilter(null_image_filter).getImageFilter(), nullptr);
10092
EXPECT_EQ(paint.setMaskFilter(null_mask_filter).getMaskFilter(), nullptr);
101-
EXPECT_EQ(paint.setPathEffect(null_path_effect).getPathEffect(), nullptr);
10293
}
10394

10495
TEST(DisplayListPaint, ChainingConstructor) {
105-
SkScalar intervals[] = {1.0f, 2.0f};
106-
auto path_effect = DlDashPathEffect::Make(intervals, 2, 0.0f);
107-
10896
DlPaint paint =
10997
DlPaint() //
11098
.setAntiAlias(true) //
@@ -123,8 +111,7 @@ TEST(DisplayListPaint, ChainingConstructor) {
123111
.shared())
124112
.setImageFilter(
125113
DlBlurImageFilter(1.3, 4.7, DlTileMode::kClamp).shared())
126-
.setMaskFilter(DlBlurMaskFilter(DlBlurStyle::kInner, 3.14).shared())
127-
.setPathEffect(path_effect);
114+
.setMaskFilter(DlBlurMaskFilter(DlBlurStyle::kInner, 3.14).shared());
128115
EXPECT_TRUE(paint.isAntiAlias());
129116
EXPECT_TRUE(paint.isInvertColors());
130117
EXPECT_EQ(paint.getColor(), DlColor::kGreen().withAlpha(0x7F));
@@ -142,7 +129,6 @@ TEST(DisplayListPaint, ChainingConstructor) {
142129
DlBlurImageFilter(1.3, 4.7, DlTileMode::kClamp));
143130
EXPECT_EQ(*paint.getMaskFilter(),
144131
DlBlurMaskFilter(DlBlurStyle::kInner, 3.14));
145-
EXPECT_EQ(*paint.getPathEffect(), *path_effect);
146132

147133
EXPECT_NE(paint, DlPaint());
148134
}

0 commit comments

Comments
 (0)