Skip to content

Commit ecdb53c

Browse files
gotlougitkalenikaliaksandr
authored andcommitted
LibWeb: Deduplicate opacity code in ApplyFilters
The opacity is still being set separately by using ApplyOpacity for both CSS and SVG
1 parent ab1cf8f commit ecdb53c

File tree

6 files changed

+5
-16
lines changed

6 files changed

+5
-16
lines changed

Libraries/LibWeb/Painting/Command.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,6 @@ struct ApplyOpacity {
409409
};
410410

411411
struct ApplyFilters {
412-
float opacity;
413412
CSS::ResolvedFilter filter;
414413
};
415414

Libraries/LibWeb/Painting/DisplayListPlayerSkia.cpp

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1097,16 +1097,6 @@ void DisplayListPlayerSkia::apply_filters(ApplyFilters const& command)
10971097
append_filter(to_skia_image_filter(filter));
10981098
}
10991099

1100-
// We apply opacity as a color filter here so we only need to save and restore a single layer.
1101-
if (command.opacity < 1) {
1102-
append_filter(to_skia_image_filter(CSS::ResolvedFilter::FilterFunction {
1103-
CSS::ResolvedFilter::Color {
1104-
CSS::FilterOperation::Color::Type::Opacity,
1105-
command.opacity,
1106-
},
1107-
}));
1108-
}
1109-
11101100
SkPaint paint;
11111101
paint.setImageFilter(image_filter);
11121102
auto& canvas = surface().canvas();

Libraries/LibWeb/Painting/DisplayListRecorder.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -407,9 +407,9 @@ void DisplayListRecorder::apply_opacity(float opacity)
407407
append(ApplyOpacity { .opacity = opacity });
408408
}
409409

410-
void DisplayListRecorder::apply_filters(float opacity, CSS::ResolvedFilter filter)
410+
void DisplayListRecorder::apply_filters(CSS::ResolvedFilter filter)
411411
{
412-
append(ApplyFilters { .opacity = opacity, .filter = filter });
412+
append(ApplyFilters { .filter = filter });
413413
}
414414

415415
void DisplayListRecorder::apply_transform(Gfx::FloatPoint origin, Gfx::FloatMatrix4x4 matrix)

Libraries/LibWeb/Painting/DisplayListRecorder.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ class DisplayListRecorder {
149149
void paint_scrollbar(int scroll_frame_id, Gfx::IntRect, CSSPixelFraction scroll_size, bool vertical);
150150

151151
void apply_opacity(float opacity);
152-
void apply_filters(float opacity, CSS::ResolvedFilter filter);
152+
void apply_filters(CSS::ResolvedFilter filter);
153153
void apply_transform(Gfx::FloatPoint origin, Gfx::FloatMatrix4x4);
154154
void apply_mask_bitmap(Gfx::IntPoint origin, Gfx::ImmutableBitmap const&, Gfx::Bitmap::MaskKind);
155155

Libraries/LibWeb/Painting/SVGSVGPaintable.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ void SVGSVGPaintable::paint_descendants(PaintContext& context, PaintableBox cons
7070
context.display_list_recorder().apply_opacity(computed_values.opacity());
7171
}
7272

73-
context.display_list_recorder().apply_filters(paintable.computed_values().opacity(), paintable.computed_values().filter());
73+
context.display_list_recorder().apply_filters(paintable.computed_values().filter());
7474

7575
if (svg_box.has_css_transform()) {
7676
auto transform_matrix = svg_box.transform();

Libraries/LibWeb/Painting/StackingContext.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ void StackingContext::paint(PaintContext& context) const
327327
context.display_list_recorder().push_scroll_frame_id(*paintable_box().scroll_frame_id());
328328
}
329329
context.display_list_recorder().push_stacking_context(push_stacking_context_params);
330-
context.display_list_recorder().apply_filters(opacity, paintable_box().computed_values().filter());
330+
context.display_list_recorder().apply_filters(paintable_box().computed_values().filter());
331331

332332
if (auto mask_image = computed_values.mask_image()) {
333333
auto mask_display_list = DisplayList::create();

0 commit comments

Comments
 (0)