summaryrefslogtreecommitdiffstats
path: root/tiny_skia
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2023-09-19 22:28:28 +0200
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2023-09-19 22:28:28 +0200
commit9af0a27e675b71164f32f8d82eb4cde9cdd459f3 (patch)
tree395743af28922900d8d0cb6b5f71be61880990fd /tiny_skia
parenta9ee8f62fdd0f74976947c21199684829aa8a496 (diff)
downloadiced-9af0a27e675b71164f32f8d82eb4cde9cdd459f3.tar.gz
iced-9af0a27e675b71164f32f8d82eb4cde9cdd459f3.tar.bz2
iced-9af0a27e675b71164f32f8d82eb4cde9cdd459f3.zip
Draw colored glyphs in `iced_tiny_skia`
Diffstat (limited to 'tiny_skia')
-rw-r--r--tiny_skia/src/text.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/tiny_skia/src/text.rs b/tiny_skia/src/text.rs
index 96cfbf32..d1b33293 100644
--- a/tiny_skia/src/text.rs
+++ b/tiny_skia/src/text.rs
@@ -188,7 +188,7 @@ fn draw(
if let Some((buffer, placement)) = glyph_cache.allocate(
physical_glyph.cache_key,
- color,
+ glyph.color_opt.map(from_color).unwrap_or(color),
font_system,
&mut swash,
) {
@@ -213,6 +213,12 @@ fn draw(
}
}
+fn from_color(color: cosmic_text::Color) -> Color {
+ let [r, g, b, a] = color.as_rgba();
+
+ Color::from_rgba8(r, g, b, a as f32 / 255.0)
+}
+
#[derive(Debug, Clone, Default)]
struct GlyphCache {
entries: FxHashMap<