diff options
author | msizanoen1 <msizanoen@qtmlabs.xyz> | 2023-02-13 17:46:02 +0700 |
---|---|---|
committer | msizanoen1 <msizanoen@qtmlabs.xyz> | 2023-02-18 21:06:28 +0700 |
commit | d915ff0eaf43e301c35592376a14778445faa183 (patch) | |
tree | b8b718258421b600bf833469c6354c17d65ef76c | |
parent | c3b796b5b1f46cec16550f1cd0afbc2db10e9415 (diff) | |
download | pango-d915ff0eaf43e301c35592376a14778445faa183.tar.gz |
shape: Properly detect COLRv1 color fonts
HarfBuzz 7.0.0 introduced 2 new APIs: `hb_ot_color_has_paint` and
`hb_ot_color_glyph_has_paint`. Use these APIs to detect the new COLRv1
color font format to ensure compatibility of code relying on the
color font detection for rendering with the new font format.
-rw-r--r-- | pango/shape.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/pango/shape.c b/pango/shape.c index e666bb3d..acf4be59 100644 --- a/pango/shape.c +++ b/pango/shape.c @@ -306,6 +306,11 @@ font_has_color (hb_font_t *font) face = hb_font_get_face (font); +#if HB_VERSION_ATLEAST (7, 0, 0) + if (hb_ot_color_has_paint (face)) + return TRUE; +#endif + return hb_ot_color_has_layers (face) || hb_ot_color_has_png (face) || hb_ot_color_has_svg (face); @@ -320,6 +325,11 @@ glyph_has_color (hb_font_t *font, face = hb_font_get_face (font); +#if HB_VERSION_ATLEAST (7, 0, 0) + if (hb_ot_color_glyph_has_paint (face, glyph)) + return TRUE; +#endif + if (hb_ot_color_glyph_get_layers (face, glyph, 0, NULL, NULL) > 0) return TRUE; |