From 12460ca8a021eb10ef412f76661a5f7d938b7d09 Mon Sep 17 00:00:00 2001 From: Jelle Raaijmakers Date: Tue, 20 Aug 2024 12:20:19 +0200 Subject: [PATCH] LibGfx: Implement Gfx::AlphaType for SkiaPainter Always assuming unpremultiplied color data only worked for PNGs (which are specced as unpremultiplied) and bitmaps with alpha set to 100%. Properly propagate the Gfx::AlphaType of a bitmap to Skia. The reference tests were updated to reflect this change, but visually it's practically impossible to see the difference. A new test was added to clearly expose this issue. --- .../images/canvas-arcs-and-ellipses-ref.png | Bin 6353 -> 6357 bytes .../canvas-implict-moves-and-lines-ref.png | Bin 10468 -> 10463 bytes .../images/canvas-path-rect-ref.png | Bin 6610 -> 6634 bytes .../Screenshot/images/canvas-text-ref.png | Bin 34011 -> 34698 bytes Userland/Libraries/LibGfx/PainterSkia.cpp | 46 +++++++++++------- 5 files changed, 29 insertions(+), 17 deletions(-) diff --git a/Tests/LibWeb/Screenshot/images/canvas-arcs-and-ellipses-ref.png b/Tests/LibWeb/Screenshot/images/canvas-arcs-and-ellipses-ref.png index 293384e65329ece7ea0883f096b42f210ad2c262..807afeb37b3206c9bf7944d9e7649eeed9ecf2ec 100644 GIT binary patch literal 6357 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 RKR!axnUfAD%8vWo{5zFanK=Le literal 6353 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 P!A_~2RZTf@>E^!xy3VrW diff --git a/Tests/LibWeb/Screenshot/images/canvas-path-rect-ref.png b/Tests/LibWeb/Screenshot/images/canvas-path-rect-ref.png index e69d6daa079c7d03ce9941347070931efae1346e..76530e5020bcbd1f127cce89cec90eb1ee3fcc3c 100644 GIT binary patch literal 6634 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 diff --git a/Tests/LibWeb/Screenshot/images/canvas-text-ref.png b/Tests/LibWeb/Screenshot/images/canvas-text-ref.png index d27f87c25b75e49e8ccec075d905410755c03cf8..76be14aa8ca3481d891dbfa32dbc938995856255 100644 GIT binary patch literal 34698 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 literal 34011 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 gfx_bitmap; OwnPtr sk_bitmap; @@ -37,7 +64,7 @@ struct PainterSkia::Impl { : gfx_bitmap(move(target_bitmap)) { sk_bitmap = make(); - SkImageInfo info = SkImageInfo::Make(gfx_bitmap->width(), gfx_bitmap->height(), kBGRA_8888_SkColorType, kUnpremul_SkAlphaType); + SkImageInfo info = SkImageInfo::Make(gfx_bitmap->width(), gfx_bitmap->height(), to_skia_color_type(gfx_bitmap->format()), to_skia_alpha_type(gfx_bitmap->alpha_type())); sk_bitmap->installPixels(info, gfx_bitmap->scanline(0), gfx_bitmap->pitch()); sk_canvas = make(*sk_bitmap); @@ -109,25 +136,10 @@ static SkSamplingOptions to_skia_sampling_options(Gfx::ScalingMode scaling_mode) } } -static SkColorType to_skia_color_type(Gfx::BitmapFormat format) -{ - switch (format) { - case Gfx::BitmapFormat::Invalid: - return kUnknown_SkColorType; - case Gfx::BitmapFormat::BGRA8888: - case Gfx::BitmapFormat::BGRx8888: - return kBGRA_8888_SkColorType; - case Gfx::BitmapFormat::RGBA8888: - return kRGBA_8888_SkColorType; - default: - return kUnknown_SkColorType; - } -} - void PainterSkia::draw_bitmap(Gfx::FloatRect const& dst_rect, Gfx::Bitmap const& src_bitmap, Gfx::IntRect const& src_rect, Gfx::ScalingMode scaling_mode, float global_alpha) { SkBitmap sk_bitmap; - SkImageInfo info = SkImageInfo::Make(src_bitmap.width(), src_bitmap.height(), to_skia_color_type(src_bitmap.format()), kUnpremul_SkAlphaType); + SkImageInfo info = SkImageInfo::Make(src_bitmap.width(), src_bitmap.height(), to_skia_color_type(src_bitmap.format()), to_skia_alpha_type(src_bitmap.alpha_type())); sk_bitmap.installPixels(info, const_cast(static_cast(src_bitmap.scanline(0))), src_bitmap.pitch()); SkPaint paint;