From 565ba1b218e964fec6ac2667b832a7d259fe6867 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 13 Jul 2019 00:05:01 -0400 Subject: coretext: Implement create_hb_font This has been tested and renders correctly. --- pango/pangocoretext.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'pango/pangocoretext.c') diff --git a/pango/pangocoretext.c b/pango/pangocoretext.c index a6eaa1fc..70fd67d4 100644 --- a/pango/pangocoretext.c +++ b/pango/pangocoretext.c @@ -32,6 +32,7 @@ #include "pangocoretext.h" #include "pangocoretext-private.h" +#include struct _PangoCoreTextFontPrivate { @@ -208,6 +209,28 @@ pango_core_text_font_get_font_map (PangoFont *font) return ctfont->priv->fontmap; } +static hb_font_t * +pango_core_text_font_create_hb_font (PangoFont *font) +{ + PangoCoreTextFont *ctfont = (PangoCoreTextFont *)font; + + if (ctfont->priv->font_ref) + { + hb_font_t *hb_font; + int size; + + size = pango_core_text_font_key_get_size (ctfont->priv->key); + hb_font = hb_coretext_font_create (ctfont->priv->font_ref); + hb_font_set_scale (hb_font, size, size); + + hb_font_make_immutable (hb_font); + + return hb_font; + } + + return hb_font_get_empty (); +} + static void pango_core_text_font_init (PangoCoreTextFont *ctfont) { @@ -227,6 +250,7 @@ pango_core_text_font_class_init (PangoCoreTextFontClass *class) font_class->get_coverage = pango_core_text_font_get_coverage; font_class->find_shaper = pango_core_text_font_find_shaper; font_class->get_font_map = pango_core_text_font_get_font_map; + font_class->create_hb_font = pango_core_text_font_create_hb_font; } void -- cgit v1.2.1