summaryrefslogtreecommitdiffstats
path: root/tiny_skia
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-02-26 23:49:58 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-02-26 23:49:58 +0100
commit4067c427db19eb59c4ec6c8c6d6658a9643df580 (patch)
tree65b93d7fdd6d421a7e37fcdc308d71544f42d762 /tiny_skia
parent3386402f5a3e75cdacd230f5e76cd54f4868d87d (diff)
downloadiced-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.rs16
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;
}
}
}