Skip to content

Commit 2811c75

Browse files
committed
LibWeb: Use anti-aliasing to draw images and painting surfaces
Fixes the jagged edges on the transformed badge on https://aaronfrancis.com/backstage.
1 parent 489dea5 commit 2811c75

File tree

4 files changed

+27
-0
lines changed

4 files changed

+27
-0
lines changed

Libraries/LibWeb/Painting/DisplayListPlayerSkia.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ void DisplayListPlayerSkia::draw_painting_surface(DrawPaintingSurface const& com
155155
auto& canvas = surface().canvas();
156156
auto image = sk_surface.makeImageSnapshot();
157157
SkPaint paint;
158+
paint.setAntiAlias(true);
158159
canvas.drawImageRect(image, src_rect, dst_rect, to_skia_sampling_options(command.scaling_mode), &paint, SkCanvas::kStrict_SrcRectConstraint);
159160
}
160161

@@ -164,6 +165,7 @@ void DisplayListPlayerSkia::draw_scaled_immutable_bitmap(DrawScaledImmutableBitm
164165
auto clip_rect = to_skia_rect(command.clip_rect);
165166
auto& canvas = surface().canvas();
166167
SkPaint paint;
168+
paint.setAntiAlias(true);
167169
canvas.save();
168170
canvas.clipRect(clip_rect, true);
169171
canvas.drawImageRect(command.bitmap->sk_image(), dst_rect, to_skia_sampling_options(command.scaling_mode), &paint);
@@ -184,6 +186,7 @@ void DisplayListPlayerSkia::draw_repeated_immutable_bitmap(DrawRepeatedImmutable
184186
auto shader = command.bitmap->sk_image()->makeShader(tile_mode_x, tile_mode_y, sampling_options, matrix);
185187

186188
SkPaint paint;
189+
paint.setAntiAlias(true);
187190
paint.setShader(shader);
188191
auto& canvas = surface().canvas();
189192
canvas.drawPaint(paint);
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<!DOCTYPE html>
2+
<style>
3+
* {
4+
margin: 0;
5+
}
6+
body {
7+
background-color: white;
8+
}
9+
</style>
10+
<img src="../images/image-transformation-anti-aliasing-ref.png">
43 KB
Loading
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<!DOCTYPE html>
2+
<link rel="match" href="../expected/image-transformation-anti-aliasing-ref.html" />
3+
<meta name="fuzzy" content="maxDifference=0-1;totalPixels=0-477">
4+
<style>
5+
div {
6+
perspective: 900px;
7+
}
8+
img {
9+
transform: rotateY(45deg);
10+
}
11+
</style>
12+
<div>
13+
<img src="../data/car.png">
14+
</div>

0 commit comments

Comments
 (0)