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

Commit e242a80

Browse files
committed
draft for SkColorFilter to DlColorFilter
1 parent 492ef93 commit e242a80

21 files changed

+95
-312
lines changed

display_list/display_list_builder.cc

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -493,26 +493,6 @@ void DisplayListBuilder::saveLayer(const SkRect* bounds,
493493
}
494494
}
495495

496-
void DisplayListBuilder::saveLayerCF(const SkRect* bounds,
497-
const SaveLayerOptions in_options,
498-
const DlColorFilter* color_filter) {
499-
SaveLayerOptions options = in_options.without_optimizations();
500-
size_t save_layer_offset = used_;
501-
if (color_filter) {
502-
bounds //
503-
? Push<SaveLayerColorFilterBoundsOp>(0, 1, *bounds, options,
504-
color_filter)
505-
: Push<SaveLayerColorFilterOp>(0, 1, options, color_filter);
506-
} else {
507-
bounds //
508-
? Push<SaveLayerBoundsOp>(0, 1, *bounds, options)
509-
: Push<SaveLayerOp>(0, 1, options);
510-
}
511-
CheckLayerOpacityCompatibility(options.renders_with_attributes());
512-
layer_stack_.emplace_back(current_layer_, save_layer_offset, true);
513-
current_layer_ = &layer_stack_.back();
514-
}
515-
516496
void DisplayListBuilder::saveLayer(const SkRect* bounds,
517497
const DlPaint* paint,
518498
const DlImageFilter* backdrop) {
@@ -525,18 +505,6 @@ void DisplayListBuilder::saveLayer(const SkRect* bounds,
525505
}
526506
}
527507

