diff options
author | 2023-02-26 23:49:58 +0100 | |
---|---|---|
committer | 2023-02-26 23:49:58 +0100 | |
commit | 4067c427db19eb59c4ec6c8c6d6658a9643df580 (patch) | |
tree | 65b93d7fdd6d421a7e37fcdc308d71544f42d762 /tiny_skia | |
parent | 3386402f5a3e75cdacd230f5e76cd54f4868d87d (diff) | |
download | iced-4067c427db19eb59c4ec6c8c6d6658a9643df580.tar.gz iced-4067c427db19eb59c4ec6c8c6d6658a9643df580.tar.bz2 iced-4067c427db19eb59c4ec6c8c6d6658a9643df580.zip |
Fix glyphs with color mask in `iced_tiny_skia`
Diffstat (limited to 'tiny_skia')
-rw-r--r-- | tiny_skia/src/text.rs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/tiny_skia/src/text.rs b/tiny_skia/src/text.rs index 64f31aae..fc26703b 100644 --- a/tiny_skia/src/text.rs +++ b/tiny_skia/src/text.rs @@ -157,13 +157,17 @@ impl Pipeline { for _y in 0..image.placement.height { for _x in 0..image.placement.width { // TODO: Blend alpha - buffer[i] = (image.data[i + 3] as u32) - << 24 - | (image.data[i + 2] as u32) << 16 - | (image.data[i + 1] as u32) << 8 - | image.data[i] as u32; + buffer[i >> 2] = + tiny_skia::ColorU8::from_rgba( + image.data[i + 2], + image.data[i + 1], + image.data[i], + image.data[i + 3], + ) + .premultiply() + .get(); - i += 1; + i += 4; } } } |