summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2019-07-13 00:05:01 -0400
committerMatthias Clasen <mclasen@redhat.com>2019-07-18 14:10:21 -0700
commit565ba1b218e964fec6ac2667b832a7d259fe6867 (patch)
tree4cd4cd2bd1a6ccfab23559b1b3ba34214d9ca5a3
parent5048e7b0ce826997b34288b78e746e5e0dae2ea1 (diff)
downloadpango-565ba1b218e964fec6ac2667b832a7d259fe6867.tar.gz
coretext: Implement create_hb_font
This has been tested and renders correctly.
-rw-r--r--pango/pangocoretext.c24
1 files changed, 24 insertions, 0 deletions
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 <harfbuzz/hb-coretext.h>
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