528-
void DisplayListBuilder::saveLayer(const SkRect* bounds,
529-
const DlPaint* paint,
530-
const DlColorFilter* color_filter) {
531-
if (paint != nullptr) {
532-
setAttributesFromDlPaint(*paint,
533-
DisplayListOpFlags::kSaveLayerWithPaintFlags);
534-
saveLayerCF(bounds, SaveLayerOptions::kWithAttributes, color_filter);
535-
} else {
536-
saveLayerCF(bounds, SaveLayerOptions::kNoAttributes, color_filter);
537-
}
538-
}
539-
540508
void DisplayListBuilder::translate(SkScalar tx, SkScalar ty) {
541509
if (SkScalarIsFinite(tx) && SkScalarIsFinite(ty) &&
542510
(tx != 0.0 || ty != 0.0)) {

display_list/display_list_builder.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -159,10 +159,6 @@ class DisplayListBuilder final : public virtual Dispatcher,
159159
void saveLayer(const SkRect* bounds,
160160
const SaveLayerOptions options,
161161
const DlImageFilter* backdrop) override;
162-
163-
void saveLayerCF(const SkRect* bounds,
164-
const SaveLayerOptions options,
165-
const DlColorFilter* backdrop) override;
166162
// Convenience method with just a boolean to indicate whether the saveLayer
167163
// should apply the rendering attributes.
168164
void saveLayer(const SkRect* bounds, bool renders_with_attributes) {
@@ -175,9 +171,6 @@ class DisplayListBuilder final : public virtual Dispatcher,
175171
const DlPaint* paint,
176172
const DlImageFilter* backdrop = nullptr);
177173

178-
void saveLayer(const SkRect* bounds,
179-
const DlPaint* paint,
180-
const DlColorFilter* color_filter);
181174
void restore() override;
182175
int getSaveCount() { return layer_stack_.size(); }
183176
void restoreToCount(int restore_count);

display_list/display_list_canvas_dispatcher.cc

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -73,27 +73,6 @@ void DisplayListCanvasDispatcher::saveLayer(const SkRect* bounds,
7373
}
7474
}
7575

76-
void DisplayListCanvasDispatcher::saveLayerCF(
77-
const SkRect* bounds,
78-
const SaveLayerOptions options,
79-
const DlColorFilter* color_filter) {
80-
if (bounds == nullptr && options.can_distribute_opacity() &&
81-
color_filter == nullptr) {
82-
canvas_->save();
83-
save_opacity(options.renders_with_attributes() ? combined_opacity()
84-
: opacity());
85-
} else {
86-
TRACE_EVENT0("flutter", "Canvas::saveLayer");
87-
const SkPaint* paint = safe_paint(options.renders_with_attributes());
88-
if (bounds) {
89-
canvas_->saveLayer(*bounds, paint);
90-
// saveLayer will apply the current opacity on behalf of the children
91-
// so they will inherit an opaque opacity.
92-
save_opacity(SK_Scalar1);
93-
}
94-
}
95-
}
96-
9776
void DisplayListCanvasDispatcher::translate(SkScalar tx, SkScalar ty) {
9877
canvas_->translate(tx, ty);
9978
}

display_list/display_list_canvas_dispatcher.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@ class DisplayListCanvasDispatcher : public virtual Dispatcher,
3333
void saveLayer(const SkRect* bounds,
3434
const SaveLayerOptions options,
3535
const DlImageFilter* backdrop) override;
36-
void saveLayerCF(const SkRect* bounds,
37-
const SaveLayerOptions options,
38-
const DlColorFilter* color_filter) override;
3936

4037
void translate(SkScalar tx, SkScalar ty) override;
4138
void scale(SkScalar sx, SkScalar sy) override;

display_list/display_list_complexity_gl.cc

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -64,22 +64,6 @@ void DisplayListGLComplexityCalculator::GLHelper::saveLayer(
6464
save_layer_count_++;
6565
}
6666

67-
void DisplayListGLComplexityCalculator::GLHelper::saveLayerCF(
68-
const SkRect* bounds,
69-
const SaveLayerOptions options,
70-
const DlColorFilter* color_filter) {
71-
if (IsComplex()) {
72-
return;
73-
}
74-
if (color_filter) {
75-
// Flutter does not offer this operation so this value can only ever be
76-
// non-null for a frame-wide builder which is not currently evaluated for
77-
// complexity.
78-
AccumulateComplexity(Ceiling());
79-
}
80-
save_layer_count_++;
81-
}
82-
8367
void DisplayListGLComplexityCalculator::GLHelper::drawLine(const SkPoint& p0,
8468
const SkPoint& p1) {
8569
if (IsComplex()) {

display_list/display_list_complexity_gl.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,6 @@ class DisplayListGLComplexityCalculator
4040
void saveLayer(const SkRect* bounds,
4141
const SaveLayerOptions options,
4242
const DlImageFilter* backdrop) override;
43-
void saveLayerCF(const SkRect* bounds,
44-
const SaveLayerOptions options,
45-
const DlColorFilter* backdrop) override;
4643

4744
void drawLine(const SkPoint& p0, const SkPoint& p1) override;
4845
void drawRect(const SkRect& rect) override;

display_list/display_list_complexity_metal.cc

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -78,22 +78,6 @@ void DisplayListMetalComplexityCalculator::MetalHelper::saveLayer(
7878
save_layer_count_++;
7979
}
8080

81-
void DisplayListMetalComplexityCalculator::MetalHelper::saveLayerCF(
82-
const SkRect* bounds,
83-
const SaveLayerOptions options,
84-
const DlColorFilter* color_filter) {
85-
if (IsComplex()) {
86-
return;
87-
}
88-
if (color_filter) {
89-
// Flutter does not offer this operation so this value can only ever be
90-
// non-null for a frame-wide builder which is not currently evaluated for
91-
// complexity.
92-
AccumulateComplexity(Ceiling());
93-
}
94-
save_layer_count_++;
95-
}
96-
9781
void DisplayListMetalComplexityCalculator::MetalHelper::drawLine(
9882
const SkPoint& p0,
9983
const SkPoint& p1) {

display_list/display_list_complexity_metal.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,6 @@ class DisplayListMetalComplexityCalculator
4141
const SaveLayerOptions options,
4242
const DlImageFilter* backdrop) override;
4343

44-
void saveLayerCF(const SkRect* bounds,
45-
const SaveLayerOptions options,
46-
const DlColorFilter* color_filter) override;
47-
4844
void drawLine(const SkPoint& p0, const SkPoint& p1) override;
4945
void drawRect(const SkRect& rect) override;
5046
void drawOval(const SkRect& bounds) override;

display_list/display_list_dispatcher.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,6 @@ class Dispatcher {
7676
const SaveLayerOptions options,
7777
const DlImageFilter* backdrop = nullptr) = 0;
7878

79-
virtual void saveLayerCF(const SkRect* bounds,
80-
const SaveLayerOptions options,
81-
const DlColorFilter* backdrop = nullptr) = 0;
82-
8379
virtual void restore() = 0;
8480

8581
virtual void translate(SkScalar tx, SkScalar ty) = 0;

display_list/display_list_ops.h

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -344,55 +344,6 @@ struct SaveLayerBackdropBoundsOp final : DLOp {
344344
: DisplayListCompare::kNotEqual;
345345
}
346346
};
347-
348-
// 4 byte header + 20 byte payload packs into minimum 24 bytes
349-
struct SaveLayerColorFilterOp final : DLOp {
350-
static const auto kType = DisplayListOpType::kSaveLayerBackdrop;
351-
352-
explicit SaveLayerColorFilterOp(const SaveLayerOptions options,
353-
const DlColorFilter* color_filter)
354-
: options(options), color_filter(color_filter->shared()) {}
355-
356-
SaveLayerOptions options;
357-
const std::shared_ptr<DlColorFilter> color_filter;
358-
359-
void dispatch(Dispatcher& dispatcher) const {
360-
dispatcher.saveLayerCF(nullptr, options, color_filter.get());
361-
}
362-
363-
DisplayListCompare equals(const SaveLayerColorFilterOp* other) const {
364-
return options == other->options &&
365-
Equals(color_filter, other->color_filter)
366-
? DisplayListCompare::kEqual
367-
: DisplayListCompare::kNotEqual;
368-
}
369-
};
370-
371-
// 4 byte header + 36 byte payload packs evenly into 36 bytes
372-
struct SaveLayerColorFilterBoundsOp final : DLOp {
373-
static const auto kType = DisplayListOpType::kSaveLayerBackdropBounds;
374-
375-
SaveLayerColorFilterBoundsOp(SkRect rect,
376-
const SaveLayerOptions options,
377-
const DlColorFilter* color_filter)
378-
: options(options), rect(rect), color_filter(color_filter->shared()) {}
379-
380-
SaveLayerOptions options;
381-
const SkRect rect;
382-
const std::shared_ptr<DlColorFilter> color_filter;
383-
384-
void dispatch(Dispatcher& dispatcher) const {
385-
dispatcher.saveLayerCF(&rect, options, color_filter.get());
386-
}
387-
388-
DisplayListCompare equals(const SaveLayerColorFilterBoundsOp* other) const {
389-
return (options == other->options && rect == other->rect &&
390-
Equals(color_filter, other->color_filter))
391-
? DisplayListCompare::kEqual
392-
: DisplayListCompare::kNotEqual;
393-
}
394-
};
395-
396347
// 4 byte header + no payload uses minimum 8 bytes (4 bytes unused)
397348
struct RestoreOp final : DLOp {
398349
static const auto kType = DisplayListOpType::kRestore;

0 commit comments

Comments
 (0)